Revision [20931]
This is an old revision of PuppySchoolProgramming made by CrustyLobster on 2012-03-03 14:22:41.
Computer Science at Khan Academy
My First Bash
First Bash Script video
Change the permissions of a script to run. Right click and change permissions
My First Variable
Introduces input (the read command)
and variables
The read command changes the variables each program run
#!/bin/sh echo "enter two numbers" read a b c=$(($a+$b)) echo "$a + $b = $c" # or let c="$a+$b" echo "$a + $b is $c"
Instant Bash
3 lessons starting with a Puppy style 'Hello world'
#! /bin/bash # 16 Dec 2011 Lobster # Example 1 hello world example xpupsay "hello world" xpupsay "puppy power"
Speak Puppy a first programming effort
Example usage video Buddhist cyber shrine
More Bash Script
Bash Script GUI
GTK with Bash script may require forum registration
Bacon with Barry Kauler
Bacon is a BASIC language to C converter written in Bash Script
another slice may need forum registration
Vala
Smalltalk
Pharo is an implementation of Squeak, which is a unique version of the programming language 'Smalltalk'
run the shellscript Pharo-1.3-13315-OneClick.app you find in the folder/directory
Pharo is now running
Pascal
Python
Python is available in the Puppy programmers devx In Puppy 5.3.1 click on Slickpet icon and go to SFSget in Slickpet. Then click on the Gcc button to download and install. To run Pythn from terminal type python
What is Programming?
## Random fruit response # Lobster March 3 2012 import random verb = ['erratic', 'unbelievable', 'unfortunate', 'inconsequential'] fruit = ['raspberry', 'pomegranite', 'bananana', 'grape', 'loganberry'] print "You are an" , random.choice (verb) , random.choice (fruit)
C and C++
Ruby with code academy
Learn to code in Python. Ruby and Javascript from your browser . . .
Maths and more
Project Euler programming to solve maths problems
Getting involved with Puppy
Saluki in Alpha testing. Testing and offering feedback. Fast learning curve.
Compiling
The Devx programming developer SFS is required for Puppy compiling programming for anything beyond Bash script
Go to Slickpet / SFS tab and click on the GNU compiler button
compiling in C and other languages is available
Compiling (forum registration required)
New Run
Process for a new run from DVD booting
First Preparing
1. backup html bookmarks (onto HD)
2. move any essential files to hard disk
3. download and burn ISO
Now first run
1. use 'puppy pfix=ram' as the boot command (start typing when boot: appears on screen) I do this on first boot but is not required for new users
2. Turn on firewall from icon bar bottom right, left clicking runs wizard
3. Do a save after initial set up, I now do max 4GB saves
4. Click on 'Setup' top row of icons for tweaking
5. Use the 'connect' icon. Ethernet is auto connected.
6. In Rox options/thumbnails/show images - I prefer to see images in folders
7. Add my own backgrounds from Hard Drive (usr/share/backgrounds)
8. Change icons. Adjust the style of the clock with Menu -> General Utilities -> PupClockset manager.
9. Put on pup ad blocker, import bookmarks
Hardware
Create your own Linux Distribution coming soon . . .
Remastering
Before you remaster, you need to
1. rename /usr/sbin/xorgwizard to /usr/sbin/xorg-setup
2. copy the attached xorgwizard into /usr/sbin. ( right-click -> Save As) http://diddywahdiddy.net/Puppy500/xorgwizard
What is happening is that on first boot, the attached xorgwizard runs and Lucid boots to the desktop, then it renames xorg-setup to xorgwizard so that users can run xorgwizard. Sneaky, huh?
You also need to change the permissions on /root/Startup/fullstart. You could do that during the remastering process when it gives you a chance to adjust files in /root. The way I do it is to right-click and choose Permissions. So if the name fullstart turns green that means the permissions are correct for it to run on first boot.
creating a md5sum
# md5sum Lucid_Tmxxine-v1.iso > md5sumtxt
Woof2 beyond remastering Advanced
Create your own Linux Distribution coming soon . . .
video tutorial with Sneaky Linux
Remastering
Before you remaster, you need to
1. rename /usr/sbin/xorgwizard to /usr/sbin/xorg-setup
2. copy the attached xorgwizard into /usr/sbin. ( right-click -> Save As) http://diddywahdiddy.net/Puppy500/xorgwizard
What is happening is that on first boot, the attached xorgwizard runs and Lucid boots to the desktop, then it renames xorg-setup to xorgwizard so that users can run xorgwizard. Sneaky, huh?
You also need to change the permissions on /root/Startup/fullstart. You could do that during the remastering process when it gives you a chance to adjust files in /root. The way I do it is to right-click and choose Permissions. So if the name fullstart turns green that means the permissions are correct for it to run on first boot.
creating a md5sum
# md5sum Lucid_Tmxxine-v1.iso > md5sumtxt
Woof2 beyond remastering Advanced
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. These are works in progress, and feedback is welcome.
Learn C The Hard Way
Learn SQL The Hard Way
Learn Regex The Hard Way
A Huge List of Free Books
Programming Languages | ||
---|---|---|
Assembly Language | Bash | C / C++ |
C# | Clojure | ColdFusion |
Delphi / Pascal | Erlang | F# |
Forth | Haskell | HTML / CSS |
Java | JavaScript | Latex |
Lisp | Lua | Nemerle |
Oberon | Objective-C | OCaml |
Oracle PL/SQL | Parrot / Perl 6 | Perl |
PHP | PowerShell | Prolog |
Python | R | Ruby |
Scala | Scheme | Smalltalk |
SQL | ||
Frameworks | ||
ASP.NET MVC | Django | Flex |
Grails | .NET | Ruby on Rails |
Tools | ||
DB2 | Git | Linux |
Maven | Mercurial | NoSQL |
Oracle Server | PostgreSQL | Subversion |
Vim | Emacs | |
General Topics | ||
Graphics Programming | Language Agnostic |
Graphics Programming
- GPU Gems
- GPU Gems 2 - ch 8,14,18,29,30 as pdf
- GPU Gems 3
- Graphics Programming Black Book
- ShaderX series
- DirectX manual (draft)
- Learning Modern 3D Graphics Programming (draft)
Language Agnostic
- Object-Oriented Reengineering Patterns
- Foundations of Programming
- Computer Musings (lectures by Donald Knuth)
- The Cathedral and the Bazaar
- Patterns and Practices: Application Architecture Guide 2.0
- Security Engineering
- Digital Signal Processing For Engineers and Scientists
- Getting Real
- Domain Driven Design Quickly
- OO Design
- Best Kept Secrets of Peer Code Review
- NASA Software Measurement Handbook
- NASA Manager Handbook for Software Development (PDF)
- Introduction to Functional Programming (class lectures and slides)
- How to Design Programs
- Guide to the Software Engineering Body of Knowledge
- Online Course Materials
- Algorithms (draft)
- Data Structures and Algorithms
- Essential Skills for Agile Development
- Programming Languages: Application and Interpretation
- Learn to Program
- Patterns of Software: Tales from the Software Community (PDF)
- How to write Unmaintainable Code
- The Art of Unix Programming
- The Definitive Guide to Building Code Quality
- How to Think Like a Computer Scientist
- Planning Algorithms
- Mathematical Logic - an Introduction (PDF)
- An Introduction to the Theory of Computation
- Developers Developers Developers Developers (broken download link?)
- Linkers and loaders
- Let's Build a Compiler
- Producing Open Source Software
- How to Write Parallel Programs
- Don't Just Roll the Dice
- 97 Things Every Programmer Should Know
- How Computers Work
- Introduction to Information Retrieval
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Matters Computational
- Type Theory and Functional Programming
- Getting started with Open source development (PDF)
- Database Fundamentals (PDF)
- Clever Algorithms
- Summary of the GoF Design Patterns
- Flow based Programming
- Algorithms and Data-Structures (PDF)
- Compiler Construction (PDF)
- Project Oberon (PDF)
- The Little Book of Semaphores
- Essential Skills for Agile Development
- I Am a Bug
- Mining of Massive Datasets
- Data-Intensive Text Processing with MapReduce (PDF)
- Understanding IP Addressing: Everything you ever wanted to know (PDF)
- Operating Systems and Middleware (PDF and LaTeX)
- Think Stats: Probability and Statistics for Programmers (PDF, code written in Python)
- The Architecture of Open Source Applications
ASP.NET MVC
Assembly Language
- ProgrammingGroundUp (PDF)
- Paul Carter's Tutorial on x86 Assembly
- Software optimization resources by Agner Fog
Bash
C / C++
- The new C standard - an annotated reference
- Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
- The C book
- Thinking in C++, Second Edition
- C++ Annotations
- Software optimization resources by Agner Fog
- Introduction to Design Patterns in C++ with Qt 4 (PDF)
- Object Oriented Programming in C (PDF)
- Beej's Guide to Network Programming
- Learn C the hard way
- Also see: The Definitive C++ Book Guide and List
C#
- C# School (covers C# 1.0 and 2.0)
- Threading in C#
- C# Yellow Book (intro to programming)
- C# Programming - Wikibook
- C# Essentials
- Data Structures and Algorithms with Object-Oriented Design Patterns in C#
- Illustrated C# 2008 (.zip, dead link)
Clojure
ColdFusion
DB2
- Getting started with IBM Data Studio for DB2 (PDF)
- Getting started with IBM DB2 development (PDF)
- Getting started with DB2 Express-C (PDF)
Delphi / Pascal
Django
Erlang
Flex
F#
- The F# Survival Guide
- F Sharp Programming in Wikibooks
- Real World Functional Programming (MSDN Chapters)
Forth
Git
Grails
Haskell
HTML / CSS
Java
- Sun's Java Tutorials
- Thinking in Java
- How to Think Like a Computer Scientist
- Java Thin-Client Programming
- OSGi in Practice (PDF)
- Java 6 Tutorial (PDF)
JavaScript
- Eloquent JavaScript
- Crockford's JavaScript
- jQuery Fundamentals (starts with JavaScript basics)
- Mozilla Developer Network's JavaScript Guide
- Essential Javascript & jQuery Design Patterns for Beginners
Latex
- The Not So Short Introduction to LATEX (perfect for beginners)
Linux
Lisp
- COMMON LISP: An Interactive Approach
- A Short Course in Common Lisp
- Structure And Interpretation of Computer Programs
- A Gentle Introduction to Symbolic Computation (PDF)
- Practical Common Lisp
- On Lisp
- ANSI Common Lisp
- Common Lisp the Language, 2nd Edition
- Successful Lisp
- Let Over Lambda - 50 Years of Lisp
- Natural Language Processing in 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
- Better Builds with Maven
- Maven by Example
- Maven: The Complete Reference
- Repository Management with Nexus
- Developing with Eclipse and Maven
Mercurial
Nemerle
.NET
- C# School (covers C# 1.0 and 2.0)
- Visual Studio Tips and Tricks (VS 2003-2005 only)
- Entity Framework
- Charles Petzold's .NET Book 0
- Threading in C#
- C# Yellow Book (intro to programming)
- C# Programming - Wikibook
- C# Essentials
- Data Structures and Algorithms with Object-Oriented Design Patterns in C#
- Nemerle
NoSQL
Oberon
- Programming in Oberon (PDF)
Objective-C
OCaml
Oracle Server
- Oracle's Guides and Manuals
Oracle PL/SQL
- PL/SQL Language Reference
- PL/SQL Packages and Types Reference
- Steven Feuerstein's PL/SQL Obsession - Videos and Presentations
Parrot / Perl 6
- Using Perl 6 (work in progress)
Perl
- Higher-Order Perl
- Perl The Hard Way
- Extreme Perl
- Perl Free Online EBooks (meta-list)
- The Mason Book
- Practical mod_perl
- Beginning Perl
- Embedding Perl in HTML with Mason
- Perl & LWP
- Perl for the Web
- Web Client Programming with Perl
- Modern Perl 5
PHP
- Symfony2
- Practical PHP Programming (wiki containing O'Reilly's PHP In a Nutshell)
- Zend Framework: Survive the Deep End
PowerShell
Prolog
- Building Expert Systems in Prolog
- Adventure in Prolog
- Prolog Programming A First Course
- Logic, Programming and Prolog (2ed)
- Introduction to Prolog for Mathematicians
- Learn Prolog Now!
- Natural Language Processing in Prolog
- Natural Language Processing Techniques in Prolog
- Prolog techniques
- Applications of Prolog
- Simply logical
PostgreSQL
Python
- Byte of Python
- Building Skills in Python Version 2.5
- Python Bibliotheca
- Think Python (PDF)
- Data Structures and Algorithms in Python
- Dive into Python
- How to Think Like a Computer Scientist: Learning with Python
- Python for Fun
- Invent Your Own Computer Games With Python
- Learn Python The Hard Way
- Thinking in Python
- The Django Book
- Snake Wrangling For Kids
- Natural Language Processing with Python
R
Ruby
- Programming Ruby
- Why's (Poignant) Guide to Ruby (mirror)
- Mr. Neighborly's Humble Little Ruby Book
- Ruby Best Practices
- MacRuby: The Definitive Guide
- Learn Ruby the hard way
Ruby on Rails
Scala
- Programming in Scala, First Edition
- A Scala Tutorial for Java programmers (PDF)
- Scala By Example (PDF)
- Programming Scala
- Xtrace (Github)
- Lift (Github)
- Pro Scala: Monadic Design Patterns for the Web
- Exploring Lift (published earlier as "The Definitive Guide to Lift", PDF)
Scheme
Smalltalk
- Free Online Smalltalk Books (meta-list)
- Squeak By Example (Smalltalk IDE)
Subversion
SQL
- Developing Time-Oriented Database Applications in SQL
- Use The Index, Luke! (a guide to SQL database performance for developers)
- Learn SQL The Hard Way