Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror

Submission Summary: 0 pending, 108 declined, 67 accepted (175 total, 38.29% accepted)

×

Submission + - What is the best way to build a virtual team?

stoolpigeon writes: "The department I work in is growing and including new members that live quite far apart. Right now most people are in the same office but new members are in Singapore and South Africa, with more coming from other places. I would be interested in Slashdotters recommendations for software, practices, services and anything else that can help build strong virtual teams."
KDE

Submission + - SPAM: digiKam 1.0 released

stoolpigeon writes: "KDE photo management software digiKam announced the release of version 1.0 today. This new release includes 30 new features and fixes for 485 bugs since the last release; version 0.10.0 back in March of this year. Notable new features include a liquid rescale tool, a new batch queue manager and OpenStreetMap support in Geolocation panels. digiKam is also available for MS Windows via the KDE on Windows project."
Link to Original Source
Book Reviews

Submission + - SPAM: Python Essential Reference 4th ed.

stoolpigeon writes: "It has been ten years since David Beazley wrote the first edition of Python Essential Reference. The book has proven itself as a valuable resource to Python developers and has been kept current over those ten years, with the fourth edition coming at an interesting time for Python. Python 3 was a major release that broke backwards compatibility. Python 3 has been around for a year now. That said, the current download page at the official Python site states, "If you don't know which version to use, start with Python 2.6.4; more existing third party software is compatible with Python 2 than Python 3 right now." Beazley in keeping with the pragmatic roots of a reference that sticks to what is 'essential' has removed the coverage on features from 2 that were removed from 3. At the same time, the primary focus for new features that came with 3 is limited to those that have been back-ported to 2. This approach, born out of a desire to keep the reference relevant, provides a blended approach that is above all else practical.

The end result of that choice is a reference document consisting of those parts of Python that are shared between versions 2 and 3. This is a significant portion of the language and I think this approach is really what will give this reference more traction than many of the other guides that focus purely on 3. I think that those are valuable and over time the balance will shift but as of right now, for a little while to come, this book takes the most realistic approach. That feels very fuzzy, but I have no idea how long it will be until Python 3 truly is the dominant version and Python 2 is truly put to bed.

If I had to guess how Beazley's Python Essential Reference has held in there over the years, the key would be that there is a lot of what a developer needs and very little of what she doesn't need. There is a twenty-four page tutorial introduction, but this is not a guide on how to program or how to use Python for beginners. An experienced programmer could probably use this reference to shift to Python as a new language, but someone completely new to writing code would probably not want to start here. A quick look at the table of contents shows that an explanation of the language itself is covered in under 200 pages. Extending and embedding Python also get their own section, but close to 400 pages is given to the Python library.

An inevitable question is what one will gain with this reference over the online documentation. A good example to see how things vary is to look at chapter nineteen, Operating System Services and the online documentation for Generic Operating System Services. The online documentation is very thorough, and covers each piece of the library starting with os and io, building from there. While every facet is documented much of it is rather brief. For example section 16.2.3. Raw File I/O is a very straightforward listing of the very low level functionality available via io.FileIO. In contrast, looking at the 3.1.1 Docs for Raw IO shows that parameters for FileIO changed with that version. Looking to the documentation for 2.7a1 Raw File I/O shows that these changes are being back-ported to Python 2.

In Python Essential Reference none of this hunting down changes and checking to see if they are coming to 2 are necessary. Beazley shows them in his documentation. This is the strength of his choice on how to handle these types of situations. On top of that, Beazley provides more than the online documents by including four paragraphs of additional information on Raw I/O and when its use is appropriate. This added content is probably available googling around for it, but then I have to take the time to check dates on posts to see if things are still current and in general just hope that things are accurate. I have never read a technical book that was completely error free, and there are probably at the very least some typos in Python Essential Reference, though I haven't caught any of them on my read through or use of the book yet. But the important thing is that I don't expect the book to be perfect, rather I value it for being a known quantity. I am aware of just when the material was compiled, who put it together and I have it all in one place.errno symbols is not exhaustive and oddly enough is not ordered alphabetically. Beazley provides two lists for errno symbols. They are provided in alphabetical order, have a description and are grouped as POSIX error codes and Windows error codes. A quick glance at these tables in a skimming of the book might lead one to believe that this is just a simple quick grab from already available sources, but that isn't the case. There is real value added even here.

The index is solid. It would seem that one should be able to take this for granted with a technical reference but I've seen some sad exceptions. Between the thorough index and the detailed table of contents I've never had to spend more than a few seconds looking for what I need. This is the result of those tools as well as the fact that this is not an exhaustive reference. After initially reading through the book for this review, I've taken some time just to use it day to day, as I doubt many will be reading it from front to back. I don't use Python professionally. I'm purely a hobbyist when it comes to programming, but I've found that if I want to get the most out of the time I do have to play with personal projects, I want this book close. I'm not cranking out code that fast to begin with and so I need all the help I can get. I've found that Beazley seems to have hit that sweet spot where he gives enough information to get me where I need to be without bogging down in too many details or the things that I just don't need to know. I imagine this proper balance of information is due to Beazley's extensive experience with Python and that of Noah Gift the technical editor for the book.

