Saturday, October 29, 2016

After 10 years on the Apache Derby project, one of the few tasks that I hadn't yet attempted was to produce an official Apache Derby release.

Well, I'm pleased to say that, with the help of a number of people, most particularly my good friend Rick Hillegas, I've finally checked that item off my list: Apache Derby 10.13.1.1 is released.

This is a small release, containing a handful of new features and several dozen bug fixes.

Many of those bug fixes were contributed by students who learned about Apache Derby while interning in the Google Summer of Code.

Apache Derby has become a very quiet project, but it is also stable, mature, and feature-rich, and it remains one of the best open source DBMS implementations in the world, and I continue to learn various things by staying involved with it.

Anyway, this process kept me busy for most of October, but it's done now, and there are a million other activities that await!

Saturday, October 22, 2016

I spend a fair amount of time hanging out on places like Stack Overflow helping people with simple questions about things I know a lot about (e.g., Apache Derby).

One thing I notice is that people often try to learn a lot of new things all at once.

I suspect many of these people may be college students, as situations like this seem to pop up regularly at certain times of the year, which I imagine is around the time when Introduction to Databases classes around the globe are all getting to the point where they are assigning their first homework assignments.

I think there's also a lot of hysteria in the professional software development community recently about the notion of the Full Stack Developer.

Everybody wants to be a Full Stack Developer, because then they can get a job at Facebook/Google/Twitter/Uber/Dropbox/etc.!

I've written a JSP web app and I'm trying to make it so that when I fill out a form and click this button, my Java code will use JDBC to store my record in the database.

But it isn't working.

... giant dump of blocks of various code pasted into question ...

Please help.

Let's look at what's GOOD here:

The questioner is self-aware enough to realize that they're trying to learn some new technologies,

and they've decided to approach that by learning-by-doing: that is, they're trying to write some actual programs to help themselves learn

All of that is wonderful!

But, you can't learn too much at once.

You just can't.

SQL is a deep technology; it's more than 30 years old.

Java is a deep technology; it's more than 20 years old.

The JDBC API is enormous and complex; it's at least 15 years old.

And web app development technologies such as JSP are almost as old as Java itself.

So don't try to do all of that at once!

I suspect some of this arises due to poor instruction in many universities. The state of the art in programming education appears to remain dismal, decades into the discipline.

However, I think that it also just reflects unrealistic expectations by people who feel like they should be able to master deep and complex subjects immediately.

After succeeding in primary education, and in secondary education, and finding that they can learn many, many things quite easily, young learners meet the world of computer systems and unexpectedly flail and flounder.

One of the things that's wonderful about computers is that there's essentially no limit to how complex a computer program can be: if you can imagine it, you can (try to) write a computer program to do it.

That's why computer programming is a career that can bring you valuable and rewarding employment for 30, 40, even 50 years of your life, which is a truly wonderful aspect of our modern life that doesn't get celebrated anywhere near enough.

But, it's also why you Just Can't Expect To Learn It All Instantly. There's simply too much.

And it will only get more complex, over time.

So what might be a successful approach?

First, get a nice simple standalone SQL product like SQLite or H2 or Derby. Look through that tool's docs and tutorials until you're comfortable starting it up, and shutting it down.

Then add a simple interactive SQL editor like SQuirrel, and learn how to write SQL. You don't have to learn ALL of SQL, but you need to learn some basics: SELECT, INSERT, UPDATE, DELETE. CREATE TABLE. The concept of indexes, and views. Referential constraints. Table design and at least the concepts of normalization.

Then have a look at the JDBC API, and write some JDBC programs of your own.

OK, NOW you are ready to try writing a JSP web app which makes JDBC calls to issue SQL statements against a database system of your choice.

At least at this point all you're really trying to learn is the JSP and web technology.

And hopefully, the result will be that the young learner:

Has some success, and doesn't despair, and doesn't throw the computer out the window and decide to switch their major to, say, Diesel Mechanics (not that there's anything fundamentally wrong with Diesel Mechanics, but the world needs more successful, well-educated computer programmers badly!)

Gets enough of an introduction to the various sub-specialties of the computing world that they can make an educated and informed choice about what appeals to them, what they have a knack for, and what they'd like to learn more about.

Very, very, very few of us are going to actually end up being Full Stack Engineers, after all, and there are a lot of good reasons to not even try.

In this paper, we examine policies that inherently tune the system’s idle sensitivity. Increased sensitivity to idleness leads to aggressive over-booking while the converse leads to conservative reclamation and lower utilization levels. Aggressive over-booking also incurs a “reserve” capacity cost (for when we suddenly “owe” capacity to previously idle databases.) We answer these key questions in this paper: (1) how to find a “good” resource reclamation policy for a given DBaaS cluster of users; and (2) how to forecast the needed near-term reserve capacity.

This paper provides the first in-depth study of how to efficiently implement the three most common holistic windowed aggregates (count distinct, mode and quantile) by reusing the aggregate state between consecutive frames.

In this paper, we describe the solutions developed to address key technical challenges encountered while building a distributed database system that can smoothly handle demanding real-time workloads and provide a high level of fault tolerance. Specifically, we describe schemes for the efficient clustering and data partitioning for the automatic scale out of processing across multiple nodes and for optimizing the usage of CPUs, DRAM, SSDs and networks to efficiently scale up performance on one node.

Comdb2 is a distributed database system designed for geographical replication and high availability. In contrast with the latest trends in this field, Comdb2 o↵ers full transactional support, a standard relational model, and the expressivity of SQL. Moreover, the system allows for rich stored procedures using a dialect of Lua. Comdb2 implements a serializable system in which reads from any node always return current values. Comdb2 provides transparent High Availability through built-in service discovery and sophisticated retry logic embedded in the standard API.

Finding a good join order is crucial for query performance. In this paper, we introduce the Join Order Benchmark (JOB) and experimentally revisit the main components in the classic query optimizer architecture using a complex, real-world data set and realistic multi-join queries. We investigate the quality of industrial-strength cardinality estimators and find that all estimators routinely produce large errors. We further show that while estimates are essential for finding a good join order, query performance is unsatisfactory if the query engine relies too heavily on these estimates. Using an- other set of experiments that measure the impact of the cost model, we find that it has much less influence on query performance than the cardinality estimates.

The next generation of high-performance networks with re- mote direct memory access (RDMA) capabilities requires a fundamental rethinking of the design of distributed in-memory DBMSs. These systems are commonly built under the assumption that the network is the primary bottleneck and should be avoided at all costs, but this assumption no longer holds.

In this paper, we show how to further speed up data deduplication by leveraging parallelism in a shared-nothing computing envi- ronment. Our main contribution is a distribution strategy, called Dis-Dedup, that minimizes the maximum workload across all worker nodes and provides strong theoretical guarantees.

Sunday, October 16, 2016

The Orenda, to be frank, is often not a pleasant book to read. It is fiction, but set very firmly in a tragic historical context: the utter collapse of the Huron Nation in the late 1600's.

The Orenda is a story of tragedy, devastation, and despair, yet somehow it is also a story of humanity, beauty, devotion, and affection.

The author uses an unusual narrative structure: the book is told entirely in the first person, but it alternates, chapter by chapter, among the voices of three separate co-narrators:

Snow Falls, an Iroquois princess

Bird, a Huron war chief

and Christophe, a Jesuit missionary

In and out of the overall story we go, sometimes letting a single narrator carry the story for long stretches, at other times seeing the same event from two or sometimes even three completely different perspectives.

Boyden's genius is that he completely inhabits each of these characters, allowing us, in turn, to live these events ourselves, witnessing the horror, yet simultaneously comprehending how it was and how it came to be.

If you read this book (and you should!), let me caution you to prepare yourself for a long and dark ride: The Orenda starts out bleak, descends into tragedy, and concludes in a maelstrom of horror.

Yet, somehow, it is so exquisitely drawn that it is simultaneously full of aching beauty.

Let me try to illustrate with a short excerpt:

Each day as we struggle against the current, I watch the men turn leaner, more focused, more silent. From first light until night threatens we push up this wide, black river with birch and maple and poplar thick on the banks. So many good places for my father's brothers to ambush these canoes. I hope they've brought a hundred men, two hundred men. Enough to kill Bird and all of his war-bearers. The country here is beautiful. The rocks run right down into the water that's dark as the darkest night, and when the men stop to rest, I lie upon those rocks and let their heat soak into me. A wind from the east has brought good skies, and this kind wind blows away the flies and mosquitoes. These might be the most beautiful days of sun I've ever known after the rain of last week stopped. This is the perfect time, and the prettiest of country, in which to witness my father's brothers kill these enemies.

Boyden doesn't overwhelm you with technique and style. He understands that these people, and their stories, are all that he needs, and he (remarkably!) disappears from the book, so that soon you feel that Bird, Snow Falls, and Christophe are real people, whose real recollections were simply captured by some well-placed tape recorder, and then faithfully transcribed.

Thursday, October 13, 2016

Way back in the mid-1980's, we used to sit around in the office and chuckle at computer companies whose strategy was clearly:

OK, we may lose money on each sale.

But we'll make it up in volume!

OK, it's an old joke, certainly it goes much further back than the 1980's.

But isn't it delightful to read this:

“We kept getting new customers, but we started to see that the profit margins were zero to negative,” said Howard Morgan, an investor at First Round Capital who was on Fab’s board. “The only way the model made money was if people bought multiple items. If you could lose money on each customer, you’re not going to get money out of the whole, and it took us too long to understand that’s what was happening.”

Investors swarmed. Goldberg's ideas and charisma helped the e-commerce site raise at least $325 million in venture capital from such firms as Andreessen Horowitz and China's Tencent Holdings, fueling expansion in Europe and plans to tackle Asia.

I mean, these are guys who run multi-billion dollar investment funds, not just some dumb schmuck coders who sit around in the office critiquing stupid business plans that can't ever work.

“The ferry service, like so many transit agencies in the region, is carrying more and more people,” said Ernest Sanchez, marketing manager for San Francisco Bay Ferry. “The demand on the system is substantial and is beyond what we expected to happen, so what we’re trying to do is take our 11 boats and get them assigned in the most affective manner.”

Bay Ferry has also redirected routes to create a direct 4 p.m. trip from San Francisco’s Pier 41 to Alameda, then Oakland.

But the changes will only make a small dent in demand that shows no sign of waning.

“The numbers are going to be small,” Sanchez said, adding the new runs amount to a temporary fix while the system awaits longer-term expansions, like two new 400-passenger boats expected to hit the Bay next winter.

Ferry service representatives joined local and state officials Thursday for the groundbreaking of the Water Emergency Transportation Authority’s new $49 million operations and maintenance center.

The event, which featured wine and live music under a tent at the former Alameda Naval Air Station, also was a tribute to Ron Cowan, the Alameda developer who helped spearhead the creation of the ferry system.

Construction of the center, which will be named after Cowan and will be located at Ferry Point Road and West Hornet Avenue, has already started with underwater work and is expected to be completed in 2018.

...

A regional public transit agency, the Water Emergency Transportation Authority operates ferries on San Francisco Bay under the “San Francisco Bay Ferry” brand.

Originally known as the San Francisco Bay Area Water Transit Authority, it was established in 1999 and has 12 boats on four routes that visit eight terminals. The goal is to have 44 vessels on 12 routes with 16 terminals by 2035, according to WETA officials.

Tideline is one of two private water taxis to get the OK to run scheduled trips across the bay. The other is Prop, which plans to have service to Berkeley, Emeryville, San Francisco and Redwood City in early January.

“We have an untapped waterway,” said Prop CEO James Jaber. “Unlike the bigger lines, we can offer cities an inexpensive look at public ferries without a 10-year, multimillion-dollar commitment on their part.”

Unlike the publicly subsidized ferries, which have boats that hold up to 400 passengers, the smaller taxis hold about 40 commuters or less.

If SMART doesn’t go to San Francisco, isn’t it a “train to nowhere?”
SMART will connect to Larkspur, across the street from the Larkspur Ferry Terminal, providing access to San Francisco. It’s important to recognize, however, that most of the traffic on Highway 101 in the North Bay is not bound for San Francisco.

Commuting patterns in the 21st Century are much different from those of 50 years ago. The vast majority of North Bay commuters on Highway 101 are going to jobs in Marin and Sonoma Counties, and the number of commuters to San Francisco is shrinking. The Metropolitan Transportation Commission projects 130,000 new jobs along the Highway 101 corridor in Marin and Sonoma between 2000 and 2025 – none of which will require a North Bay commuter to cross the Golden Gate Bridge. Far from being a “train to nowhere,” SMART is a train to where the jobs are, and where the people are.

So far, SMART has spent roughly $460 million, according to Gamlen, and purchased 14 cars. Operated as two-car sets, the system will have seven sets. The doors and cars were designed in Japan. BART systems cost about $120 million per mile. Light rails costs about $50 million a mile. “We are running about $10 million a mile,” he said, excluding any costs for acquiring right-of-way.

There are four passing sidings, where dual-track sections allow northbound and southbound trains to pass. The longest stretches about two miles; the track so far runs 43 miles. Dispatchers, operating somewhat like air-traffic controllers, line routes and can direct trains onto passing sidings as needed. If schedule changes occurred, a train could be held on a passing siding for another train to go by.

An estimated run time will be just over an hour from Sonoma County’s airport to San Rafael. “We have yet to run a train from end to end at planned speed,” Gamlen said. “All this stuff is still in test mode.”

Friday, October 7, 2016

I feel like something like this should be right up my alley: Product Aikido

I have been working on a first draft of a exemplar of a doctrine for Product Development, which I have named “Product Aikido” (presently, a document of some seventy-seven A5 pages). My motive for this has been the belief that there is much value in (product) organisations having a shared, common understanding of what product development is, and how it is conducted.

I mean, the document even mentions the sort of product development that I care about:

Examples of product development ... include the original Thompson, Ritchie and Kernighan UNIX; Linus Torvald’s Linux; and Twitter.

But the document is (indeed, 77 pages) full of mush like this:

The operational context of product development links the strategic and tactical contexts. It is the use of tactical results to attain strategic objectives. The operational context includes deciding when, where, and under what conditions to commit resources to getting things done—and when, where, and under what conditions to refuse to so commit, in support of higher aims. Actions in this context imply a broader dimension of time and space than actions in the tactical context.

I've had my interactions with people who claim to be Experts in Product Strategy of late.

I wonder if reading stuff like this is how they were trained, how they became experts?

Thursday, October 6, 2016

And now, finally, after all these years, the FTC has released its big report. It appears that 22 patent trolling operations responded to the subpoenas, though many had "affiliates and other related entities" allowing the FTC to study many more patent trolling operations overall. The study lumps patent trolls (they prefer the euphemistic "Patent Assertion Entities" or PAEs) into two categories: litigation trolls and portfolio trolls. In short, litigation trolls are the smaller guys with just a small number of patents, who would threaten and sue companies (and quickly reach settlements) over those few patents. It's more of a "mom & pop" shakedown kind of business. Portfolio trolls are the bigger, well funded operations, that have a massive portfolio of patents and play a more comprehensive shakedown game, going to lots of big companies and basically saying "you infringe on some of our patents, so give us a bunch of money to not figure out which ones." Think: Intellectual Ventures or Acacia.

The differences here matter, because the businesses are quite different. Lots of the actual lawsuits come from the litigation trolls as a sort of negotiation tactic. The portfolio trolls don't actually have to go to court that often -- they have "sales people" who are a bit more effective. But the amount of dead-weight loss to the economy from the portfolio trolls is much larger. When big companies agree to a portfolio troll shakedown it's often for a tremendous amount of money. The FTC study found 80% of the revenue went to portfolios, and only 20% to litigation trolls -- even though litigation trolls filed 96% of the lawsuits and 91% of the reported licenses.

This is where that infamous Gundotra speech matters: I’m not convinced that anyone at Google fully thought through the implication of favoring Android with their services. Rather, the Android team was fully committed to competing with iOS — as they should have been! — and human nature ensured that the rest of Google came along for the ride. Remember, given Google’s business model, winning marketshare was perfectly correlated with reaping outsized profits; it is easy to see how the thinking and culture that developed around Google’s core business failed to adjust to the zero-sum world of physical devices. And so, as that Gundotra speech exemplified, Android winning became synonymous with Google winning, when in fact Android was as much ouroboros as asset.

Intel and Micron are chip folks. I’m confident that at the chip/media level, the results that Intel reported are close – despite marketing rounding-up – but when talking about SSDs, Optane or QuantX, the subject is a system, not media.

...

Systems consist of cooperating parts, and making one part a thousand times faster doesn’t make all the other parts go faster too.

Instead of just providing a detailed explanation, I thought it would be more fun if you got into the cave of concurrent coding with us and tried to figure out how System.arraycopy() could sometimes do early writes and thus leak uninitialized arrays into the reader threads.

Hey, I got this new web project, but to be honest I haven’t coded much web in a few years and I’ve heard the landscape changed a bit. You are the most up-to date web dev around here right?

-The actual term is Front End engineer, but yeah, I’m the right guy. I do web in 2016. Visualisations, music players, flying drones that play football, you name it. I just came back from JsConf and ReactConf, so I know the latest technologies to create web apps.

Cool. I need to create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server.

We accord one another status for serving our own personal gratification through the use of new tools. Meanwhile we completely forget about the people we’re actually supposed to be working for: our users.

The web development community has gone off the rails. It must be restored to sanity.

Wednesday, October 5, 2016

Sometimes, in business, as in other parts of life, things are complicated.

A long time ago, I worked with a fellow that I liked and respected, who has gone on to have a spectacular career in the high technology industry. In an incident that he re-tells on his blog, he talks about the role of messaging in a high-tech software company.

As I remember it, he once told me that

Marketing is the art of telling the truth in the most positive possible way.

Although I'm not sure that he ever persuaded me to be comfortable with this sort of behavior, I came to respect him and what he does, quite a lot.

One example of a same for less alternative is when a manufacturing company reduces its total personnel (and thereby personnel cost) while still producing the same volume of goods. This can e.g. be achieved through centralization, automation or optimization of working processes.

This, clearly, makes a certain amount of business sense. Profit is higher, after all. (Though it's definitely not so great for those people who make up the set by which the "company reduces its total personnel".)

Where it gets tricky is when you try to figure out how to talk about this with other people, such as your own employees, your company's customers, or the broader market as a whole.

One of the most horrifying phrases you may ever hear in the corporate environment is: "controlling the message."

When executives talk about controlling the message, they are talking about the delicate issue of trying to affect what those other people hear when the company says something.

You might think this is simple: just always tell the truth.

That's definitely an approach, but if people hear the truth, they might act on it, and they might do something you didn't want them to (they might not buy your product, or if they already have it, they might cancel their subscription, etc.).

Of course, they might also respect you for telling the truth, and reward you for it by being honest with you in turn.

But, anyway, there is an entire part of modern business that involves "controlling the message".

And there are real world situations where people who excel at controlling the message are rewarded with promotions, prestige, bonuses, raises, etc.

And there are other real world situations where people, perhaps because they come from backgrounds or cultures where controlling the message isn't a top priority, don't do such a good job of it.

And for those people, they may find that they are disciplined, not promoted.

The company has set out to upend the entrenched industrial food system and disrupt the dinner table by changing the way Americans buy, receive, and prepare food, reducing food waste and increasing distribution and delivery efficiencies in the process. To do that, it had to rapidly hire a massive unskilled workforce, bringing jobs to a part of the Bay Area that has been largely left behind by Silicon Valley’s boom times. Yet documents and interviews suggest that it was unprepared to properly manage and care for those workers, and as a result has suffered a rash of health and safety violations.

In the 38 months since Blue Apron’s facility opened, the Richmond Police Department has received calls from there twice because of weapons, three times for bomb threats, and seven times because of assault. Police captains have met twice with Blue Apron to discuss the frequency of calls to the police. At least four arrests have been made due to violence on the premises, or threats of it. Employees have reported being punched in the face, choked, groped, pushed, pulled, and even bitten by each other on the job, according to police reports. Employees recalled bomb scares, brandished kitchen knives, and talk of guns.

You can try to cover your qualms with layers of ethical review, like a coat of paint. But you can't hide the ugliness underneath.

I worry about legitimizing a culture of universal surveillance. I am very uneasy to see social scientists working with Facebook, for example.

People are pragmatic. In the absence of meaningful protection, their approach to privacy becomes “click OK and pray”. Every once in a while a spectacular hack shakes us up. But we have yet to see a coordinated, tragic abuse of personal information. That doesn't mean it won't happen. Remember that we live in a time when a spiritual successor to fascism is on the ascendant in a number of Western democracies. The stakes are high.

Large, unregulated collections of behavioral data are a public hazard.

People face social pressure to abandon their privacy. Being on LinkedIn has become an expected part of getting a job or an apartment. The border patrol wants to look at your social media.

So in working with the online behemoths, realize that the behavioral data they collect is not consensual. There can be no consent to mass surveillance. These business models, and the social norm of collecting everything, are still fragile. By lending your prestige to them, you legitimize them and make them more likely to endure.

Silicon Valley’s enthusiasm for a universal basic income follows naturally from a techno-utopian ideology of abundance. As robots displace human workers, they’ll provide more and more of the goods and services that humans need, faster and cheaper and better than we could. We’ll just need to be paid to consume those goods and services.

This narrative reveals a profound failure of imagination. Our greatest tech visionary, Doug Engelbart, wanted to augment human workers, not obsolete them. If an automated economy can free people from drudgework and — more importantly — sustain them, I’m all for it. But I believe that many people want to contribute if they can. Some want to teach. Some want to care for the elderly. Some want to build affordable housing. Some want to explore a field of science. Some want to grow food. Some want to write news stories about local or global issues.

Before we pay people simply to consume, why wouldn’t we subsidize these jobs? People want to do them, too few are available and they pay too poorly, expanding these workforces would benefit everyone.

Shadow Regulation may be a new term, but it's a phenomenon that has been gathering speed for several years. To defend our Internet, we need to pay attention to the encroachment of these secretive, exclusive agreements, and challenge them when they pose a threat to our digital rights and democracy.

It’s been nearly a decade since I began writing about the taxation of carried interest, which is the cut of profits that venture capitalists, private equity pros and other types of money managers receive from successfully investing other people’s money. And I’ve consistently argued that carried interest should be viewed by the IRS as ordinary income, rather than as a capital gain.

First conceived in the 1970’s, S&P 500 and other index-­‐based approaches slowly and surely began to gather assets. The addition of ETF’s in the 1990’s and smart beta passive vehicles in the 2000’s accelerated the growth. No investment skill (a.k.a. alpha) was required to launch a new fund or product and by 2015 30% of the stock and bond markets were held by passive investors. The pitch and reason for such explosive growth over 40 years: lower fees and better than average (sometimes top quintile) performance versus active fund managers. Portfolio success became a function of marketing and not investment skill. The money poured in.

Saturday, October 1, 2016

Can you imagine the pain he felt as he experienced himself disintegrating? And not from something he would ever know the name of, or understand? Neither he, nor anyone could stop it—no amount of intelligence or love could hold it back.

Powerless and frozen, I stood in the darkness of not knowing what was happening to my husband. Was it a single source, a single terrorist, or was this a combo pack of disease raining down on him?

Nowadays, along with his comic strip, Adams has been putting a VAST amount of energy into writing his blog, which he publishes on the same site as the comic strip.

And if, like me, you find yourself reading not just his comic strip, but also his blog, you've probably noticed how incredibly bizarre it's become over the last year. If so, you and I are not alone in wondering about this:

He arrived on the pundit scene with a splash: He announced way back in the summer of 2015 that Trump was going to win the Republican nomination. He came to this knowledge not via fancy polling models or sophisticated political science analyses, but just by watching the election unfold through what he calls his “Master Persuader lens.” Adams is a trained hypnotist, and as such he can’t help but recognize the mesmeric brilliance of nearly everything that Trump says and does.

I would be a top-ten assassination target in that scenario because once you define Trump as Hitler, you also give citizens moral permission to kill him. And obviously it would be okay to kill anyone who actively supports a genocidal dictator, including anyone who wrote about his persuasion skills in positive terms.

I had been endorsing Hillary Clinton for president, for my personal safety, because I live in California. It isn’t safe to be a Trump supporter where I live. And it’s bad for business too. But recently I switched my endorsement to Trump

I don't really know why I find this all so fascinating, or even why I pay much attention to Scott Adams at all.

I used to just read the comic strip, and I didn't know much else about Adams. Apparently, his rather bizarre views have been well-known for many years, and I was just ignorant of all this.

At some point, about a year ago, he did a clever thing: he switched his website so that he no longer served the daily comic strip to RSS readers, but instead forced anyone who wanted to read the strip to visit his actual strip, where his blog articles are prominently placed.

Which had the intended effect: I started clicking through to the blog articles fairly frequently.

And then, once I saw them, I couldn't look away, like one of those morbidly-fascinated oglers at a neighborhood crime scene.

Unfortunately, what this means is simply that: I don't know if he's always been this way, or if he used to be normal and he's become ill.