Follow by Email

Tuesday, April 05, 2016

The Dark Net by Jamie Bartlett



When the internet started, there were no homes connected to it. If you wanted to use email, and no one who didn’t already have email even knew what email was, you had to have an account on a computer at a research center like MIT. If you did, you could send email to others who had an account, you could transfer files from one computer to another (with FTP, file transfer protocol) and you could remotely log into another machine with telnet. And, there were news groups which were text-based lists of articles, called postings, of various topics such as food, humor, sex, etc. 

Fast forward thirty years to today and that limited research network is now a global network connecting users across the globe to one another. Anyone with a cell-phone can connect to anyone else. You don’t need an account on a school computer, your identity can be hidden (although not necessarily your internet protocol (IP) address) and you can access websites, forums, email, chats, etc. So, what’s life like on this new, global network?

The internet, of course, is filled with good things like news, email, social software, and, as you know, shopping on Amazon or eBay. But for Jamie Bartlett, the internet has a dark side filled with illegal activities and socially unacceptable sites packed with people who pay for the privilege to be part of a sex show. 

We begin this unseemly trip with Sara, a college student who thinks her computer offers some sort of anonymity, but it doesn’t. She puts on a striptease in front of her webcam on a public site and chats with viewers. She goes so far as to write her name on her naked body. Before she’s done entertaining (she’s not being paid) some of the viewers have “doxed” her: they find her real name, raid her Facebook account, send her nude photos to her friends and family, and essentially disrupt (maybe ruin) her life in the span of a just a few minutes. It’s a horrific description of an innocent girl’s demise written so graphically as to make you pity her naiveté and abhor the evil of these viewers who can’t resist shaming her. 

I was pleased to find usenet newsgroups are still around but then shocked to realize how misused they are on the dark net. The group alt.suicide.holiday makes its appearance where people openly discuss their desire to kill themselves. Suicide is a sickness and one might think, just maybe, this newsgroup would somehow help the mentally ill to avoid suicide and find help. No such luck. Mr. Bartlett introduces us to “Cami” who encourages Nadia, a 19-year old Canadian girl, to kill herself. Reading the dialogue one would think Cami is a kindred spirit and needs help, too. But we soon learn Cami is not a girl, not suicidal, and has no interest in helping Nadia. Rather, Cami is a middle-aged man, a nurse, husband, and father who has spent years encouraging distraught girls to kill themselves. He thinks five actually did. On the web, there are dangerous people.

If you want to purchase illegal goods like drugs or guns you’ll find them on the Silk Road. This is a site that only exists via the TOR router (The Onion Router, developed by the Navy) so users are almost impossible to trace and anonymity is all but ensured. The first Silk Road was run by Ross Ulbricht until he was arrested by the FBI on October 1, 2013. Ulbricht managed the site for a small fee amounting over time to $150 million in Bitcoins, the currency of choice for no traceability. There is now a Silk Road 2 showing that markets will spring to serve customers no matter what the merchandise. 

For the sex-side to this dark net we meet Vex who works on the Chaturbate site. Viewers can find sex shows with Vex and maybe a friend or two of hers will join in. She makes money from the shows and fans can tip her with Bitcoins. The site monitors who tips and how much so the bigger the tipper the more his (and most viewers are men) suggestions the models may perform. Some fans are quite fond of the various models and buy them gifts from the model’s Amazon wish list. 

The dark web exists, is easy to access, and contains things unavailable elsewhere. It’s a model of free enterprise, marketing, and business without regulation. For those interested in what happens when there are few rules, Bartlett has a written a fine guide to this side of the internet.

Monday, April 04, 2016

Book Review: A Sampler of Useful Computational Tools for Applied Geometry, Computer Graphics, and Image Processing By Daniel Cohen-Or (Editor), Chen Greif, Tao Ju, Niloy J. Mitra, Areil Shamir, Olga Sorkine-Hornung, and Hao (Richard) Zhang


Here is a useful book (the title is correct!) that covers a wealth of processing tools in a single volume accessible to experts and novices alike. Topics include analytic geometry, linear algebra, least squares solutions, principal component analysis and singular value decomposition, spectral transforms, solution of linear systems, and graphs and images, to name a few.  All topics are applicable to image processing and most are applicable to other areas as well.

Each chapter is stand-alone so the reader can learn the material quickly without the need to study earlier chapters to understand later chapters. If the reader doesn’t know what he needs, the table of contents shows the reader what’s in each chapter and whether the material might apply to his problem.

The text is lucid, easy to read, and follows a logical progression. Equations are explained and the authors provide ample figures and pictures to illustrate the concepts and discussions.

For example, the authors discuss how to determine is two lines intersect in 3-space with a step-by-step development of the mathematics and resulting algorithm. Next, they show how to fit a line to data points in a least squares sense and give pictorial examples in 2- and 3-space. The chapter on Least-Squares Solutions shows how to fit, say a curve to data points from an edge of an image and how to weight the data points to compensate for outliers. The chapter on spectral transforms provides an excellent discussion on image compression techniques such as the Discrete Cosine Transform and Laplacian smoothing. 

Incidentally, the book intuitively discusses how one can use Laplacian equations for image reconstruction and image manipulation. There is an image, for example, where most of the image is missing but with an image completeness algorithm based on smoothness (that is, find the best image that is smooth relative to the known data) one sees a fitted image quite close to the original. (Incidentally, it has always amazed me how much information one can discard from an image and yet still recover the original image, almost precisely.)