I've mentioned repeatedly that I approve of how the shift between Python 2 and 3 has been handled. Beazley hasn't completely integrated everything and left some of the unique new features of 3 out in the cold. There is an appendix that deals specifically with Python 3. It is short but does have some value. New features, common pitfalls for those making the move from 2 to 3 and how to run both at the same time in a single environment are covered. This is helpful and keeps my desk a little neater, though I think if I were going to be spending extensive time working with Python 3 then I would probably want to have another reference on hand.

If you are a week-end hacker like me, or someone that is writing Python on the clock, I think that this compact reference is very useful. I don't have any trouble running across huge technical books that do come in handy for any project that requires something heavy. I also see a lot of little books that seem to be quickly produced summaries of what is already out there, spending most of their short content on fluff. Every so often though, someone hits that sweet spot of concise usefulness. Beazley did this with Python Essential Reference and this new edition continues that history in strong fashion."

Link to Original Source
Book Reviews

Submission + - SPAM: Mobile Design and Development

stoolpigeon writes: "It is pretty obvious to anyone paying attention that the growing prevalence of mobile technologies is something that cannot be ignored. A special report in the Economist on telecoms in emerging markets wrapped up with the prediction, "...at current rates of growth it seems likely that within five years, and certainly within ten, everyone in the world who wants a mobile phone will probably have one. 3G networks capable of broadband speeds will be widespread even in developing countries, and even faster 4G networks will be spreading rapidly in some places." It does not appear that it will be long before Smart Phones are just normal phones and anyone who wants to be, will be connected to a world wide mobile network. Any business or developer that wants to reach groups of significant size really needs to be prepared via mobile platforms. Brian Fling has been helping others operate in this space for close to a decade and is very familiar with the lay of the land. He sees the opportunities and has experienced the pitfalls and frustrations as well. His new book, Mobile Design and Development brings some of that experience and knowledge to the mobile neophyte, looking for an overview of just how to get in the game.

Mobile Design and Development is not a long book and doesn't delve deeply into the specifics of any one platform or technology. This is an overview that would be of value to anyone that will be managing a project being built for mobile, or for technical folks that are new to mobile. This will give the manager and leader an appreciation for the challenges and good guidance on realistic scope. For the person actually implementing the technology there is quite a bit of good information here that will be of value on the front end for making choices in direction and platform. There is also a section on building iPhone web apps ( applicable to any phone with similar capabilities running a WebKit based browser ). But this is not primarily a 'how to code' or reference book for any one mobile technology. This isn't going to be the only resource a developer will want but could prove invaluable in saving time and effort wandering in what can be a rather complicated set of choices. The book even deals with making money on mobile platforms and so Fling very succinctly gives great coverage to most all that one would need to get up and running. I would think the audience that would get the most from Mobile Design and Development is the small team or individual that want to take a stab at the mobile market and have a high degree of flexibility and freedom. This book would be an invaluable resource in sorting through all the possibilities. Whereas someone working in a large corporation that wont give them the freedom to choose their platform, or someone who has already made all their platform choices would probably do well just to dig into something more specific to their chosen technology. That said, if the choice was arbitrary and if isn't too late to change, working through the first half of this book may give one solid reason to reconsider.

In his preface Fling states that he has three principles that he would like to impart.
  • You need to know the different facets of the mobile medium.
  • You need to know how to leverage mobile technologies to address context.
  • You need to know how to leverage the right mobile technology for the need.

The book is in two sections, the first being an overview of just all what falls under the "mobile" umbrella and provides a few ways of organizing those pieces. It works to provide information applicable to the first two principles. The second section of the book focuses on the third principle and goes mostly deeply into mobile web applications, which Fling sees as the answer to the platform and carrier fragmentation present in other solutions. The question of web apps vs Native apps has created some interesting discussion and Fling falls into the 'leaning towards web apps' camp, though he is pragmatic throughout this book.

That pragmatism is extremely attractive and a large part of what makes this book worthwhile. It is obvious while reading that Fling doesn't just talk about how things should be done, but he follows his own advice in his writing and presents what he believes will make for the best solutions. If there is a place where idealism will lead to the quick and ugly death of an idea it would be the mobile space. Compromise isn't just something that may make sense at times, it is often forced right into the platform by carriers or others. Fling doesn't back away from this and acknowledges when there are multiple routes, none standing out as ideal. He is very up front in sections where his technical reviewers had other opinions and presenting other options that they felt might be better. Fling tries to give succinct coverage to what he sees as the better possible options and leaves the choices to the reader, now armed with enough information to dig deeper.

