background preloader

Programming

Facebook Twitter

Tutorial

Book. C++ Perl. Make. Multithreaded Debugging: Taking the Fear Out of New Technology. Welcome to schemers.org! Introduction. Haskell is a computer programming language. In particular, it is a polymorphically statically typed, lazy, purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on the lambda calculus, hence the lambda we use as a logo. 1 Why use Haskell? Writing large software systems that work is difficult and expensive. Maintaining those systems is even more difficult and expensive. WOW! Even if you are not in a position to use Haskell in your programming projects, learning Haskell can make you a better programmer in any language. I learned Haskell a couple of years ago, having previously programmed in Python and (many) other languages. Haskell offers you: Haskell is a wide-spectrum language, suitable for a variety of applications. 2 What is functional programming?

C, Java, Pascal, Ada, and so on, are all imperative languages. Lua (programming language) Lightweight programming language History[edit] Lua was created in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo and Waldemar Celes, members of the Computer Graphics Technology Group (Tecgraf) at the Pontifical Catholic University of Rio de Janeiro, in Brazil. Versions of Lua prior to version 5.0 were released under a license similar to the BSD license. From version 5.0 onwards, Lua has been licensed under the MIT License. Features[edit] Syntax[edit] -- Single line comment--[[Multi-line comment]] The factorial function is implemented as a function in this example: function factorial(n) local x = 1 for i = 2, n do x = x * i end return xend Control flow[edit] The generic if then end statement requires all three keywords: if condition then --statement bodyend The else keyword may be added with an accompanying statement block to control execution when the if condition evaluates to false: if condition then --statement bodyelse --statement bodyend Functions[edit] Tables[edit] [edit] C API[edit]

What every programmer should know about memory, Part 1. September 21, 2007 This article was contributed by Ulrich Drepper [Editor's introduction: Ulrich Drepper recently approached us asking if we would be interested in publishing a lengthy document he had written on how memory and software interact. We did not have to look at the text for long to realize that it would be of interest to many LWN readers. Memory usage is often the determining factor in how software performs, but good information on how to avoid memory bottlenecks is hard to find. This series of articles should change that situation. The original document prints out at over 100 pages. Reformatting the text from the original LaTeX has been a bit of a challenge, but the results, hopefully, will be good. Many thanks to Ulrich for allowing LWN to publish this material; we hope that it will lead to more memory-efficient software across our systems in the near future.] 1 Introduction In the early days computers were much simpler.

RAM hardware design (speed and parallelism). 1.3 Thanks. Index - nuwen.net. I Got 99 Problems, but Developing Ain't One - Software Deve. 100 Essential Resources for Web Developers Software Developer Editors In the words of the rapper/entrepreneur and occasional developer Jay-Z, "If you got developing problems I feel bad for you son....

" A Web developer's life is hard enough without having to go on the hunt for good developing resources. To help you take a load off, we've compiled a list of some of the best tools available. After using these resources, you may still have 99 problems, but we guarantee that developing ain't gonna be one of them. Related Articles: Best of the Best These resources should be any developer's first stop when looking for essential tutorials and knowledge. W3C: At the World Wide Web Consortium, you'll find just about everything you need to know about standards, accessibility, HTML, internationalization and more. Can't-Miss Web Development Magazines Stay informed and entertained with these thought-provoking industry magazines. Can't-Miss Blogs Incredible Coding Resources Usability and Accessibility.

Memory Management Reference: Frequently Asked Questions. This is a list of questions that represent the problems people often have with memory management. Some answers appear below, with links to helpful supporting material, such as the glossary, the bibliography, and external sites. For a full explanation of any terms used, see the glossary. C-specific questions C++-specific questions Common objections to garbage collection Miscellaneous C-specific questions Can I use garbage collection in C?

Yes. Related terms: C; conservative garbage collection Useful websites: Boehm-Weiser collector <URL: Why do I need to test the return value from malloc? For small programs, and during light testing, it is true that malloc usually succeeds. Someone uses your program for a far larger data set than you anticipated; Your program is running on a machine with less memory than you expected; The machine your program is running on is heavily loaded.

Undefined behavior is worth eliminating even in small programs. Yes. David S. All Unkept. The Object Oriented Programming Web. The Hello World Collection. Quine Program. Quine in computing, a program producing its complete source code as its only output without simply opening the source file of the program and printing the contents (such actions are considered cheating). This type of program is offered as a somewhat more interesting alternative to HelloWorld programs. Quines are named after the logician WillardVanOrmanQuine. Why are quines so interesting ? Print("Hello, world. ") So now you know how to print *anything*. Print("\"Hello, world. \"") You've just replaced the problem of the quotes with the problem of the slash. Print("quote: \" slash: \\ another slash: \\ another quote: \" The end.

") Ah, but I bet you can't print the entire program. Print("print(\"Hello, world. \")") Yes, that prints the hello world program. Print("print(\"print(\\\"Hello, world. \\\")\")") Yes, that prints *a* program. Print("print(\"print(\\\"print(\\\\\\\"Hello, world. \\\\\\\")\\\")\")") Yes, that prints *a* program. Print(" <some stuff><infinite number of slashes >"Hello, world. Programming Wisdom Center. Programming Texts/Tutorial. Biggus Biggus is a pure-Python library for handling very large (i.e. too large for system memory) n-dimensional arrays.

It has two main components: Representation, lazy indexing, and conversion to persistent files and NumPy arrays; andLazy calculation. At the core of Biggus is the Array which provides a simple, consistent, NumPy-esque interface to n-dimensional data which avoids reading data until explicitly requested by user code. Commonly these Array objects are created by wrapping "concrete" data sources such as HDF5 variables, netCDF4 variables, or even just NumPy arrays. Once created, Array objects can be concatenated and stacked to form new Array objects, which can themselves be concatenated and stacked as required.

In this way it is possible to construct virtual arrays of arbitrary size, spanning multiple data sources. In addition, all Array objects can be indexed to extract subsets. User code may request any Array object be saved to a "concrete" data form (e.g. Programmer Hierarchy. Processing 1.0 (BETA) Inversion of Control Containers and the De. In the Java community there's been a rush of lightweight containers that help to assemble components from different projects into a cohesive application. Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, under the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative.

The choice between them is less important than the principle of separating configuration from use. One of the entertaining things about the enterprise Java world is the huge amount of activity in building alternatives to the mainstream J2EE technologies, much of it happening in open source. A lot of this is a reaction to the heavyweight complexity in the mainstream J2EE world, but much of it is also exploring alternatives and coming up with creative ideas. Components and Services A Naive Example class MovieLister... The Programmers Bill of Rig. It's unbelievable to me that a company would pay a developer $60-$100k in salary, yet cripple him or her with terrible working conditions and crusty hand-me-down hardware. This makes no business sense whatsoever. And yet I see it all the time.

It's shocking how many companies still don't provide software developers with the essential things they need to succeed. I propose we adopt a Programmer's Bill of Rights, protecting the rights of programmers by preventing companies from denying them the fundamentals they need to be successful. The few basic rights we're asking for are easy. They aren't extravagant demands. They're fundamental to the quality of work life for a software developer.