background preloader

Green Tea Press: Free Computer Science Books

Green Tea Press: Free Computer Science Books

Think OS A Brief Introduction to Operating Systems by Allen B. Downey Download Think OS in PDF. Read Think OS in HTML. Description Think OS is an introduction to Operating Systems for programmers. In many computer science programs, Operating Systems is an advanced topic. This book is intended for a different audience, and it has different goals. Most students taking this class learned to program in Python, so one of the goals is to help them learn C. Few of my students will ever write an operating system, but many of them will write low-level applications in C, and some of them will work on embedded systems. This book does not assume that you have studied Computer Architecture. If this book is successful, it should give you a better understanding of what is happening when programs run, and what you can do to make them run better and faster. The current version of this book is an early draft. Think OS is a Free Book. Other Free Books by Allen Downey are available from Green Tea Press. Download

code.tutsplus Introduction Searching records is a common requirement in web applications. There is usually a requirement to allow users to quickly access the data they want from large records. While it is possible to do this using simple SQL queries, sometimes it is more efficient to use a search engine. Solr is a popular search platform from the Apache Lucene project. Project Setup I've created a simple app on Github which I'll be using here instead of starting with a new project. The image below shows the application. Searching We'll start off by including the Sunspot and Solr gems in our Gemfile. Run bundle install and then run the following command to generate the Sunspot configuration file. This creates the /config/sunspot.yml file which lets your app know where to find the Solr server. To set up the objects that you want indexed, add a searchable block to the objects. Start the Solr server by running: Run the application and you should now be able to search through the available products. Conclusion

Become a Programmer, Motherfucker If you don't know how to code, then you can learn even if you think you can't. Thousands of people have learned programming from these fine books: Learn Python The Hard Way Learn Ruby The Hard Way Learn Code The Hard Way I'm also working on a whole series of programming education books at learncodethehardway.org. Learn C The Hard Way Learn SQL The Hard Way Graphics Programming Language Agnostic NerdDinner Walkthrough Assembly Language Bash Clojure Clojure Programming ColdFusion CFML In 100 Minutes Delphi / Pascal Django Djangobook.com Erlang Learn You Some Erlang For Great Good Flex Getting started with Adobe Flex (PDF) Forth Git Grails Getting Start with Grails Haskell Java JavaScript JavaScript (Node.js specific) Latex The Not So Short Introduction to LATEX (perfect for beginners) Linux Advanced Linux Programming Lisp Lua Programming In Lua (for v5 but still largely relevant)Lua Programming Gems (not entirely free, but has a lot of free chapters and accompanying code) Maven Mercurial Nemerle Nemerle NoSQL Oberon Objective-C

Essential Math for Games Programmers As the quality of games has improved, more attention has been given to all aspects of a game to increase the feeling of reality during gameplay and distinguish it from its competitors. Mathematics provides much of the groundwork for this improvement in realism. And a large part of this improvement is due to the addition of physical simulation. This tutorial deepens the approach of the previous years' Essential Math for Games Programmers, by spending one day on general math topics, and one day focusing in on the topic of physical simulation. Topics for the various incarnations of this tutorial can be found below. Current Materials Slides The latest available versions of the slides for the math tutorials at GDC 2015 are as follows: See below for further materials from past years that may be useful. Past Materials Presentations for the math tutorials at GDC 2014 are as follows: Presentations for the math tutorials (the physics presentations are available here) at GDC 2013 are as follows:

Rosetta Code Gabriel Gambetta - Pathfinding Demystified (Part I): Introduction Part I - Part II - Part III - Part IV Introduction Pathfinding is one of these topics that usualy baffles game developers. The A* algorithm in particular is poorly understood, and the general belief seems to be that it’s arcane magic. The objective of this series of articles is to explain pathfinding in general and A* in particular in a very clear and accessible way, and put an end to the misconception that it’s a difficult topic. Properly explained, it’s quite straightforward. Note that the focus is on pathfinding for games; unlike a more academic approach, we’ll just skip search algorithms such as Depth-First or Breadth-First. This first article explains the very basic concepts of pathfinding. A Simple Setup Although you’ll be able to apply these concepts to arbitrarily complex 3D environments, let’s start with an extremely simple setup: a 5 x 5 square grid. The very first thing we do is to represent this environment as a graph. Each node represents a “state” your character can be in.

Absolutely No Machete Juggling » Top 10 Career-Changing Programming Books When I grad­u­ated with a Com­puter Science degree ten years ago, I was excited to dive into the world of pro­fes­sional pro­gram­ming. I had done well in school, and I thought I was com­pletely ready to be em­ployed doing my dream job: writing code. What I dis­cov­ered in my very first in­ter­view, however, was that I was mas­sively un­der­pre­pared to be an actual pro­fes­sional pro­gram­mer. Here I reflect on my 10-year ex­pe­ri­ence pro­gram­ming pro­fes­sion­ally and all of the books I've read in that time, and offer up the ten that had the most pro­found impact on my career. None of these books are lan­guage books. So, without further ado... The Prag­matic Pro­gram­mer I know, I know. If you were to read only one book on this list, this is the one to read. Many pro­gram­mers got into the field because they liked hacking on code in their spare time, writing scripts to au­to­mate tasks or oth­er­wise save time. How ground­break­ing is this book? Con­tin­u­ous De­liv­ery Release It!

Related: