Start - The Top 9½ Books In a Hacker's Bookshelf | GrokCode - Pentadactyl Every hacker should have a good solid dead tree library to draw ideas from and use as reference material. This list has a bit of everything – textbooks you will encounter at top tier computer science universities, books giving insight into the industry, and references you shouldn’t be caught without. It is a list of hackers’ classics. The Mythical Man Month: Essays on Software Engineering – Anniversary Edition by Fredrick P. This is a classic on the human elements of software engineering first published in 1975. The Mythical Man-Month: Adding manpower to a late software project makes it later. No silver bullet: There is not a single strategy, technique, or trick that can exponentially raise the productivity of programmers. I recommend this book not only for programmers, but for anyone managing a software project. The C Programming Language (2nd Edition) by Brian W. Commonly referred to as just K&R, this is the canonical C reference book. by Harold Abelson and Gerald Jay Sussman by Thomas H.
Implementing Regular Expressions Russ Coxrsc@swtch.com This page collects resources about implementing regular expression search efficiently. Articles and Notes “Regular Expression Matching Can Be Simple And Fast” “Regular Expression Matching: the Virtual Machine Approach” An introduction to submatch tracking during efficient (non-backtracking) NFA-based regular expression matching. Supporting programs: “Regular Expression Matching in the Wild” “Regular Expression Matching with a Trigram Index” “IBM 7094 Cheat Sheet” If you want to read Ken Thompson's original 1968 paper (see below), you'll want to take this with you. “Regular Expressions: Languages, Algorithms, and Software” by Brian W. The cleanest, simplest, backtracking implementation you'll ever see. See also Chapter 9 of The Practice of Programming and Chapter 1 of Beautiful Code. Efficient Implementations RE2 regular expression library Efficient automaton-based implementation of Perl-syntax regular expressions (excluding backreferences). M.
The Architecture of Open Source Applications Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes. Our goal is to change that. If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start. Teaching Open Source Wykłady PW struktury danych, grafy, algorytmy Najbardziej znanym i rozpowszechnionym algorytmem wyszukiwania najkrótszych ścieżek w grafie z jednym źródłem jest algorytm Dijkstry. Został on opracowany w roku 1959r. przez jednego z najsłynniejszych pionierów informatyki - zajrzyjcie od razu do Wikipedii. Algorytm Dijkstry wyznacza najkrótsze ścieżki z jednego wybranego węzła (źródła) do pozostałych węzłów grafu. Bardzo ważnym warunkiem koniecznym do poprawnego działania tego algorytmu jest to, by wszystkie krawędzie grafu posiadały nieujemne wagi. Algorytm wyszukuje najkrótsze ścieżki z jednego źródła do wszystkich pozostałych węzłów grafu, jednakże może być on w prosty sposób wykorzystany do znalezienia najkrótszej ścieżki między dwoma węzłami – wystarczy zatrzymać algorytm w momencie, gdy poszukiwana najkrótsza ścieżka zostanie znaleziona, a nie potrzebujemy informacji o reszcie pozostałych jeszcze nieokreślonych ścieżek między źródłem a innymi węzłami. Idea omawianego algorytmu jest następująca. Aplet Przykład
Start - Amazon.com: Thinking Forth (9780976458708): Leo Brodie: Books - Pentadactyl Comparison of Free Bibliographic Managers Beyond My Mind I never realized the scarcity of a good tool for managing personal bibliography database until recently. I was writing a paper and found that it is really difficult to manage hundreds of references and use them in a document. Beside my original research I started researching on this issue and found that no single tool can solve all the required tasks for this purpose. This post is a result of the search for a free tool that will best serve this purpose. Here is how a bibliographic manager works. An author creates a document and cites his document with entries form a bibliographic database created earlier. Figure 1: The bibliographic citation process I will present a comparison matrix on all the available bibliographic managers. Expected Features in a Bibliographic Manager There are six basic requirements expected from a bibliographic manager. Search: Search all the available academic/non-academic databases.Store: Store the reference and possibly a soft copy of the reference. Like this:
Let Over Lambda Hibernate Annotations First, set up your classpath (after you have created a new project in your favorite IDE): Alternatively, import your pom.xml in your favorite IDE and let the dependencies be resolved automatically, We recommend you use Hibernate Validator and the Bean Validation specification capabilities as its integration with Java Persistence 2 has been standardized. Download Hibernate Validator 4 or above from the Hibernate website and add hibernate-validator.jar and validation-api.jar in your classpath. Alternatively add the following dependency in your pom.xml. <project> ... If you wish to use Hibernate Search, download it from the Hibernate website and add hibernate-search.jar and its dependencies in your classpath. <project> ... We recommend you use the JPA 2 APIs to bootstrap Hibernate (see the Hibernate EntityManager documentation for more information). If you boot Hibernate yourself, make sure to use the AnnotationConfiguration class instead of the Configuration class. Note
The demise of the low level Programmer. « #AltDevBlogADay When I started programming many of the elements we take for granted now, did not exist. There was no DirectX and not many compatible libs were available for the free compilers of the day. So I had to write my own code for most basic programs, keyboard handlers, mouse handlers, video memory accessors, rasterizers, texture mappers, blitters… the programs I wrote then were 100% my own code and I had to be able to handle anything and everything. Personally I’ve always been interested in what was going on under the hood so this suited me just fine. I always dug into the details and I almost always end up programming as close to the bone ON the hardware (or OS) as I possibly can both to eek out as much performance as possible AND to satisfy my own hunger for knowledge. Over the last decade I’ve been involved in the hiring process at many studios and in more recent years I’ve noticed a pattern. It depresses me that so much of what I consider to be essential is simply not being taught anymore.
Start - The Pragmatic Programmer: From Journeyman to Master : Andy Hunt, David Thomas : 9780201616224 - Pentadactyl What others in the trenches say about The Pragmatic Programmer..."The cool thing about this book is that it's great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there." --Kent Beck, author of Extreme Programming Explained: Embrace Change "I found this book to be a great mix of solid advice and wonderful analogies!" --Martin Fowler, author of Refactoring and UML Distilled "I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy.
| Simon Peyton Jones: book Simon Peyton Jones and David Lester. Published by Prentice Hall, 1992. Now, alas, out of print. However the full text of the book is available here: Abstract This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. The unusual aspect of the book is that it is meant to be executed as well as read. Overview of the book The principal content of the book is a series of implementations of a small functional language called the Core language. Appendix B contains a selection of Core-language programs for use as test programs thoughout the book. The main body of the book consists of four distinct implementations of the Core language. Chapter 2 describes the most direct implementation, based on template instantiation. The machine interpreter simulates the execution of the compiled program. One important way in which the Core language is restrictive is in its lack of local function definitions. Typographical errors
Hibernate Annotations First, set up your classpath (after you have created a new project in your favorite IDE): Alternatively, import your pom.xml in your favorite IDE and let the dependencies be resolved automatically, We recommend you use Hibernate Validator and the Bean Validation specification capabilities as its integration with Java Persistence 2 has been standardized. <project> ... If you wish to use Hibernate Search, download it from the Hibernate website and add hibernate-search.jar and its dependencies in your classpath. <project> ... We recommend you use the JPA 2 APIs to bootstrap Hibernate (see the Hibernate EntityManager documentation for more information). If you boot Hibernate yourself, make sure to use the AnnotationConfiguration class instead of the Configuration class. package hello; import org.hibernate. Interesting here is the use of AnnotationConfiguration. Note that you can mix the legacy hbm.xml use and the annotation approach. Note