Mark Gritter's Journal|
[Most Recent Entries]
Below are the 20 most recent journal entries recorded in
Mark Gritter's LiveJournal:
[ << Previous 20 ]
[ << Previous 20 ]
|Wednesday, October 15th, 2014|
I have been trying to build a Hearthstone Druid deck but the class hasn't been making a lot of sense to me. I'm finally having some success in non-ranked games with the following:
2x Innervate 
2x Naturalize 
2x Mark of the Wild 
2x Power of the Wild 
2x Wild Growth 
2x Echoing Ooze 
2x Faerie Dragon 
2x Healing Touch 
2x Emperor Cobra 
Ironfur Grizzly 
Keeper of the Grove 
2x Druid of the Claw 
2x Ironbark Protector 
There are a lot of nice combos at work here. But when it doesn't work out I find myself card-short and unable to respond to a deck with more depth. Thinking of ditching some of the mana cards in favor of some higher-value cards, or more drawing cards.
A Druid deck I saw that was sort of surprising was all +spell damage minions, which powered Moonfire/Swipe/Starfire/Wrath.
|Saturday, October 11th, 2014|
|I need a better Go app [crossposted on G+]
"Go Free" successfully beats me 2 out of 3 times at half-difficulty and a two-stone handicap. (What can I say, I suck.) But it's still occasionally capable of gross stupidity like this position, where it marks the upper-left corner as dead (?!?) and doesn't recognize seki
in the lower-left.
|Sunday, October 5th, 2014|
|On reading Joe Abercrombie
Thirr the Golden stalked across his tower's roof.
"Twenty-five years! And not one of these stories have taken root!"
His secretary kept silent.
"Princes swapped at birth become cowardly shepherds. Betrayed mercenary captains simply vanish. Heroes condemned to the galleys die of dysentery."
"I thought the child raised by wolves was off to a good start, master?"
"I just checked her worldline. She broke her ribs tackling an elk, and caught a fatal case of pneumonia shortly thereafter. My star-crossed lovers failed to show up for the barricades. Thieves and gladiators appear singularly uninterested in overthrowing tyrants. And don't get me started on talking cats, mirrors, and swords! The last ended up in the possession of an insane brute who already heard voices in his head. If I could get the epic geas to take hold but once..."
The secretary, suddenly close, murmured, "perhaps a trusted aide turned to treachery?"
Thirr vainly attempted to summon flight as he fell.
|Monday, September 22nd, 2014|
|Compiler writers aren't actually idiots
Occasionally I see 0-based indexing in programming languages justified in terms of efficiency of not having to subtract one when performing array lookups. For example, the C code
x = my_array[i]
translates into something like
movl (%ecx, %esi, 1), %eax
directly (where ecx holds my_array and esi holds 'i'), while presumably the Pascal equivalent
x := MyArray[i]
has to adjust 'i' by whatever the start index is (usually but not necessarily 1.) But there's no ironclad rule that says the implementation of 'MyArray' has to point at the actual address of the start of the array. The compiler writer can arrange things so that the exact same assembly is generated, can't she? (Except that Pascal performs bounds checking...)
|Sunday, August 31st, 2014|
|VM granularity and data reduction
At VMworld I heard this idea a couple times, once from an analyst and once from somebody with interest in vVols:
With per-VM controls, an administrator could turn off compression and deduplication for VMs that don't benefit from it, and thus improve overall system performance.
In my mind, this is something that "sounds good" but falls apart based on closer examination.
1. Users generally don't do a good job telling whether compression and dedupe are effective on a VM.
One example provided in support of the idea is applications which consist of already-compressed data like video. Or, perhaps the VM is running with guest-level full disk encryption turned on. The OS could also be doing compression and dedupe within its own file system.
But, at least two of these examples are flawed. While compressed video files are unlikely to be compressed further, the VM contains OS files, file system metadata, and even video metadata, all of which compress well. Even the video portion may be duplicated if the guest OS performs any swapping, runs a log-structured file system, or contains redundant copies of the same video. A whole-VM or even whole-disk decision could abandon significant data reduction.
I would also argue that the guest OS generally should not be configured to do its own compression and deduplication. You will get worse behavior from turning on compression on all the individual VMs rather than letting the storage compress and dedupe globally, unless the storage controller is so short on CPU power that it can't do a good job, which brings us to the next point:
2. Poor inline compression and dedupe does not significantly affect storage throughput and latency.
I can tell you from personal experience at Tintri that we had far more problems with data that has high compression and dedup than data with low ratios! Data that doesn't compress nor dedupe is easy to accommodate; it doesn't take any more CPU cycles to fail to compress than it does to compress. But data that is extensively deduped requires more metadata operations than normal writes. Data that compresses well may leave a flash segment unfilled when the non-compressed version has exhausted non-volatile storage. (We don't compress data on the way to NVRAM, in part to keep latency low. This means that dedupe and compression don't have any first-order affects on write latency anyway--- only second-order effects based on resource consumption later in the write pipeline.)
Consider what turning off inline data reduction means. It does mean we would get some CPU savings from not compressing a block--- but this cost already has to be low to afford to do it inline, tens of thousands of times per second. There is no savings in checksumming the block, writing it to flash, modifying file system metadata, or garbage collecting the block later. If the system is properly engineered to perform inline data reduction, "turning it off" affects just a small part of the cost, one that may not even be the bottleneck for a particular workload.
However, if compression and dedupe are the bottleneck, the user is unlikely to be sure this is the case, which is my final point:
3. If there is a benefit to be gained, the storage system should do it automatically.
Tintri's goal is to build storage that "sees, learns, and adapts." If a particular VM does not compress or dedupe well, and there would be an overall system benefit in turning compression off for that VM, then the storage system should self-tune to achieve the benefit. Compare:
A. Administrator migrates a problem VM onto her storage
B. The problem VM causes bad storage behavior, which the storage system displays to the administrator in some comprehensible fashion (if she's lucky)
C. The administrator notices the problem, correctly diagnoses the underlying cause, and performs the correct configuration change without error (most of the time.)
D. Repeat it all over again for the next VM. Or the next 100 VMs. Or the next 1000 VMs across multiple storage appliances. If she can dedicate the time, compared to all the other things on her priority list.
A. The storage notices that a VM has unusual behavior and tailors its treatment of the VM to match.
Which world would you rather live in?
|Wednesday, August 13th, 2014|
|Sub-quadratic by a tiny, tiny bit
I was reading a post on the 3SUM problem
, and a commenter pointed to a new result: "Threesomes, Degenerates, and Love Triangles"
which produces a new bound that is just a tiny bit better than existing results.
The 3SUM problem is: given a set of numbers, does there exist a triple a,b,c such that a+b+c = 0? For real numbers, the best existing algorithm is O(N^2) and a lot of conditional bounds on other problems can be derived from the assumption that that's the best possible.
The new paper introduces an algorithm that is O(N^2 / (log N / log log N)^(2/3) ).
How much better is that? Well, at N=1000000, the numerator on that fraction is just 2.773. To get to a factor of 10, you need N to be about 10^75. In other words, for all practical purposes, the algorithm is useless--- rather than trying to get it right, you're better off tuning your implementation of the simple algorithm. But it's a potentially interesting advance because they also showed a better decision-tree bound than previously known, and got "subquadratic", but unfortunately not O(N^(2-e)).
|Wednesday, August 6th, 2014|
Tintri switched to a February-based fiscal year so we just finished the second quarter of fiscal 2015. We had the last all-hands meeting in our old office, and are scheduled to move on August 15th to our new location (just two buildings away, still on Ravendale Drive in Mountain View.)
I can't talk financials (but they're in good shape) but I can highlight our growth in people! Currently we're at 283 people, of which 121 are new this year. Our goal is to get to around 340 by the end of the year. (It's been mind-boggling: at the end of 2011 we were still only at 52.)
About 35% are in engineering and 40% in sales. We're still hiring aggressively, so please let me know if you or somebody you know are interested in joining a great pre-IPO company! We're looking for people with experience in storage, virtualization, and "the cloud"--- but have also hired great people outside those areas too.
Tintri is a platinum sponsor at VMworld US this year; I'll be out working the booth at the end of the month.
ETA: Good coverage from Forbes: Tintri's 140% Growth Threatens Shrinking NetApp
. Ken also mentions we are getting 70% gross margins. A few other tidbits: 65% of revenue is US, 35% rest of world; and we have 5 customers in the top 15 Fortune 500 companies.
|Sunday, July 27th, 2014|
|Oh, micro-stakes poker
I played a 0.01 BTC heads-up Razz SNG today. The opponent seemed fairly competent, but the final hand made me question my own judgement of him.
I have 3860 chips with (68)9 and he has 2140 with (xx)K, at the 30/300/600 level. I raise, naturally, and Villain re-raises. I three-bet and it takes a few more raises to get him all-in.
Is there any hand I can reasonably have here that makes him even break-even? He had (A2)K which is fine for a steal defense, but a shove? Why not wait until 4th? Perhaps he was just tired of playing.http://twodimes.net/h/?z=8922631
Razz (7-card Stud A-5 Low): 500000 sampled outcomes
cards win %win lose %lose tie %tie EV
Ad Kd 2d 185344 37.07 314538 62.91 118 0.02 0.371
6c 9h 8h 314538 62.91 185344 37.07 118 0.02 0.629
I would need to have something like (JT) or (Q8) down before he becomes a favorite.
|Saturday, July 12th, 2014|
|"The Avengers: Earth's Mightiest Heroes" Drinking Game
One drink if:
* Somebody holds Hornet in their hand
* Hornet is knocked unconscious
* Hornet's stingers have no discernible effect
* Ant-Man mopes about not wanting to hurt anybody
Two drinks if:
* Hawkeye runs out of arrows
* Somebody else brings extra arrows for Hawkeye
* Hawkeye's special arrows are easily ignored (not countered)
* Ms. Marvel appears out of uniform
Three drinks if:
* The Avengers forget that fake-Captain America betrayed the Hulk and he's still captive somewhere
* The Hulk changes back to Bruce Banner
* The Hulk is wearing pants that aren't torn
* Thor declares that something will "end now"
Four drinks if:
* Pepper Potts appears (extra drink if Tony's not in the scene)
* Iron Man wears an alternate suit of armor
* Iron Man refers to financial or emotional problems
* T'Chala shows up without his mask
|Friday, July 11th, 2014|
I'm reading Jordan Ellenberg's "How Not to Be Wrong". He describes a paradox I don't recall seeing before. Here are four bets on drawing a ball from an urn, which has 30 red balls and 60 balls that are a combination of black and yellow (in some unknown proportion):
RED: the next ball is red
BLACK: the next ball is black
NOT-RED: the next ball is black or yellow
NOT-BLACK: the next ball is red or yellow
if you can bet $100 on one of the first two
if you are offered a $100 prize based on one of the first two conditions occurring, which one do you prefer? How about your preference among the second pair?
( Read more...Collapse )
If offered RED or BLACK, I prefer
If offered NOT-RED or NOT-BLACK, I prefer
|Thursday, July 10th, 2014|
Marissa and I watched Ken Burns' "Prohibition" on Netflix. We were not impressed.
Some good bits: Carrie Nation, immigrant communities, and footage of Al Smith and FDR.
Things I did not know: there wasn't a congressional reapportionment after the 1920 Census, in part so dries (drys?) could maintain their hold on political power against the growing urban population.
Less good: pretending World War One didn't happen, or the influenza epidemic. No mention of heroin. Generally facile treatment and historical tone-deafness. Too many long, loving shots of drinks being poured.
(Every generation thinks it has invented debauchery, if not trying to live down the debauchery of the previous generation. It's amazing what a good job the Victorians did of convincing everybody that the Georgians didn't exist.)
|Monday, June 30th, 2014|
|Dealing With Government Inspectors and Other Gilded Age Flashbacks
linked to this NY Times story on Blackwater making oblique death threats against State Department investigators.
I was reminded of a story from "Empire Express" which exhibits a far gentler method of redirecting attention, from 1868.
Three inspectors each had been sent to examine the quality of the railroad line being built by the Union Pacific and Central Pacific. One of the Central Pacific inspectors was a silent partner of the railroad, and another a long-time friend of one of the founder. But certain parts of the road would not stand up to close inspection. So Charles Crocker resolved to "have them our examining culverts, ballast & bridges between here & Wadsworth--- so that they won't want to hear of culverts or anything of the kind beyond there." At the section that was most troublesome:
I said to the commissioners that we were approaching the point where the [Sacramento] Union has said it was unsafe to go over the road.... "And," said I, "Here is a tumbler of water which I will set on the floor of the car. Now, gentlemen, take your watches: here is the station, and from this station to the next is so many miles. Note the time we leave this station and when we arrive at the other, so that you will know the rate of speed at which you have gone." I instructed the conductor to the tell the engineer that I wished to go over that piece of the road at 50 miles an hour, and they made a little better time than that. The tumbler was still standing and but little water had been spilt.... and the commissioners all laughed and said that was the strongest proof that had been given. They did not ask for any more; did not want to get out and look at the culverts.
Another connection I made with recent news is Grant's election as the first national example of black votes being viewed as an "illegitimate" path to victory.
A lot of the book is told from Grenville Dodge's point of view--- probably because he has many extant letters--- and while he has lots of scathing remarks about Durant's profit-seeking maneuvers he sees nothing out of line about scouting for coal and staking claims to sell back to the railroad employing him. In another modern connection, the initial Pacific Railroad act of 1862 was immediately lobbied into better shape (for the railroads) in 1864 and modified again in 1866. The same strategy of "get something passed, then complain about how bad it is" seems quite familiar today too. On the other hand, some of the pre-SEC financial maneuvers are quite odd.
Overall, my re-read of "Empire Express" is a lot more depressing that I remember. There's really a lot of genocide, fraud, and incompetence. I sure miss the radical Republicans' support for railroads, though.
ETA: I totally forgot one! Theodore Judah totally tried to croudsource the Pacific railroad $10 at a time (as a first payment on a $100 share.) He ran into Collis Huntington who convinced him to do it with just five backers at $1,500 each.
|Monday, June 23rd, 2014|
|Why Mark is a Computer Scientist at Heart
So, I came across a question on Quora about showing that no reversible two-bit gates are universal. (NAND is universal for boolean logic but not reversible!)
My first thought was the CS one: well, how many 3-bit reversible functions are there? We could probably just do exhaustive search on combinations of two-bit gates and exhaust the space, there are far less than 8^8 reversible functions and that's only 16 million. (Hmm... how many are there? Must be something like 8! since each output must appear once and only once, so a reversible function is a permutation of the identity function.)
But the mathematical answer is the one I had to look up. All the 2-bit reversible functions are binary. That is, they are of the form f(x,y)=M(x,y)+(a,b) for some 2x2 matrix M. And the composition of linear transformations is always linear. But you can come up with a nonlinear 3-bit reversible binary function. (The Toffoli gate, which *is* universal, is one of them.)
If given enough time, I could probably come up with the second answer. But the first one is a lot more fun. :)
|Tuesday, June 17th, 2014|
|Who Knew Railroads == Better Tea?
I am re-reading "Empire Express", about the building of the Transcontinental Railroad. One of the proposals in the 1830s came from Dr. Harwell Carver of St. Louis (who really seems to be an also-ran who claimed that he came up with the idea after somebody else got famous for it):
The quality of teas would be much better coming to us in a few weeks of gathering. I suppose the flavor and quality of our teas now bear no comparison to what it would if brought directly to us, without crossing the equator twice. Methinks I can look forward, through the vista of time, and see countless thousands of our fair country women sitting of an afternoon leisurely sipping and drinking their tea, until they become intoxicated with the sweet aroma of this delicious beverage and cry out, in sweet and musical accents, blessed be God, and the projectors and builders of the Oregon railroad, now and forever, amen.
...Perhaps my tea just isn't fresh enough.
|Saturday, June 7th, 2014|
|Bad Analogy Night at the Orchestra
From the program notes for the Mozart symphonies we heard tonight:
No less impressive is their diversity, and the clarity with which, in three quite different directions, they define the possibilities of Mozart's art. Eric Blom puts it thus: "It is as though the same man had written Shakespeare's Twelfth Night, Racine's Phedre, and Goethe's Iphigenie within whatever period may be equivalent for the rapid execution of three plays as compared to three symphonies." -- Michael Steinberg
No, Mr. Blom, it's not like that at all, and please research your analogies beforehand. "It's as if he ran a hundred-yard dash in however would be very fast for that particular race!"
Mozart was the Shakespeare of music; and as long as the immortal bard is read, Mozart will live in the admiration of mankind. He has reached the passions through the ear as Shakespeare did through the mind... -- New-York Mirror, 1830
I'm pretty sure Shakespeare also reached the passions through the ear (and sight!) Perhaps my education is lacking.
Metaphors. I hear they're really bad for you.
|Tuesday, June 3rd, 2014|
|Saturday, May 31st, 2014|
|A brick-and-mortar distributed systems problem
On Friday we climbed to the top of the Witch's Hat Water Tower
. It's an old water tower (preserved as a area landmark and historic place
) whose observation deck is only open once a year.
The top of the tower is reached via an internal spiral staircase which is rather narrow. The tower guides had arranged a system for tracking the number of people in the tower--- they handed blue notecards to those going up and retrieved them from those exiting the tower, thereby limiting the occupancy. But, this still led to congestion on the stairs as groups traveling in opposite directions had to squeeze by each other. Is it possible to come up with a system which also limits the number of people using the staircase in opposite directions? Without cheating by giving the guides mobile phones to communicate. :)
Time-based multiplexing is a common technique. Allow upward traffic for 5 minutes, then downward traffic for the next five minutes.
The token-based approach could also be expanded in a couple ways. For example, use two colors of tokens. Allow a group of people to start upwards but give the last person in the group a special red token. Block all other ascending traffic until the red token returns. When the red token gets to the top, collect it from the carrier and permit a group to begin going downwards, again giving the red token to the last person waiting to go down.
Now, there may be some psychological issues here where people might not appreciate being told to wait to leave the tower! But the guide was already doing a rough-and-ready contention control on the top portion of the stairs.
|Thursday, May 22nd, 2014|
20 question for Donald Knuth
, of which I found Robert Tarjan's the most interesting. Knuth's response (in part):
In general I'm looking for more focus on algorithms that work fast with respect to problems whose size, n, is feasible. Most of today's literature is devoted to algorithms that are asymptotically great, but they are helpful only when n exceeds the size of the universe...
For instance, I've been reading about algorithms that decide whether or not a given graph G belongs to a certain class. Is G, say, chordal? You and others discovered some great algorithms for the chordality and minimum fillin problems, early on, and an enormous number of extremely ingenious procedures have subsequently been developed for characterizing the graphs of other classes. But I've been surprised to discover that very few of these newer algorithms have actually been implemented. They exist only on paper, and often with details only sketched.
I was annoyed at the recent New Scientist article making the rounds about a "proof" of how computers couldn't be conscious under Integrated Information Theory, so I'm glad Scott Aaronson took the time to show why IIT is bunk
and saved me some ranting.
My company announced support for storing Hyper-V VMs on the Tintri VMstore
bringing our total number of supported hypervisors to three, perilously close to the maximum possible. :) Only Openstack and Xen to go (well, and perhaps a few other KVM variants.) Chris Wahl posted a great review of Tintri at "Tom's IT Pro"
.Bruce Schneier points out that the NSA is not magic.
We've seen a lot of standard hacks carried out at industrial scale, or from privileged positions within the network, but not an Enigma-scale (or, well, Magic
) breakthrough. I'm not sure this is cause for optimism; rather, it speaks poorly about the state of communications security that the NSA doesn't need such breakthroughs to do its job.
And, finally, one of my own pieces of writing on Quora: What mathematical functions can convert multiplication to summation
? The previous answers were mainly literal-minded "only logarithms work among continuous functions" references rather than coming up with something that might be more interesting to somebody that's curious, like non-logarithmic slide rules.
|Wednesday, May 14th, 2014|
I fixed a bug this week which involved a subtle distinction in the behavior of
int f = open( filename, O_RDONLY );
fchmod( f, permissions );
chmod( filename, permission );
Can you guess what situations the latter handles that the open()/fchmod() combination does not?( SpoilersCollapse )
|Sunday, May 11th, 2014|
Both of the conductors I had at Gustavus are retiring this year. Doug Nimmo led the concert band ("Gustavus Band", now "Gustavus Wind Orchestra") for 27 years, and Steve Wright conducted the jazz bands for 24. I played alto saxophone for four years in the Gustavus Band and three (I think?) in the jazz bands.
The Wind Orchestra (which I found out to my horror is pronounced "gee-woh" by Dr. Nimmo) performed their spring concert today and made it a celebration for both professors. Dr. Wright composed and soloed in one of the pieces.
It was a rather emotional event for me. Two of the pieces performed were ones I had played. The first was David Holsinger's "Symphonia Resurrectus" (the third movement of his Easter Symphony); Gustavus commissioned it and I played in the premiere in 1995. It's one of the few times in college that my parents got to hear the Gustavus Band--- they made a special trip across Wisconsin. (The only other occasion, I think, was my graduation, although when the band toured Grand Rapids much of my family who lived there attended.) The piece requires a large vocal contingent (miked to compete with the instruments!) which meant that the concert had to be held in Christ Chapel instead of the usual concert hall.
Dr. Nimmo's conducting style hasn't changed much in the 17 years since I graduated, but I would be surprised if it has. :) He will signal sometimes with a hand held close to his body. But because we were seated on the side due to the chapel arrangement, I had a clear view of what he was doing. Here's the only picture I tried taking:
The second piece is an arrangement of the hymn "Nearer My God to Thee". Dr. Nimmo told the story of our Eastern European tour stop in Stara Tura, Slovokia
in January 1998. It's a small town and we played in the Lutheran church that evening. (It may be the same church shown in the Wikipedia entry.) The residents packed it full to overflowing, sitting even on the steps leading up the balcony. One of the staff members accompanying us had to sit on the organ bench next to Dr. David Fienen, the Gustavus organist who was part of our tour. We played "Nearer My God To Thee" in conjunction with a piece called "Heroes Lost and Fallen" by David Gillingham
. At the conclusion of our concert, the pastor (through a translator) interrupted us before the encore and said that while he knew we probably had another piece prepared, that hymn had a special meaning to the church--- they sang it at every funeral--- and could we please play it again? Since then, "Nearer My God To Thee" has been used to conclude every Gustavus Band and Gustavus Wind Orchestra concert tour.
But in addition to Dr. Wright's piece there was another new composition, a Jack Stamp piece called "Roulette's Deception", commissioned by a couple of Gustavus alums for the concert. I thought this was a fitting celebration of Dr. Nimmo's tenure at Gustavus--- he introduced us as students to a lot of new works. Some we performed, some we just played once or twice in the practice sessions. But it was fitting that the final GWO concert for Dr. Nimmo included new music, not just familiar favorites (and since it is many students' final concert as well, it did not rob them of the chance to had the same sort of experiences I did.)
Dr. Nimmo did pick a Sousa march (and told a story about being excoriated in the Grand Rapids newspaper for a tour concert that did not include any Sousa.) It was "The White Rose"--- not one I'd played--- but one with a Gustavus connection because it includes a percussion interlude arranged by a Gustavus student (in the 80's) which has been copied and used by other concert bands, after Dr. Nimmo lent the music out.
Between a couple of the pieces, Dr. Nimmo talked about the history of the ensemble going back to the first concert tour in 1882 (by train and horse-drawn carriages!), to the 1941 tour with Percy Grainger. He asked former members of the Gustavus Band and Wind Orchestra to stand. Unsurprisingly, there was more representation from the younger cohort--- I didn't see anybody I recognized. (But I didn't stay around afterwards to see if anybody recognized me, either.)
I was more than a little nonplussed when Jack Ohle, the outgoing Gustavus president, got up to make a speech thanking the directors and others. I felt he said some things that were unnecessary and exclusionary. It's definitely considerate to thank the conductors' wives, but he should have done so in a way that did not suggest single faculty could not do as good a job.
I am very happy to have gone. To this day I listen
differently because of my experience as a performer in Dr. Nimmo's and Dr. Wright's ensembles. I definitely reached my peak as a musician during those years; I have not since put the time and energy into practice and performance that's necessary to sustain excellence. But I feel like I am a different person for the time I spent in the Gustavus Band and the Gustavus Jazz Lab Band, and I will always be grateful that I had those opportunities.