Fling's clarity and up front appraisal of the considerations in the mobile space lead to him describing one of the most prominent limitations of his own book. Besides the obvious that it can't go into great depth on every mobile technology there is the fact that this information has a limited shelf life. In the fifth chapter, Developing a Mobile Strategy, Fling gives a set of seven rules that he believes should be followed in the process of creating a strategy. The second rule is, Believe What You See, Not What You Read and the following chapter contains the admonition, "Don't trust any report, fact, or figure that is more than a year or two old. It is most likely wrong. For example, the majority of assumptions about mobile development pre-iPhone are no longer applicable." According to Fling, barring a revision this book has a shelf life of roughly a year or two. After that one should really be looking to more recent resources. On the other hand, anyone even thinking about jumping into the fray, should be reading this right now.

This limitation is the only thing that causes me to not rate the book as a 'classic' and it is not really the fault of the author. It is just a reflection of the rapid rate of change taking place in the world it describes. My only other problem with the book is small, though at times a bit annoying. The book is black and white, without any color illustrations. This in itself isn't a problem but the shades chosen for pie charts in more than one place are not sufficiently different to tell where one edge stops and another starts. Fling describes the charts, they are never floating alone without text that addresses them, so the reader doesn't lose information, just the opportunity to see it displayed in a visual format. I'm not a person with great visual design skills, so if I noticed I'm sure others involved in the production of the book have as well and hopefully later printings corrected this issue.

The first section, as I've described, is a high level overview of the mobile world. This covers what Fling thinks of as all the layers of the mobile ecosystem. This means everything from carriers to hardware manufacturers to operating systems and more. I've spent quite a bit of time over the last year reading up on much of what Fling covers here, but there were still pieces of new information that I found. Fling takes a global view and doesn't lean towards the situation as it is presented in any single geographical area. He is also dealing with all types of phones and platforms. While he obviously spends a lot of time, especially in the second section, dealing with more capable smart phones, he is still dealing throughout the book with less capable devices and systems. This is where Fling's experience really shines. He has navigated what it means to try and develop for less capable phones, the realistic challenges one faces trying to get onto more hardware and more networks. It is at times daunting, but I for one would rather walk into something knowing the reality rather than being uninformed.

Fling hits all the highlights from what is available to suggestions on the whole life cycle of a mobile product including prototyping, testing and adapting to various types of phones and platforms. The second section, dealing with more specifics on putting together a Web App will throw a bone to the developer that wants to see some code. While it is mostly mark-up Fling does spend time dealing with some specifics of implementing a WebKit compatible solution. He states that this will work on a few modern phones, though a few subsections do carry warnings that they are iPhone specific. Fling covers the use of XHTML, XHTML-MP, CSS, JavaScript, and other applicable web technology. This is probably where the management types will start to skim over things. I do think though it still serves the purpose of giving an idea of what is possible and when it is appropriate to choose a pure web application over a native application.

I think that Fling does an excellent job showing that it is important to create mobile applications that are designed purely with mobile users in mind. The last chapter is only a couple pages long and is the only place that Fling devotes purely to prognosticating. The rest of the book is practical and focused purely on what will work right now. In his closing thoughts, Fling essentially invites the reader to be a part of bringing about the future of mobile. I think this is very fitting as he has just given his readers what they need to set out on that path."

Link to Original Source

Submission + - SPAM: Android 2.0 Released

stoolpigeon writes: "Android 2.0 is now available from Google. This puts to bed concerns about Google not releasing the sdk or perhaps being in some kind of exclusivity deal with Verizon around 2.0. The release notes give a nice overview of what is there. Those who already have the SDK can grab the updated tools as SDK components, everyone else will pick up everything when downloading the new SDK."
Link to Original Source
Games

Submission + - SPAM: iWarrior: an African iPhone Game

stoolpigeon writes: "White African has a review up for iWarrior, a new game for the iPhone from Leti Games. The review mentions that this may be the first game fully developed by a team in Africa. The review also deals with some of the unique issues faced by developers and gamers in Africa. The reviewer finds some issues with the game but views it as a strong start for an emerging market."
Link to Original Source
Book Reviews

Submission + - SPAM: Android Application Development

stoolpigeon writes: "Google's mobile OS Android has received plenty of press. As with a lot of Google products, there was much anticipation before any devices were even available. Now a number of phones are available, with many more coming out world-wide in the near future. Part of the lure of Android is the openness of the platform and the freely available tools for development. The SDK and accompanying Eclipse plug-in give the would be creator of the next great Android application everything they need to make their idea reality. The bar to entry in the official Google Android Marketplace is very low and it doesn't seem to be much of a stretch to predict that the number of developers working on Android is only going to grow. As with any hot technology the number of books will grow as well and O'Reilly's Android Application Development has jumped into the fray, promising to help budding Android developers what they need to get started.

