Computer Science Programming Basics with Ruby by Ophir Frieder, Gideon Frieder, and David Grossman

bkt_computer_science_programming_basics_in_ruby

Summary: Computer Science 101

The book is a simple, short introduction to computer science and programming. It’s an unusual book as it is really short and concise (side note: compare it to The Art of Computer Programming by Donald E. Knuth – 3168 pages). However, this doesn’t mean it is unusable, contrary, it is a nice introduction for beginners.

If you are person who wants to learn some basics of Computer Science and programming, you don’t have strong attitude towards any particular programming language and you have some basic knowledge of algebra, you should definitely take this book into account.

After reading this book you will learn how to use most common programming constructs: conditional structures, loops, arrays, hash tables, some advanced sorting algorithms (read on my remarks on that), input and output operations. All that presented in a Ruby way. It’s hard for me to say whether Ruby is a good choice here as I grow up on Pascal and C, but I think it might be a good choice after all as it is a dynamic language.

In general, I think this book is worth considering. The only part I would consider hard to follow is a part covering sorting algorithms. In my opinion, explanations provided by authors will left readers in place where they know something but can not understand everything. I’d rather read something regarding standard sorting algorithms provided by Ruby framework.

Anyway. I think this book is worth considering if you have never ever done anything with Computer Science and programming.

O’Reilly (print): Computer Science Programming Basics in Ruby
O’Reilly (e-book): Computer Science Programming Basics in Ruby
Amazon (print):
Computer Science Programming Basics in Ruby

Amazon (e-book): Computer Science Programming Basics in Ruby
Safari Books Online: Computer Science Programming Basics in Ruby

Programming iOS 6, 3rd Edition by Matt Neuburg

bkt_programming_ios6

Summary: I simply like the style

This is the next release of the series related to iOS Programming. This time, Matt focuses on iOS 6 release. Comparing to previous releases, you will find here information regarding new APIs new configuration settings and new features in XCode 4.X version. This release is focused on LLVM and LLDB as they are de facto standard now – when it comes to XCode. You will also find, at last, some information regarding CoreData. The chapter is not too long, but for people who have never coded using CoreData ever before it will be a good overview. However, if you plan to do some serious CoreData coding, this book is not enough. The same refers to SQLite. There is only one page devoted to this topic in the book. Anyway, I still think this very good book for beginners as it covers most frequently used elements in iOS development and provides gentle introduction to Objective-C based development.

I would suggest to a friend. Definitely.

Product page:

O’Reilly (print): Programming iOS 6
O’Reilly (e-book): Programming iOS 6
Amazon (print): Programming iOS 6
Amazon (e-book): Programming iOS 6
Safari Books Online: Programming iOS 6

PEM to P12 and P12 to PEM and PEM to JKS and P12 to JKS

PEM to P12

openssl pkcs12 -export -in usercert.pem -inkey userkey.pem -out mycert.p12



P12 to PEM

openssl pkcs12 -nocerts -in mycert.p12 -out userkey.pem
openssl pkcs12 -clcerts -nokeys -in mycert.p12 -out usercert.pem
chmod 0400 userkey.pem
chmod 0600 usercert.pem



PEM to JKS

keytool -import -file userkey.pem -keystore keystore.jks \
-storepass _store_password_comes_here_



P12 to JKS

keytool -v -importkeystore -srckeystore mycert.p12 \
-srcstoretype PKCS12 -destkeystore truststore.jks -deststoretype JKS

Designing Games – A Guide to Engineering Experiences by Tynan Sylvester

bkt_designing_games

Summary: broadly covering the topic, however, sometimes too shallow

This book is not about how to implement the game, or how to make graphics, or which software to use. This book covers topics that have to be addressed prior to any development starts at all. Designing Games is devoted to the topic of game mechanics development. It discusses ideas that are behind the scene but at the same time make the play worth spending the time on it.

Whenever you play the game you can tell whether it is a good game, that keeps you coming back to play again and again or is it the kind of game that makes you bored after few minutes spent playing it.

Sylvester goes through various ingredients that make up the game. He discusses the mechanics idea, the way games influence our emotions, how can we try to stimulate the emotions, how the game flow make players playing the game, what are the forces behind decisions and how to stimulate player’s action. At the end you get lots of different ideas and topics covered here that are important during game development process. He also tells how important it is to be aware of what players may do with the game mechanics if you have developed it for ideal players. I particularly enjoyed the quote – “a multiplayer design needs to be robust enough to handle the constant low-grade chaos caused by players dropping out, griefing, missing key skills, or deciding to play wrong”.

