Tuesday, December 31, 2019

Book Review: The Name of the Wind by Patrick Rothfuss

I've read The Name of the Wind several times already and enjoy it immensely. However, at work several of my colleagues have been reading it or chatting about it, so I figured I'd remind myself of the story and, since I never wrote a review here since my reading predated my blog, this is also a good opportunity to write up my thoughts on it.
My name is Kvothe.  
I have stolen princesses back from sleeping barrow kings. I burned down the town of Trebon. I have spent the night with Felurian and left with both my sanity and my life. I was expelled from the University at a younger age than most people are allowed in. I tread paths by moonlight that others fear to speak of during day. I have talked to Gods, loved women, and written songs that make the minstrels weep. 
You may have heard of me.
So begins a tale unequaled in fantasy literature--the story of a hero told in his own voice. It is a tale of sorrow, a tale of survival, a tale of one man's search for meaning in his universe, and how that search, and the indomitable will that drove it, gave birth to a legend.

Read on for my spoiler-free review.

Sunday, October 20, 2019

Book Review: Seven Blades in Black by Sam Sykes

Seven Blades in Black is Sam Sykes latest book and apparently the first of a new series. Sykes is quickly becoming one of my favorite authors with his witty twitter and his gripping books that twist together epic fantasy with gritty horror. Here's the Goodreads blurb for Seven Blades in Black:

Among humans, none have power like mages. And among mages, none have will like Sal the Cacophony. Once revered, now vagrant, she walks a wasteland scarred by generations of magical warfare. The Scar, a land torn between powerful empires, is where rogue mages go to disappear, disgraced soldiers go to die and Sal went with a blade, a gun and a list of names she intended to use both on. But vengeance is a flame swift extinguished. Betrayed by those she trusted most, her magic torn from her and awaiting execution, Sal the Cacophony has one last tale to tell before they take her head. All she has left is her name, her story and the weapon she used to carve both.


Vengeance is its own reward.

Read on for my spoiler-free review.

Sunday, July 14, 2019

Book Review: Seveneves by Neal Stephenson

I can't remember when or why I picked up Seveneves by Neal Stephenson. It was published back in 2015 and I've read and enjoyed some of his other works, but by the time I started reading this I had forgotten the details on what Seveneves was about. Nevertheless, it ended up being an incredible book with so many interesting details. I went back and looked at the blurb and realized how much is promised in it:
What would happen if the world were ending?
A catastrophic event renders the earth a ticking time bomb. In a feverish race against the inevitable, nations around the globe band together to devise an ambitious plan to ensure the survival of humanity far beyond our atmosphere, in outer space.
But the complexities and unpredictability of human nature coupled with unforeseen challenges and dangers threaten the intrepid pioneers, until only a handful of survivors remain . . .
Five thousand years later, their progeny—seven distinct races now three billion strong—embark on yet another audacious journey into the unknown . . . to an alien world utterly transformed by cataclysm and time: Earth.
A writer of dazzling genius and imaginative vision, Neal Stephenson combines science, philosophy, technology, psychology, and literature in a magnificent work of speculative fiction that offers a portrait of a future that is both extraordinary and eerily recognizable. As he did in Anathem, Cryptonomicon, the Baroque Cycle, and Reamde, Stephenson explores some of our biggest ideas and perplexing challenges in a breathtaking saga that is daring, engrossing, and altogether brilliant.
Below follows my review for this book with only minor spoilers (that are also in the blurb above).

Sunday, July 7, 2019

Data Science: MongoDB Sky Searches with Geospatial Queries

This is the fourth and, for now, final set of posts in my tutorial on using MongoDB No-SQL databases for astronomical work. We've created a database of Brown Dwarf objects making use of Python 3.7's Dataclasses, we've also stored header metadata for a variety of FITS files, and we've written functions to perform cone searches using HEALPix. Today, we're looking again at how to query the sky, but this time using MongoDB's built-in geospatial's functionality. As before, I provide a Jupyter notebook where those interested can follow along.

Sunday, June 16, 2019

Data Science: MongoDB Sky Searches with HEALPix

This is the third blog post in a series about utilizing MongoDB NoSQL databases with astronomical data. Prior posts introduced how to store astronomical objects and how to store FITS header metadata. On today's post, we'll visit one of the most common things we do in astronomy- the cone search. In other words, how to do you search your database for objects in the sky that are located close to your input coordinates. Today we'll be tackling that problem "from scratch" utilizing HEALPix rather than any built-in functionality. As before, I provide a Jupyter notebook in my GitHub repo for those who may want more details and to run it on their own.