The book begins with a brief introduction to Android followed by detailed instructions on procuring and installing the Android SDK. Space is given to Windows, Linux and Mac. The install is relatively simple on all three platforms, extra information is provided for Ubuntu users but no others distributions. Extra care is taken to help Windows users with items they may not use regularly, such as environmental variables. This is all pretty basic and gives the book very much of a 'for beginners' feel. Before I had the book I had already installed the SDK and Eclipse plug-in on Windows, Ubuntu and Fedora without any issues beyond getting a current version of Eclipse for the Ubuntu machine. The version I already had from the Ubuntu repositories was not able to run the plug-in. It's a short chapter and if someone really struggles with it, they probably should shift their focus from learning to code to learning how to use their platform of choice. This does set the tone though, that this is a book for those who are very new to development.

Chapter two steps the reader through the ever present "Hello World" and gives an overview of the structure of Android applications. Chapter three introduces the example application that will be used for the rest of the book. There is a lot of repetition here on just what directories and files make up the guts of an Android program. I was quickly worried ( the first four chapters are only fifty-six pages in ) that maybe four authors had been too many. The repetition made it feel as if separate work had been combined without enough editing to remove what was redundant. Fortunately this got better, though there was still a strange proclivity to list files while referring to earlier chapters that explained their purpose. This would be helpful to anyone jumping right into the middle of the book, but the index also serves the same purpose and saves space for more valuable content, as opposed to explaining the purpose of AndroidManifest.xml repeatedly.

Once I moved into the fifth chapter, Debugging Android Applications and the following chapters, things got better. The pace picked up and the repetition dropped off for the most part. The book did not become incredibly difficult, trying to be everything to everyone, but did maintain an introductory style. At the same time the example application makes use of many Android features that are likely to be used by developers. How to set up and use tools was covered step by step. This is very nice but did cause some issues for the authors due to the rapid pace of development on Android. A visit to the book's errata page will show that many readers struggled with changes to the SKD tool set that came out very shortly after the book. The authors say that future editions will fix these issues, but this creates a dilemma for that reader needing introductory level materials. They are more dependent upon the book than a more advanced user and so these issues can be very trying. Based on the responses to the errata posts it became trying for the authors as well. This isn't a knock on the book itself but rather a limitation of the delivery method.

Once the reader is digging down into the example application the team approach to writing the book does become an asset. The authors bring a number of skills to the table that closely resemble the players that would be necessary to a team developing a real-world application. The reader is now being pulled into an example that benefits from the knowledge of each and does a good job of exploring the range of options an Android developer has available. This includes core functionality, UI options and how to best take advantage of the platform while at the same time taking performance and user expectations into account. I felt like I was getting something beyond the excellent documentation provided by Google. This is where I felt the book stood strongest.

Working with a single, large example application was a move that probably helped move things along on writing the book and I think it's an interesting approach. The problem is of course, that means that this example must be right. Right for the task and technically correct. Small issues in the code are inevitable but now their impact is book wide. The changes to the platform just made it just that much more difficult to sort out. On the whole I still found this to be a better approach primarily due to the fact that it gives the features highlighted a better sense of context. Stand-alone examples are often good at highlighting technical features but completely ignore the issues necessary to using the feature in a larger piece of code.

I'm a fan of O'Reilly books. Interestingly enough this doesn't mean that I'll gloss over issues with what they produce. The result is actually the inverse, in that I go into all their titles with a high level of expectation with regards to quality on every level. This may mean that though I strive to be neutral when I look at a book, I'm probably a little tougher on O'Reilly titles. This made my rough start with Android Application Development a bit jarring. The repetition and what felt like sloppy editing are not what I expect. I was quickly given a sense that this book may have been rushed to publication a little sooner than it should have been. As I moved deeper into the book, things improved and while I think there were still editorial issues, things did seem to smooth out to some degree.

There is an interesting tension that exists purely do to the nature of print books. I don't like to bring up print versus electronic in reviews as I don't think it is on topic, but here it is unavoidable. The book is aimed at people that need a little more hand holding and help getting going. It does a good job of providing step by step instructions, the problem is that some of those steps have changed. I don't think anything in the code itself needs to be different, but the tools have changed enough that getting the code to run in a development environment against the new SDK is different. That means that portion of the book is no longer of as much value without going to other sources to find the new steps.

That said, warts and all I found this to be a helpful way to get my feet wet with Android. I really look forward to future versions as I think just a little more time and work will move this from my 'good' list to my 'great' list. Making things a little tighter and cleaning up the few typos and errors would certainly make this an 8 instead of an 7, which is really substantial in my mind. I'm no super developer and I need stuff like this, that can take things a little more slowly and make it all clear. I think this guide is great for those of us in that category as long as the reader is o.k. with hopping to external sources for the information they'll need to get the newer tool set working.

Title: Android Application Development
Author: Rick Rogers, John Lombardo, Zigurd Mednieks, Blake Meike
Publisher: O'Reilly Media Inc.
Pages: 332
ISBN: 978-0-596-52147-9
Rating: 7/10
Tagline: Programming with the Google SDK.
Reviewer: JR Peck"
Books

Submission + - SPAM: Learning Ext JS