Even though the topic is really interesting there are few flaws in the book. First of all, I couldn’t get into the flow while reading it. I don’t know why. I simply couldn’t. But his statement is purely subjective. On the other hand, there are few issues that made me fell uncomfortable while I was trying to fully get into the topics. First of all, I felt that book covers everything too shallow. I would rather read more critical analysis of the topic, than the praise of good game design. Another issue is terminology. There are lots of terms used throughout the book but for me it is not clear whether these terms are the jargon of the industry or whether they are simply some definitions and terms created by the author. The last thing that was putting me of while reading were references. You get the list of recommended books at the end which contains brief summary of what you can find inside each book, however, throughout the text you have no references at all. This lefts you with no way of quick finding the source of particular information or idea.

Product page:

O’Reilly (print): Designing Games
O’Reilly (e-book): Designing Games
Amazon (print): Designing games
Amazon (e-book): Designing games
Safari Books Online: Designing games

GDB – redirecting input and output streams

Sometimes, the easiest solutions are the best :) If you want to redirect input/output in gdb session it is as simple as that:

(gdb) run < input_stream_file > output_stream_file

Bash/C like gg status

This is quite silly application that I wrote for fun some time ago. It can be regarded as cryptic one. Just put following lines into ‘program.c’ file and you can enjoy running it as described below:

echo =1/*"beat that ;)" | tail -c13
#*/;main(){printf("beat that ;)\n");}
shell>gcc -o program program.c
shell>./program
beat that ;)
shell>bash program.c
beat that ;)

As you can see it runs from both: bash interpreter and C compiler

Enjoy!

Safari OS X 6.0 – how to view the page source

At some point Apple decided to remove source view of the page within Safari. At least, my default installation in Mountain Lion doesn’t allow to show Page Content directly from the page/menu level.

If you want to see page source, you have to enable development menu (Preferences -> Advanced)


show_develop

Then, you will be able to use Development features implemented within Safari


develop_menu

Snagit – there are no tools inside Tools tab

Recently, I have found that my Snagit installation doesn’t contain tools that were available just after installing it. I don’t know what exactly have I done to make them disappear, however, I wanted them back. If you can’t find tools in the Snagit (take a look below)

snag_1

You have to simply restore defaults. Just right-click inside the Tools area:

Screen Shot 2013-03-07 at 10.29.23 AM

And that’s it.

Use and manipulate tcsh shell variables for fun and profit

There is a really cool tcsh related tutorial at IBM’s pages:

http://www.ibm.com/developerworks/aix/library/au-tcsh/

Definitely worth reading!

View Updating and Relational Theory by C.J. Date

bkt_view_updating_relational_theory

Summary: Right explanation of complex things

This is yet another book from C.J. Date on the relational theory. This time, C.J. takes you on the journey of View updates. The topic is controversial as this is not that obvious whether it is possible to perform view updates or not. C.J. approaches the topic from the relational theory point of view. That means, you will not find any SQL here. Some time ago while I was reading SQL and Relational Theory I claimed that Tutorial D language introduced by C.J. was an unnecessary element. In here, however, I think it serves it’s purpose very well. Thanks to the specifics of Tutorial D, topics are easier to track by reader.

When it comes to the style of the book it’s rather academic one. It means you will find here rather formal language, quite a lot of definitions and mathematically ascetic way of describing concepts presented in the book. I’d suggest this book to people who are experienced with relational theory (it’s too tough for beginners) and for SQL experts who are looking for relational based explanation of problems that are currently not solved in SQL based databases.

I think this book is worth reading but you should be warned it is not an easy and pleasant read. It’s rather demanding position in the field of database. However, if you are ready for that, go for it. Do not hesitate.

Product page: http://shop.oreilly.com/product/0636920028437.do

Amazon (in Books): View Updating and Relational Theory
Amazon (Kindle): View Updating and Relational Theory
Safari Books Online: http://my.safaribooksonline.com/9781449357832

If you haven’t read about relational model before, please note you need to know it prior to reading this book! There is a book that covers this topic quite well: SQL and Relational Theory, 2nd Edition. There is also very good video material here: C.J. Date’s SQL and Relational Theory Master Class

Note! Books mentioned above are relational model oriented. It means you will not learn SQL that is usually applied in commercial products. Rather than that you will learn the basis of all that.

Note2! You can find my review of SQL and Relational Theory, 2nd Edition here http://www.owsiak.org/?p=1009

←Older