Saturday, June 1, 2019

Data Science: Astronomy FITS Headers in MongoDB

This is the second post I have about using MongoDB NoSQL databases with astronomical data. If you'd like a refresher about what that means, check out my first post, where I describe how to ingest a custom BrownDwarf class object into these type of databases. Today, we're looking at a more general problem- metadata. Metadata is the information that describes the how, when, where of the data itself. For example, which telescope took the data, at what time of night, for how long, with what filter, etc etc. A lot of this information is encapsulated in the data files itself and, currently, the most commonly used format in astronomy is the FITS file.

In this post, we'll have a look at how we can extract the metadata from a FITS file and load it into our NoSQL database. As before, I provide a Jupyter notebook if you'd like to run the code yourself.

Saturday, May 18, 2019

Data Science: Python Dataclasses and MongoDB

Over the past few weeks, I've been playing a bit with some NoSQL databases, in particular, with MongoDB. This is one particular type of database known as a document-store database and it works primarily by saving JSON formatted 'documents'. While exploring this technology and working on some Python code, I realized how easy it is to convert a standard Python class into a dictionary and how dictionaries readily translate into JSON. With this knowledge in hand, a light-bulb went off in my head as I realized I could make use of the new dataclasses implemented as part of Python 3.7 and quickly create a working database with minimal code.

In this post, I'll describe some of the ideas I had in mind while working through this and, if you want to try this on your own, I can point you to this Jupyter notebook where I work out this example.

Sunday, April 21, 2019

Book Review: Children of Earth and Sky by Guy Gavriel Kay

As a fan of Guy Gavriel Kay, I had my eye on Children of Earth and Sky for some time. In fact, my own game-play sessions of the Europa Universalis IV video game, which starts in 1444, had primed me on this period of world history and further fueled my curiosity of this book. Children of Earth and Sky is set roughly 20 years after the fall of the equivalent of Constantinople (in 1453) so I was very intrigued by the setting and eventually picked it up.

Here's the Goodreads blurb on the book:
The bestselling author of the ground breaking novels Under Heaven and River of Stars, Guy Gavriel Kay is back with a new novel, Children of Earth and Sky, set in a world inspired by the conflicts and dramas of Renaissance Europe. Against this tumultuous backdrop the lives of men and women unfold on the borderlands—where empires and faiths collide. From the small coastal town of Senjan, notorious for its pirates, a young woman sets out to find vengeance for her lost family. That same spring, from the wealthy city-state of Seressa, famous for its canals and lagoon, come two very different people: a young artist traveling to the dangerous east to paint the grand khalif at his request—and possibly to do more—and a fiercely intelligent, angry woman, posing as a doctor’s wife, but sent by Seressa as a spy. The trading ship that carries them is commanded by the accomplished younger son of a merchant family, ambivalent about the life he’s been born to live. And farther east a boy trains to become a soldier in the elite infantry of the khalif—to win glory in the war everyone knows is coming. As these lives entwine, their fates—and those of many others—will hang in the balance, when the khalif sends out his massive army to take the great fortress that is the gateway to the western world...

Read on for my spoiler-free review.

Sunday, February 24, 2019

Book Review: The Consuming Fire by John Scalzi

The Consuming Fire is the second book in The Interdependency series and the sequel to John Scalzi's The Collapsing Empire and continues the story were it left off. I found the first book quite good so once this one came out I made a point to grab it and check it out. My impressions of this sequel are somewhat different from the first, as I'll detail in my review below. So, without further ado, read on to check out my spoiler-free review.

Friday, January 25, 2019

Book Review: God's Last Breath by Sam Sykes

This is the final book in the Bring Down Heaven series by Sam Sykes. This is quite an epic conclusion to what is an exciting trilogy consisting of The City Stained Red, The Mortal Tally, and God's Last Breath. I started reading this book after Sykes' clever marketing strategy on twitter. Even if you only casually follow him, you realize he is a funny character and you end up genuinely curious about his books. It worked and it was worth it; this is some of the best fantasy I've read in a while.

So without further ado, let's get on with the review. As always, I try to avoid spoilers for this particular book, but spoilers for prior books in the series may be unavoidable.