stoolpigeon writes: "Rich Internet Applications (RIA) have often been associated with some type of sandbox or virtual machine environment to make desktop features available via the web. Many applications though, have left behind the restrictions and demands of those technologies, implementing RIAs as pure web interfaces. One key technology in this area is JavaScript. It's been well documented that working with JavaScript can be problematic across various browsers. In response a number of JavaScript libraries have been created to alleviate the issues in dealing with different browsers, allowing developers to focus on application logic rather than platform concerns. One such library, focused on providing tools for building RIAs is Ext JS. For the aspiring developer looking to use Ext JS, Packt provides a guide to the library in the form of Learning Ext JS

The book is written for people with experience in doing web development. The authors state that a working knowledge of HTML and CSS are important, but experience with JavaScript is not essential. I think that a reader that has not used JavaScript may want to supplement this guide with something that covers the basics of JS. Experienced developers that haven't worked specifically with web programming should have no trouble keeping up. Anyone completely new to the idea of programming, scripting, markup, etc. really will need to take some time to get familiar with those concepts before they dive into this book. The authors do not spend time teaching programming, they are focused purely on realistic applications of Ext JS.

The authors begin by stating that, "Ext is not just another JavaScript library..." and it is understandable that they would feel this way. I am unsure why one wouldn't think so other than a personal preference for the product. That said Ext JS can be used alongside other JS libraries and does provide a lot of features 'out of the box' that make it an attractive choice. The emphasis on RIA widgets and building strong applications is nice as Ext JS is not working to be all things to all developers.

The book is heavy on code and examples but not so much so that it falls into the cook-book style of writing. Learning Ext JS is more of an extended tutorial with ample explanation to help the reader not only understand the code but why certain choices are made. Frederick, Ramsay and Blades have done a good job of working through the examples in a concise manner. While the book is the result of group work, it does not have the feeling of being written by a community. I did not run into an abundance of repetition and topics flowed well. Learning Ext JS also covers installation and integration of the library as well as a very quick survey of tools for development. While short these sections would be extremely important to anyone coming into web development with little experience.

It's a quick read, and doesn't delve extremely deeply into more advanced topics. Rather, a reader new to Ext JS will get a launch that should make the library usable in a practical way and also give them the framework to push deeper. The book was written and published just as Ext JS moved between versions. The new version is backwards compatible with the material in this book and a number of the changes in version three would not have fallen within the scope of this book, so it is still a good place to get started with Ext JS. Those who want to dig deeper will need to look elsewhere.

The brevity of the book wont work for those folks who want to really dig down deep into Ext JS. I on the other hand, wasn't looking for a massive tome to lug around and grind through. I was happy to have a very accessible tool that would get me started quickly and that is what I got. On the other hand I do like to be able to find what I need quickly and nothing is more important to me when learning than a solid index. Unfortunately the only really large ding I have for the book is that the index is weak. It would be a lot worse if the book were larger, so the brevity helps here a bit, but it's still unfortunate. This does make the ebook version a little more attractive. Packt will bundle them at a cost that makes the addition of the electronic copy very attractive. That said, the easy flow does it make it easy to read this book front to back while working the examples. Learning Ext JS just wont be my first choice when I need to quickly check a reference.

I've discussed the shallow coverage, but this does not mean that the book is not useful. The Ext JS library bundles enough functionality into the stock widgets, that decent applications could be written with nothing more. Creating custom widgets is covered and extending existing code as well, but this is later in the book. The material prior to that covers not only the use of the provided widgets but how to tie them together, theme an app and then handling data. This means the reader pretty much has everything in hand to build a stock application. The focus is on dealing with these issues on the client side. The examples do include a small amount of back end code when necessary for the execution of examples. All the examples are available to download from the Packt site and come packaged with all necessary scripts, images, etc.

I've always worked primarily with desktop applications. I've done some work with web applications, but it seems to me that increasingly the tools that I use the most are web based. With technology like Google Gears making those applications available whether I'm connected or not they have become much more attractive. Tools like Ext JS make it much easier for me to transition over to this new way of developing applications. I've found that Learning Ext JS has been a valuable resource in taking what is a great resource and allowing me to get the most out of it more rapidly than I would have otherwise. Reviewer: JR Peck Title: Learning Ext JS Author: Shea Frederick, Colin Ramsay, Steve 'Cutter' Blades Publisher: Packt Publishing Pages: 309 ISBN: 978-1-847195-14-2 Rating: 8/10 Tagline: Build dynamic, desktop-style user interfaces for your data-driven web applications."
Books

Submission + - SPAM: The Magicians

stoolpigeon writes: "The popularity of web site Will It Blend? is indicative of how people enjoy mashing things together. Of course this kind of sharing and combining has been going on in the arts for quite some time. The new Lev Grossman novel, The Magicians asks 'will it blend?' of two rather popular fantasy series, J.K. Rowling's world of Harry Potter and the tales of Narnia from C.S. Lewis. Grossman's thoughts on both are tossed on top and then the author begins to play a symphony across the full range of buttons from stir to liquefy. What comes out is not children's fantasy but at times a rather bitter mix.