What is more, the book discusses Poisson panoramic image stitching and shows a beautiful example of city landscape before and after the processing. This tells part of the story of current digital cameras that allow one to take multiple pictures of a scene with each picture angularly offset from the other. The processed image is a smooth panoramic view that would be unobtainable otherwise. The stitching and smooth transition between images is both natural and unnoticeable.

On a slightly negative note, the chapter on topology is a bit weak.  Of course, topology is a complicated and involved topic and while the gist of it can be explained succinctly, applications require more space than the authors had to produce a well-balanced text. Still, as a reference that at least mentions this topic the authors do an admirable job summarizing the details.

In conclusion, this book is a good collection of algorithms and tools for computer graphics. The topics are useful, well-presented, and collected in a single book for easy access. If you work in this area, you’ll find this book beneficial.

(This review was originally posted to the Mathematical Association of America's Book Reviews and can be found here.)


Book Review: Numbers and Computers by Ronald T. Kneusel



This review originally appeared in the Mathematical Association of America's Book Reviews and is available here.

(My special thanks to the MAA for having my reviews. If you are interested in mathematical books and general science books, check their reviews for insightful criticisms and comments.  

I am still having to learn how to use equations with MathJax in my postings so they do not look as they should. I have to work on this.)

While computers are ubiquitous are they accurate at what they do? Can we trust them to compute and work as we expect? Much of science is based on computer simulations and yet computers are, in fact, limited, prone to numerical errors (by design!), and their results require checks and re-checks. If you don’t believe this then read Mr. Kneusel’s Numbers and Computers.

This book is, on one level, a discussion of how computers work with numbers. It tells how computers represent numbers such as integers, floating point numbers, big integers, decimals, and what is more, how one can write his own routines to operate on numbers. The book is filled with C-code and Python code so the reader can implement the routines to create his own library of number manipulation subroutines, change the bit representations of numbers, and simply understand how program calls, that programmers, engineers, mathematicians, etc. may take for granted, actually work. And if that’s all you want from the book, you will be quite happy. Mr. Kneusel’s writing is clear, well-organized, easy to follow, easy to implement, and a wonderful learning experience.  

On a deeper level this book shows the limitations of computers. Many of us know there have always been the limits imposed by changing data types, such as floats to integers. But what about the limits of binary itself? Mr. Kneusel tells the story of how a slight numerical representation error was fatal to 28 soldiers. Here is a paraphrased version of the story:

On February 25, 1991, a scud missile hit a US Army barracks in Dharan, Saudi Arabia. The missile could have been intercepted except it was never fired. The Patriot battery protecting the barracks failed to launch an interceptor because the computer thought the missile was out of range by about half-kilometer. The error was tracked to a small programming issue. The program kept time in steps of 0.1 seconds and used a 24-bit fixed-point float to represent that increment. However, 0.1 is not perfectly representable in binary and the error is approximately 0.000000095 seconds. If the Patriot operators would have rebooted the program frequently, this error may have been tolerable. In fact, Israeli operators of Patriot batteries noted the error accumulated to a 20% targeting error after 8-hours of operation.  In this case, the Patriot system had been running for 100-hours causing an error of 0.34 seconds and a target distance error large enough to keep the interceptor from launching.  The error cost 28-soldiers their lives.

The limitations of computers can be even more subtle. Most simulations, and dynamical systems in particular, rely on feedback to generate states and evolve systems to predict future behavior. A simple dynamical system that does this is the logistics equation:
\[ x_{i+1} = r  x_{i} ( 1 - x_{i} )  \; i = 1, 2,  \ldots  \]
which you can implement easily to see the evolution of the variable \( x \). Because the logistic equation is chaotic for certain values of \( r \), an initial condition of, say, \( x_{1} = 1.5\) or \( x_{1} = 1.50005 \) are expected to yield different trajectories. This is the idea of sensitive dependence on initial conditions, a fundamental behavior of chaotic systems.

But, what if we keep the same value for \( r \), and  \( x_{1} \)  and simply change the algebraic representation of the equation? Will the trajectory change? Mr. Kneusel shows it will because the computer calculation changes with a change to the equation format.  To see this myself, I wrote the equations in two different ways:
\[ x_{i+1} = r x_{i} (1.0 - x_{i}) \]
and 
\[ x_{i+1} = r x_{i} - r x_{i} x_{i} \]
Figure 1 shows the trajectory of \( x \) with \( r=10 \) and \( x_{1} = 0.1 \) where I used floats for the variables and implemented the equation with C on a Raspberry Pi computer.


Figure 1: Logistic equation implementation in C. The blue curve corresponds to \( x_{i+1} = r x_{i} (1.0 - x_{i} ) \) and the red curve corresponds to  \( x_{i+1} = r x_{i} - r x_{i} x_{i} \)

If you write the equations in other ways (I tried six) you will see a similar divergence in the results; no two expressions give the same trajectory. This observation applies even when I used double precision for the numbers. To quote Mr. Kneusel: “Which value, if any, is most correct?” Hard to know, isn’t it? Mr. Kneusel has more to say and other examples in his book.

If this makes you wonder about the utility of computers and how to better understand numerical representations and calculations, you will do well to add this book to your winter reading list. Happy computing.