The Closed World Assumption by C.J. Date

bkt_closed_world_assumption

Summary: For relational theory addicts

I always have problem while reviewing C.J. Date’s material. The point here is that the quality, content and way of delivering it are always top noch. No questions here. But on the other hand, when it comes to audience, I think they are targeting specific people and really limited number of specialists. In today’s lazy world, we seek for quick and easy answers and when it comes to deeper understanding of certain topics we tend to avoid getting into details – especially when it takes time.

This is exactly the case here. This material is really important for people who want to get familiar with the foundations of relational databases. In practice, we typically focus only on SQL and database engines, but I think that it’s good to get into basis of relational system if we want to really feel what database are all about. It certainly is the case that you will not become SQL expert after this series, but you will be well aware of some of the limitations in the database world.

There are few things that I miss here in the video. First of all, I would like to be able to download the slides as it definitely would improve the watching experience. Unfortunately, I couldn’t find them on the web page. Another issue here is that video material contains topics you can find in some other videos which should be watched in advance to fully benefit from this one (at least that’s what I assume basing on the content).

Big plus here for packing all the content in reasonable time span. It should be quite easy to find an hour, maybe two (if you want to go carefully over all topics) to watch it.

The content of the video is based on Logic and Databases: The Roots of Relational Theory by C. J. Date but you will also find the definition of closed world as well as samples in the book SQL and Relational Theory: How to Write Accurate SQL Code

Product page:

O’Reilly: The Closed World Assumption

Locko – “personal cloud”

I am strongly against clouds, and the reason here is not that some naked pictures recently leaked from somewhere. I simply don’t store sensitive data at someone’s hard drives. Period.

However, I need some sort of cloud for my personal usage – especially for Locko. I don’t want to copy paste all the passwords manually.

locko

As a personal “cloud server” I use svn installed on FreeBSD. To be able to exchange data between Locko’s database you have to transfer this directory

~/Library/Group Containers/J3CP9BBBN6.com.binarynights/Locko.lckdb

All you have to do is:

1. create SVN repository at your server

svnadmin create /svn/repos/Locko.lckdb

2. make sure you can access it in read/write mode

# pay attention to these files
/svn/repos/Locko.lckdb/conf/svnserve.conf
/svn/repos/Locko.lckdb/conf/userfile

3. checkout Locko.lckdb project at the machine that contains Locko database