Grossman is an author and critic for Time and has written for a number of high profile magazines. He is a talented writer and handles his story telling with skill. His characters have depth and this story takes on a very gritty sense of reality, something that is not often found in fantasy. I was impressed with his writing, yet at the same time I was torn with how I felt about the book. I found it to be compelling and at the same time difficult. It took me a few weeks to process the whole thing and get an idea of why the book impacted me the way that it did. I'm going to lay that all out now, but I have to say that when reviewing fiction I work very hard to avoid discussing plot. In this case, it will be impossible to some extent. I don't think I'm going to give away anything that the promotional material doesn't make pretty obvious, but anyone who wants to go into this book knowing as little as possible should stop reading now.

The protagonist, Quentin Coldwater is a nerd. He's an academic over-achiever living a life of privilege, set on a path of success. He's also extremely unhappy, feeling disconnected from the rest of the world. He struggles with his inability to connect with others and the meaninglessness of life. He has sought out and found some respite in the fantasy world of Fillory. A magical land created and explored in the books of an American author that lived in England. At the start of The Magicians Quentin in on his way to an interview as part of the admissions process for Princeton. But this does not end up as another normal day for Quentin. Rather than his ultimate destination, Princeton, Quentin ends up at Brakebills. Brakebills is a university in upstate New York where students learn magic.

While Hogwarts was not the first literary school of magic, it is the model Grossman has in mind and he is very up front about that fact. The students take part in a magical game called Welters. At one point a team member of Quentin's, Josh, is absent at the start of a match. Quentin hunts him down and the following interaction takes place between the two of them.

Josh stood up. He saluted smartly. "Send me an owl."

"Come on, they're waiting for us. Fogg is freezing his ass off."

"Good for him. Too much ass on that man anyway."

Quentin got Josh out of the library and heading toward the rear of the House, though he was moving slowly with a worrying tendency to lurch into door frames and occasionally into Quentin.

He did an abrupt about-face.

"Hang on," he said. "Gotta get my quidditch costume. I mean uniform. I mean welters."

"We don't have uniforms."

"I know that, " Josh snapped. "I'm drunk, I'm not delusional. I still need my winter coat."

This sliver does a lot to reveal the similarities and differences. Brakebills is very much like Hogwarts in external ways, and completely different in substance. The school is for adults, not children and the life that Grossman portrays is much more in line with reality than fantasy. This is not a book to pick up for a young child. This story contains profanity, sexual content, graphic violence, as well as alcohol and drug abuse. This is where I ran into my first issue with The Magicians. I'll get to that shortly, but first I'd like to finish laying out what the book involves.

Not all of Brakebills is lifted straight from Hogwarts, though I don't think the reader with much experience in reading fantasy will find anything that could really be called new. What there is, as I have mentioned, is very well done. Grossman builds up to moments of palpable tension. He pulls the reader into the life of Quentin and shows real finesse at times. His characters very much come alive, in their brief moments of joy and in their many moments of pain, frustration and loss. Anyone who has felt the hurt of being outside, dealing with the cruelty of others or a general questioning of meaning will be able to relate well to the protagonist.

Eventually school is over and the students graduate. And here is the turn that I think the promotional material makes obvious but some may not want to know about going into reading the book. The second section of the story begins as Quentin and his fellow Brakebills alumni find out that Fillory is real. They immediately prepare to set out on an expedition to the land they've loved since childhood. That Fillory is better spelled N-a-r-n-i-a is just as obvious as the connection to Rowling's work. Quentin and company enter Fillory using magic buttons that take them to an intermediary world of fountains. Jumping into each fountain takes a person to a different world. They have to take care to jump into the correct pool at the base of the fountain that will take them to Fillory. Fillory is a land of talking beasts and magical creatures.

So what sets The Magicians apart from lesser books that lift heavily from other works? Why is The Magicians a strong story while something like Eragon is a weak rip-off? I think it boils down to two elements. First is Grossman's strong writing. Even if this were just a big piece of fan fiction, it would be well written fan fiction. Secondly, this isn't just an homage to the work of others. While Grossman has lifted the settings and externals, the substance is completely different often to the point of taking a position that is completely antithetical to the original work.

My first problem, which I tie to the very adult content is wrapped up in why I read fantasy. I read fantasy on many levels as a form of escape, much like Grossman's character Quentin did. Much of the fantasy I've read is not only fantasy but it is written for children. At the bottom of it all there is no real risk or fear. I read with anticipation, not of an outcome but rather how that outcome will be worked out by the author. There is often death or treachery but it takes on a fairy tale like quality. It does not feel real or cruel but rather cartoonish. Grossman completely jettisons any of this kind of approach. He tackles the safety of these children's tales and eviscerates it. The violence in The Magicians is not cartoonish, it is often cruel even sadistic. There's not much in the way of escapism here. What Quentin finds is that magic doesn't change the basic underlying facts of life, not even traveling to another world does this. This is combined with the fact that much of Grossman's realism includes behavior and speech that isn't something that I would consider normal or appropriate. It may be for others but this isn't a book I would feel comfortable recommending to friends or family.

