Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Submission + - Book Review for "R Graphs Cookbook" (

RickJWagner writes: "Once upon a time, I thought communication was one of my strong suits. Alas, a few years into my programming career I realized I'm more of the heads-down codeslinging type, not one of the schmoozing managerial types. So when I have a point to make, I really like to have my data ready to do the talking for me. In that capacity, this book is a very good weapon to have in the arsenal.

Right away, you should realize this is not a book that teaches R. R (an excellent open source statistical language) is a great tool for any technician. I've used it to analyze logs, find performance bottlenecks, and make sense of mountains of nearly unrecognizable data. But this book doesn't teach R, it teaches R graphing.

It turns out R has excellent graphing capabilities. You can draw scatter plots, line plots, pie graphs, bar charts, histograms, box and whisker plots, heat maps, contour maps and 'regular' maps. These are all good for demonstrating data in different ways, and the book lightly explains which graph will help you illustrate which point.

If you're getting a little interested, you'll also want to know that all this graphing can be scripted and scheduled. So you can get data-driven reports on a schedule, easily accomplished once you know how to write the graphing scripts (which are then scheduled using cron or a similar facility). One small caveat: To prepare your data for presentation, I think it's usually necessary to partner R with another language that's better for text extracting and manipulation. I prefer Python for this task, you might like another language.

The book is exceptionally easy to read and work with. This doesn't mean it's simplistic, though. Anyone who's tangled with R's graphing without a good example will testify that figuring out the various functions and arguments necessary to wrangle a descriptive graph can be really difficult. This book gives you the kind of graphs you need, with the bells and whistles you're going to want, in a series of snippets you can run immediately.

The book is written in Packt's 'Recipe' format. In a nutshell, this means that it's a series of how-to sections worded in a templated form. There are headings for sections that inform you what you're going to accomplish, how it's done, and why it worked. You quickly realize it's a repetitive format, but it serves to make the book an excellent resource for quick reference.

Another really nice feature of the book is the downloadable source code and matching data. Knowing the data is half the battle, really. The specific formulas given are certainly useful, but without knowing how the underlying data is formatted you really wouldn't get nearly the practical value. For that reason, I urge anyone using this book to be sure they examine the underlying data for at least the first few formulas. After that, it'll be automatic, you'll know you want to look at that data when you're trying to master some graph type. Then when you go to make your own data ready for graphing, you reach for that secondary language like Python, extract the fields you want in a way similar to your example data set, and presto-- you've got the graph you want.

The book starts out with a first chapter that introduces the kinds of graphs you'll be able to produce and situations where each type is most useful. The next chapters, up until the final one, are in-depth sections on each of the graph types. Maps are treated to a different chapter than pie graphs, for instance. The final chapter covers putting final touches on your graphs, including saving them in different formats (PDF, PNG, JPEG, etc.) and niceties like adding scientific notations, mathematical symbols, etc.

The book states that the target audience is experienced R programmers. I really don't think that's necessary, though. There is an obligatory R installation section, and I think that a reasonably competent programmer with Google at his disposal could get off the ground (for graphing purposes) with this book and a little bumbling. If you already know R, then you needn't worry at all, there is nothing here that will look foreign to you.

If I could change one thing about the book, I'd want a comprehensive index of all the functions and arguments that augment the basic core functions that produce the example graphs. These functions and arguments tweak the basic function in ways that make them much more appealing than what the basic function alone can provide. But the book isn't able to show each and every combination with each graphing function, so it's up to the reader to figure out how to pick some of the options from one recipe and apply it to another. It's not difficult to do, but having an index to help you find the options you want would make this process easier.

Final grade: 8 out of 10.

The book can be found here:


Comment Re:OR (Score 1) 138

"Knowing this, it might be cheaper for an HMO to enroll them in an exercise program" OR DROP THEIR COVERAGE!

They're a network of doctors and specialists, not an insurer - so this is completely irrelevant to the company sponsoring this. All they can do with the results (and they'll be the one that gets the algorithm, and it's using their data) is use it to tell their docs which of their patients need more (or different) help.

Comment Re:Common View, Common Error (Score 1) 216

If you can find a way to reduce bid-ask spreads without this kind of stuff, then I'll agree. Until then, I can't join the chorus of detractors. ...
Unless you're pining for the days when you called your broker, paid him a percentage of the trade, and he placed your order in a market with a huge spread then you should be thanking the liquidity providers, not bashing them.

You just answered your own question - the reason for the high bid-ask spreads in the old days was because of how the industry was structured: old-boys networks that were the only ones that could place trades, high commissions, plus higher minimum spreads as a percent of price (on average).

Now that we have online trading, commissions can come down, so spreads can decrease. However, they don't have to decrease to nearly zero - automated trading systems that take the difference for themselves as profit aren't benefiting anyone. Placing trades in random order at one second intervals would get rid of the HFT madness, whilst still maintaining liquidity (and then the liquidity reflects people who really want to trade in the stock - not algorithms gaming the system).

Comment Re:Original Rationale (Score 2, Interesting) 179

By the way, look over his web site for the other work he's done: two really nice Open Hardware projects - a PBX and a mesh telephony device, an Open Source echo canceler for digital telephony, used in Asterisk and elsewhere, and his own electric car conversion.

I've got one of his little ip01 telephony boxes, and it is quite fantastic - a tiny, cheap, fanless, (embedded) Linux computer with plenty of memory and CPU grunt, and of course telephony hardware on board. It also has a package manager, with a quite a few pieces of software available, and regular firmware updates. It's much more powerful than the various Linux-based consumer routers that are available - it's a great option if you're looking for a small Linux server to run Asterisk, a little web site, DNS server, SSH, etc...

(I'm not affiliate with David or Rowetel in any way - just a happy customer, who is in awe of the amazing things this guy has achieved in such a wide variety of areas).

Comment Re:if that's true... (Score 1) 272

If that's true, then why is everybody I know of who plays WoW or other similar games an overweight unemployed loser?

Success at WoW depends partly on having plenty of time (which unemployed people will have), and requires lots of time sitting in front of a PC (which may mean less time exercising, leading to weight gain).

So it seems quite possible that being overweight and unemployed is correlated with playing WoW - but if so, I would expect the causation is in the opposite direction to what you imply, and does not disprove the assertion that managing a guild can help your people management skills.

Comment TUCOWS (Score 1) 272

chief executive of domain name provider Tucows

How things change. When I see "Tucows", I still think of "The Ultimate Collection of Winsock Software". But then they started listing software that didn't use winsock... and then people stopped using the term "winsock" at all... and then they created the OpenSRS domain registration service... and now they are known as "domain name provider Tucows".

Comment Re:Fuck China (Score 1) 120

I'm sure the people living in China know all about this recent activity and are testament to the fact that... oh wait, no they don't, they have no idea what is going on, and there is no legal avenue to find out.

Why would they have no idea what's going on? They can read Slashdot just like you can, and therefore can find out about this from the same source as you have. There are also an enormous number of Chinese-language blogs with similar content.

China's firewall is, in practice (in my experience) fairly limited, and fairly random. None of the sites I read day to day were blocked anywhere I went in China, except for blogs (although other blogging sites I read, such as Wordpress, were not blocked). I found people in China to be very well informed (at least, the folks in the cities - the 800m peasants in China of course don't in general have access to the internet, because they can't afford it).


Germany Warns Against Using Firefox 509

jayme0227 writes "Due to the recent exploit in Firefox, Germany has warned against its use. This comes a couple months after Germany advised against using IE. Perhaps we should start taking odds as to which browser will be next." Note: the warning (from the Federal Office for Information Security) is provisional, and should be rendered moot by the release later this month of 3.6.2.

Slashdot Top Deals

I don't want to be young again, I just don't want to get any older.