# MAKE sure to create backup before proceeding any further !!
cd ~/Library/Group\ Containers/J3CP9BBBN6.com.binarynights/
mv Locko.lckdb Locko.lckdb~
svn co svn://yourhost/Locko.lckdb
# go to newly created directory
cd Locko.lckdb
# and get database from original location
cp -r ../Locko.lckdb~/* .
# make sure to add all data into SVN
svn add hosts
svn add default
svn commit -m "created new database for Locko"

4. on second machine, simply checkout database

# MAKE sure to create backup before proceeding any further !!
cd ~/Library/Group\ Containers/J3CP9BBBN6.com.binarynights/
mv Locko.lckdb Locko.lckdb~
svn co svn://yourhost/Locko.lckdb

And that’s it. In my case it works fine as one of the machines is the master and the other one is used occasionally. I haven’t tried to merge simultaneous additions or modifications of passwords. However, I expect some issues here as everything here are binary data.

Scratch – which book should I pick!?

In this post I will give insights on which book should you pick when you want to start teaching kids. Please note that this is my personal view!

bkt_super_scratch bkt_learn_to_program_with_scratch
What is the age of kids? 6-10 11-16
Who are you? Just a parrent Teacher and I know some programming language already
Who will read this book? Me, together with kids My children can already read books and know maths
How kid will proceed with learning? We will sit together, and follow the book. My kid can read “complex” text and understand it. He will do tasks on his own.

Learn to Program with Scratch by Majed Marji

bkt_learn_to_program_with_scratch

Summary: Really good reference for Scratch

I have started with Super Scratch Programming Adventure! book and my first reaction was like I wanted to reject this one and not to read it at all. The point here is that Super Scratch is made with better taste when it comes to graphics and is better suited for kids. But, don’t be fooled by the layout. This book is really, really good reference to scratch. It simply targets different group of people. While Super Scratch Programming Adventure! is focused more on kids at age 6-9, I’d say that this one targets kids between 11-16 as well as teachers. If you want to teach Scratch, this one will be much better pick for you as it covers the langue in more systematic way.

On the other hand, when it comes to kids, it requires more reading (and reading is, oh so borring) and more systematic approach to learning – and that’s also boring ;) But for me, this one is much better place to look at when I want to find some information regarding Scratch.

Let me just show you the sample. Below, you can find the game made in half an hour after reading first chapter of the book. Let’s be honest, this is really cool that you can develop game after reading like 10 to 15 pages of text.





The trampoline code is quite simple – all it has to do is to react on mouse position change.

trampoline

Button is responsible for triggering all the sprites on the scene when it is pressed (it uses messages to achieve that).

button

And the key “player” here is the ball. It is responsible for flying around and determining whether it should bounce or stop the game (when you fail to catch it with trampoline).

ball

The organization of the book is similar to any other programming language manual. You can find here sections describing all the elements of the language, with samples and explanation of how to use them. You can find lots of tutorials, however, they might be hard to follow sometimes. There is also a quite comprehensive index to make your life easier when you are looking for some particular stuff.

In my opinion, this one is best fit for you if you are either a teacher or you are at high school/middle school. But for sure, I’d advice to buy it if you want to get gentle introduction to Scratch.

Product page:

O’Reilly (print): Learn to Program with Scratch
O’Reilly (e-book): Learn to Program with Scratch

Super Scratch Programming Adventure! by the LEAD Project

bkt_super_scratch

Summary: Solid introduction to Scratch (v. 2.0)

For some time now I am looking for the programming language that can be used for teaching kids. I, personally, grown up on LOGO and BASIC. After I got my first PC XT I have jumped directly into C. But there is a huge drawback when it comes to these languages. Children have to learn to write before they can proceed with any coding. And, let’s be honest, how much fun can you get out of the code like this.

10 PRINT "HELLO"
20 GOTO 10

Being able to read and write the code is something that puts a bar at ages 9-10 before you can even start – I don’t take into account here all these IT prodigies that code before they walk. With Scratch, that’s a whole different story:

– you are building the code instead of coding
– you are playing with graphics instead of text
– you can make a program just by dragging pieces with the mouse

and that’s something that makes huge difference comparing to LOGO/BASIC/Pascal.

Now, the tool without manual is something hard to handle. And that’s the place where this book comes in. It is written with a simple language and tutorial/comix approach. All steps are explained in proper way. It is really hard to get lost here. You are just guided what to do and how to proceed to get certain results.

Take a look below. That’s simple code written just after reading few pages from the book:


And the code blocks are really simple to manage. You just build the code, you don’t write it.

code

You probably know that kids, when asked to write their very first loop (e.g. five steps), do something like this

print "hello"
print "hello"
print "hello"
print "hello"
print "hello"

Success!!

And, to my surprise, that’s what I have found in the book – the clone tool. It allows you easily clone the code so you don’t have to write it again and again. You certainly can tell that people behind the book have seen kids in action already.

You will probably ask the question – “OK, so when should I start to teach my kid coding, and how much will it cost me”. The best thing here (with Scratch) is that you can start with as low as price of Raspberry PI – a small computer that can fit in your hand (http://www.raspberrypi.org). The benefit of it is that you can use Scratch, but it’s hard to play modern games :) Then, you have to give away your TV set for a while, so your kid can use it for “development”. This is win-win. Your kid is learning while you can read something that you have planed to read long time ago. Another win-win is when you will go over the book with your kids and help them understand all the concepts. And, even though book is super simple, there are few topics that must be explained (especially to younger ones):

– cartesian coordinates
– numbers and simple operations
– some basics of logic.

If your kids already had these topics at school, they will be abel to go over the book themselves.

When it comes to content, book is designed such way, that each chapter represents game that has to be developed. The complexity gradually increases from very simple movements to complex behavior of sprites.

I would highly recommend this one to parents who know that modern times require that kids not only play with computers but also can program them. And I really think that Scratch accompanied with this title can really help you teaching kids to code.

Just one remark – don’t force kids to code as you expect it to be done. Let them use their imagination. My son’s first code was composed of 10 ghosts moving in random directions. And we have made this code together having lots of fun and great laugh :)

Product page:

O’Reilly (print): Super Scratch Programming Adventure!
O’Reilly (e-book): Super Scratch Programming Adventure!

Learning iPhone Game Development with Cocos2D 3.0 by Kirill Muzykov

cocos2d_3

Summary: Good introduction to Cocos2D

This book is a good introduction to Cocos2D. What you get here is not only a discussion of API but also remarks on game development itself. There are lots of useful information regarding not only how to code stuff, but also how to deal with elements composing the game (graphics, sprites, physics, etc.).

All the samples are written in Objective-C – you need to know it, there is no introduction to Objective-C in the book. Of course, all the samples are available for download from Packt’s portal.

I think that best audience for this book are the people who want to get familiar with Cocos and have done some iPhone development already.

Side note. It should work fine with most recent XCode 6 and iPhone 6 simulator (take a look below):

cocosat6

Product page:

Packt: Learning iPhone Game Development with Cocos2D 3.0

And Now for Something Completely Different – C++ book

Today, I have “discovered” one of the best, C++ books that I have read. Discovery was possible due to the cleanup up of my book shelf. I bet, that quality and being the best comes from the “first experience”. This book was first one related to object oriented development.

cpp

The funny thing here is that I have read it during summer holidays, at the same time I was reading Lord of The Rings and Manitou by Masterton :)

This book taught me how to deal with subclassing, operators overloading, encapsulation, polymorphism, dynamic list management, and lots of different things that are important. And this was really step forward from C language that I was using at that time.

So, it’s like 20 years with object oriented programming already :) Time flies when you have fun.

MySQL Cookbook by Paul DuBois

bkt_mysql_cookbook

Summary: Size that can kill when dropped on your head

This is a very heavy volume, real cookbook that contains lots of recipes related to MySQL. What makes this book different from other SQL books is that it focuses on certain, day to day, topics. This is not an easy go for beginners. Even though back cover says so, I’d argue. In my opinion, beginner has no chance here as he/she will fail at very beginning while trying to create tutorial database. Anyway, even though book requires some experience it can still serve as a handy tool for experienced users – typically you don’t remember all the odds and ends of MySQL (e.g. date manipulation, string related issues, exporting data, joins – why they are making people suffer).

Just one remark on the content. It is really Linux/OS X oriented. Everything is done in CLI. Another drawback of the book is that it is “chaotic” when you try to read it cover to cover. Unfortunately, this book is not meant to be read this way.

If you plan to buy eBook – head for PDF instead of Kindle edition. Kindle edition has lots of flaws related to formatting and broken references (e.g. recipes numbers in references are empty).

And yes, this is true that most of the information in this book can be found on stackoverflow. Question is, whether you prefer to dig through posts or to have solutions on your desk.

Product page:

O’Reilly (print): MySQL Cookbook
O’Reilly (e-book): MySQL Cookbook

And Now for Something Completely Different – Footprints

If you like Jazz, make sure to check this one.

http://footprints-jazz.blogspot.com

18, great remixes of various Jazz sources. Really worth checking.

Working with Algorithms in Python by George T. Heineman

bkt_working_with_python

Summary: Python on Her Majesty ‘the Algorithm’ service

This video series is good for you if:

– you switch from other language to Python,
– you already know at least basics of Python (sorry, there is no Python introduction here),
– you are familiar with Python environment (installation, using idle),
– you already have some math and/or computer science basics.

If you are a complete newcomer to computer science, with no background at all – this one can really discourage you.

In addition to the knowledge, you will need:
– money, this course is quite pricy,
– time – you simply need 8h of your time (+ time you need to spend on playing with examples).

Anyway, I still think that this video is definitely worth watching. It will guide you through the most common data structures and algorithms you can find while developing apps. You will also get familiar with some terminology and IT jargon. And, it will definitely help you understand Python while you are in transition from some other language.

And again – this is the place where buying Safari subscription can be better solution for an independent developer.

Product page:

O’Reilly: Working with Algorithms
Safari Books Online: Working with Algorithms

←Older