Then there is my second issue. I've read that Pullman's His Dark Materials trilogy is intended to be a type of anti-Narnia. Well Grossman doesn't just create an alternative world that is contrary to Narnia. He destroys Narnia from the inside. And this caused issues for me in both sections of the book at times. Not because of ideological difficulties with what Grossman puts forward but because it would frequently push me outside the story as it felt like Grossman would move from telling his own story to commenting on the story of another. It isn't that what he has to say about the other stories isn't interesting and that he doesn't bring up intriguing issues and criticisms of both, but rather that it jarred me out of the narrative as the story became more a work of exposition. Something like the flashbacks to History and Moral Philosophy class that fill so much of Starship Troopers . The author shows his hand, that he is more interested in making a point than telling a story.

The fact that a major component of the book is polemic in nature means much of the discussion around the book will not be about plot or setting but rather about the argument the author sets forth. I don't agree with Grossman's premise or conclusions but I do admire how well he states his case throughout the entire book, not only in those portions that might feel a bit preachy. I've read in an interview Grossman did about The Magicians that he feels that Rowling lets her characters solve their problems, rather than resting on divine intervention like the characters of Lewis's works. This is reflected in how he handles the world of each, though I would argue that this is not the case, especially in light of how Rowling's series ended. I think it does explain why he is so much rougher on Lewis.

Anyone looking for a dark story that questions the assumptions and underlying principles of those that are not so dark should really enjoy this book. Any parent that picks it up for their young one because they hear it compared to Harry Potter is in for a rude surprise. Those looking for a fun little escape from the real world wont find it here, though things are so grim at times they may find the real world a bit of a relief after the weight of Grossman's. The Magicians held my attention and I was impressed with Grossman's ability, unfortunately at the same time I was a bit dissapointed with how he used that ability. With something this subjective your mileage may vary, and since release The Magicians has hit number nine on the New York Times best sellers list.

Viking set up a number of web sites to support the release of The Magicians. This is not so much about the book itself but will be of interest to readers and I think is an interesting development for book lovers in general. There are four sites TheMagiciansBook.com is a normal promotional site with information on the book. ChristopherPlover.com brings to life the fictional author of the Fillory books. Brakebills of course has a site, obfuscated just like the school itself. Finally there is Embers Tomb a wealth of Fillory related information. The Fillory and Plover sites come across as very genuine and will probably snag a reader or two into some level of confusion. The Brakebills site is a bit too over the top to be taken seriously but then again, with real news sites quoting The Onion and the occasional uproar I see over humor sites like Objective Ministries there probably will be some who think it is a real school."

Robotics

Submission + - SPAM: Where's Waldo? 1

stoolpigeon writes: "Scientists on Florida's Gulf Coast are trying to find an underwater robot that has mysteriously vanished. The robot from the Mote Marine Laboratory in Sarasota has been missing since Monday. The robot, which cost about $100,000, also was equipped with a detector to find red tide, a toxic algae bloom. The detector was valued at another $30,000. Scientists aren't sure what happened to the robot, which is nicknamed Waldo."
Link to Original Source
Programming

Submission + - SPAM: Hello World!

stoolpigeon writes: "Hitting middle age has been an interesting time. I catch myself thinking about how well kids have it today and sounding a lot like my father. One difference is while my dad was happy to teach me about sports or cars, we never spent any time knocking out code together. I think he did realize that home computers were important and I will always be grateful for the Commodore Vic-20 be brought home one day. It was a substantial purchase for our household. I spent many days copying lines of basic from magazines and saving the results to cassette tapes. In my home today we have a considerably better situation, computing wise. There are usually a couple laptops running as well as the desktop machine upstairs. My kids take for granted what I found to be amazing and new. Still, that's all pretty normal and I'd like to give them an opportunity to go deeper if they are so inclined, just like we give them opportunities to explore other skills and pursuits. With that in mind I brought a copy of Hello World! home a few weeks ago, and the response from my oldest has been surprisingly enthusiastic.

Warren Sande wanted to teach his son Carter about programming but had difficulty finding what he thought was a suitable book to guide the process. At the encouragement of Warren's wife, he and Carter decided to write their own while Carter learned to code. Warren chose Python as the language they would work in and then the two together outlined the book and created the sample applications. As the book moves into more complex territory the sample applications are the kind kids like best. They are games. As soon as my daughter saw that she would get to make her own computer games she immediately asked me if we could start working through the book together. When it has been a while since we've had a chance to crack it open, she reminds me by asking when we will get back to it. I would say that on her end it has been a complete success. It has been a great time for us as father and daughter and educational for us both.

Language choice can be quite a hot topic amongst us geeks. In the preface Warren defends his choice of Python with a bullet list I'll summarize here.
  • Python was created from the start to be easy to learn.
  • Python is free.
  • Python is open source software.
  • Python is not just a 'toy' language.
  • Python is multi-platform.
  • Warren likes Python and thinks others will like it too.

I think the list is pretty solid. The only one I think may not be directly applicable to the case it hand is the FOSS angle. Warren explains that being open means that more can be done with the software and that there is a large set of corresponding code out there freely available. A case could be made that this is also true of more closed languages. The one thing I think that could make this important is if the teacher of the material is interested in not just teaching the technical side of programming but is also interested in communicating the philosophical values of freedom. In light of the amount of closed source software and ignorance in regards to FOSS options I've seen in the public school system where I live, I think this may be more important than some think.

The rest of the reasons though I think make Python an incredibly solid choice, and above all else is the simplicity. My daughter has been able to have fun typing code into IDLE without having to get hung up with a complicated environment. The syntax is clean and simple, there is no compiling, it's very easy to just jump in and start making things happen. I think this is important, the younger the student. I was concerned that nine might be just a touch too young for this undertaking. The book itself does not make any recommendations concerning age. The more I've thought about it, the more I agree with that choice. Children vary so greatly and any number chosen would be rather arbitrary. My nine your old has done well so far, but she is already quite a book worm and leans towards more academic pursuits. An older child may struggle and there may be some that are even younger that would be fine with the material in Hello World! So rather than focus on age I think a parent needs to come at this from a perspective of ability, proclivity and experience.

In the ability area, a child is going to know how to read, work with a mouse, and type things via the keyboard. Of course the mouse is optional strictly speaking but most will probably want to use it. Some math skill would be good as well as the ability to understand the use of variables. The book tackles the necessary material in a kid friendly way but it is not dumbed down. In fact the learning potential here is huge, as one may imagine. The book is formatted with lots of visuals and fly-outs that give information on how computers operate and how programming languages deal with information processing. My daughter and I have already had interesting discussions on subjects like integers and floats. An example that draws a sine wave lead to a great teachable moment about amplitude and wave length. Then there is the constant need for approaching problem solving in a structured manner using logic. I think that taking on programming brings a wide number of benefits.

One of the features, is a little caricature of Carter that is placed throughout the book with observations that the real Carter made as he learned with his dad. These are things that a real kid noticed, and so they are likely to stand out to a child working through this book. For instance in the chapter on "Print Formatting and Strings" Carter says, "I thought the % sign was used for the modulus operator!" The book explains that Python uses context to choose how the % sign is used. There are other little cartoon characters that appear throughout the book drawing attention to important points that need to be remembered. Learning is reinforced through quizzes at the end of the chapters. The chapters are not too long but I've found that my daughter and I have to break them into sections because of her typing speed. I've been tempted at times to move things along by typing for her but I know that she will not get the same benefit from the exercise if we do it that way. I will also let errors slide by at times to allow her the opportunity to look at error messages and find the problems.

As I mentioned the book is billed as being for kids and "other beginners." I'm going to say that the primary focus is rightly on kids, and probably kids who are in grade school or maybe junior high. This is not to say that the examples and information wouldn't be great for anyone brand new to programming. There are even some nuggets for someone who has written some code but is new to Python. I am going to guess though that the average high school student will not be as taken with the cartoons and puns. I'd have loved to have written my own lunar lander game at that age though, so maybe I'm selling this short, or maybe it would be something a teen would be happy to work on away from the eyes of others, so as not to appear childish. (I may take heat for this but even as a teenage geek I was immensely worried about the perceptions of my peer group.) I think an adult that was serious about learning to program, even if they had no prior experience, would do better with heavier material. All that said, I think for children they've really hit the sweet spot and as much as marketers would like it to be so, no book can be everything to everyone.

Things start simple with print statements and loops that took me back to good old days of watching messages scroll endlessly by on display computers at Sears when I was a kid. The move towards games starts even then with text and quickly moves on to leveraging Pygame for games that utilize graphics. I think this is important as it keeps things entertaining while teaching important concepts at the same time. I have to say it is quite a bit fun to sit with my child discussing nested loops and decision trees. By the end of the book examples will have included a simple virtual pet, a downhill skiing game and a lunar lander simulation.

I've discussed a child's ability a bit but I think the last two things I mentioned must be taken into account as well. They are proclivity and experience. I've let my daughter drive the time we spend working on this. Just like the parents who project their sports dreams on their kids, I think there is a possibility to do the same with my love for all things digital. It may even be easier to do so as I view the ability to do some amount of programming to be an important life skill. The thing is I don't want to push her too hard and have her back away from it completely. This fits in with the experience part. We take it as it goes, and if things stop being fun, we will back off. I don't do this with her core disciplines from school like reading and math, but for something that is extra right now I'm not going to push. It would transition from being a joy to being work. That brings up a last and unexpected benefit from Hello World! I'm rediscovering a lot of the fun and excitement that drew me into this industry in the first place."

Slashdot Top Deals

You knew the job was dangerous when you took it, Fred. -- Superchicken

Working...