HNHacker News
TopNewBestAskShowJobs

sigmaml

235 karma · joined August 16, 2013

submissionscomments
sigmaml··on Apache PDFBox – A Java PDF Library
I used PDFBox a few weeks ago to dynamically annotate a set of PDFs. The library works well; but it is severely under-documented. Also, the API is asymmetric w.r.t. get/set in several places. After several hours of frustration, I had to look up the PDF specification for constants to set for default appearance, _etc_., and then set them directly in the underlying COSObject dictionary.

Despite a few problems, the library is good. I will certainly use it again.

Edit: I used 2.0.0-RC1.

sigmaml··on Life is Short
> I don't get why you're so upset by it.

Because harsh expressions are usually gratuitous. Because blanket assertions are usually wrong. And, because combining both is rude.

(This applies to parts of PG's essay as well!)

For instance, did you really need to say `Whoa whoa slow down' when you began your reply? Did that add value?

sigmaml··on Life is Short
> I don't have time for bullshit. I don't build my own PCs, I buy Macs.

It is sad - and disgusting - to see this degree of arrogance in bluntly categorising those who use (or build) PCs (and not Macs) as indulging in bullshit!

I am happy that you have found a useful computer in Mac. At the same time, though, please realise that hundreds of millions of computer users choose otherwise too. And, please do not conclude that they have time for bullshit just because of that!

sigmaml··on Google fixes nearly decade-old Linux kernel TCP bug
> I think the frame of reference is the programmer intent.

Sure. However, that is secondary. The sort of mistakes that you mention can be caught during code review or unit testing, completely independently of what the actual user requirement is. This post, evidently, does not involve such a case.

> The code is doing what the programmer intended, even if that is not what the user wanted.

Your perspective appears to be inside-outward. It may be helpful during a performance appraisal, but does the business no good!

Edit: inside-out --> inside-outward.

sigmaml··on Google fixes nearly decade-old Linux kernel TCP bug
> But I agree that code is only a bug if it does not do what was originally intended, if the original design was bad, and the code correctly implemented that bad design, there is no bug.

The frame of reference for determining if something is a bug or not is the requirement specification, not design. If the design incorrectly or inadequately addresses the requirement, that is a bug as well. There isn't much point in rejoicing over the code that correctly implements an incorrect design!

sigmaml··on Removing the 140-character limit from Direct Messages
> if you are swayed by someone's tone or style instead of substance then that speaks ill of you, not the speaker.

Gratuitous arrogance!

Humans have feelings that are impacted by the tone and the style of the other person's communication.

sigmaml··on Impact of adding internationalization to a modern browser-based business application
Thanks for your replies!

We have convinced the customer that it is better to get the English version into production first, get market feedback, get some traction, and then proceed with i18n+l10n.

sigmaml··on Show HN: Drive – a tiny program to pull or push Google Drive files
As one of the users (js-ojus) of `drive`, I can say that it is shaping up nicely! Keep the good work up, odeke-em!
sigmaml··on Show HN: Lavagna, an open-source issue/project management tool
Can those who 'lost' the post at Java describe what makes it 'lose' them? Curious.

Also, is the implication that the merit of the tool is decided based on your personal liking/disliking for the language it is implemented in? That seems childish! If you are responsible for any decent business, dangerous!

sigmaml··on Taking the 'D' Out of CRUD with Soft Updates
During 2004-5, I designed and implemented a K-V object store on the top of BerkeleyDB. It served as the persistence layer for a number of applications my then company developed for regulated industries.

The approach was very similar. The current versions of objects were stored in a set of tables, while old versions were stored in separate tables. In order to reduce bloat, I employed a few fairly simple compression techniques. They were reasonably good. On desktop-class machines with a Pentium processor, 256 MB of RAM and spinning hard disks, searching a million objects completed in single digit seconds.

Later, I added bit-mapped indices with dynamically self-adjusting bucket sizes that were determined based on locally-weighted densities along their respective dimensions. They reduced search time on a million objects to tens of milliseconds, with full history searched.

The obvious downside was that there was no SQL for ad hoc queries! So, a command line shell was provided with Ruby as the language, talking to a C API behind the scenes.

All in all, the system worked and scaled very well.

sigmaml··on A.P.J. Abdul Kalam, nuclear scientist and former president of India, has died
I met him once at a conference in Bengaluru. He was President then.

When it was his turn to speak, he said: ``My staff has written a wonderful script for me to read aloud. You can read it on my Website tomorrow. But now, I shall talk about good R&D, or the lack of it, in India." And he went on to deliver a very inspiring speech.

Great man!

sigmaml··on Plasma Mobile
I agree, and am pleasantly surprised by how well Breeze seems to adapt to a phone interface.

I'm hopeful that Visual Design Group will have polished the UI/UX even better for the phone form factor, by the time the distribution becomes stable.

sigmaml··on Functional Programming in a Dysfunctional World
> People complain about stale data issues in immutable programming styles not because they're more prevalent, but because they can rule out so many other classes of bugs immediately.

This generalisation is too broad (as with almost any generalisation).

In any case, I want to mention one interesting experience -- a very large financial portfolio management system that I worked on, over a decade-and-a-half ago.

The system had multiple in-coming tickers, feeding huge amounts of data. The central data structures of the computational pipeline system were immutable. Initially, there was a very haphazard system for determining when a particular piece of data was to be deemed stale. In time, formal definitions were established. However, the software was not amenable to those definitions, since shared data was not `seen' updating instantaneously.

The core was too big to be changed in any non-trivial manner, without risking the entire business.

We ended up introducing an explicit notion of time into every pipeline processor to ameliorate (not entirely solve) the situation.

Every major design decision has its own trade-offs that are specific to the problem on hand. But, those built into the foundations of the system should be made pragmatically, not by adhering to a philosophy!

sigmaml··on Functional Programming in a Dysfunctional World
I have similar experiences too.

Trying to keep data immutable introduces scenarios involving stale data, and a new problem to solve. I have seen interesting problems with cache coherence that were quite subtle in their manifestations.

Understanding the system-wide implications of immutable-only data is a non-trivial design task.

sigmaml··on Things I've learned about writing software after 12 years
> The root problem is not that people are undisciplined, but that the problem is undefined. > If and when you find a real business idea then you can rewrite the code with the knowledge of what it needs to be genuinely useful.

I have seen several start ups - invested in a few, contracted for several more - of the nature that you describe.

With the benefit of hindsight, what is there so very laudable (thanks Jane Austen) about a culture that does not have a `real business idea', but `rushes to take some investment money and build something'? When you start without a clue of what sustainable value you can provide, most of your problems are invented problems.

Another thing while we are on this topic: it is exceedingly rarely that a start up really loses out because another beat it by a few weeks. Yet, shoddy work is encouraged or condoned in the name of the necessity to move at `Internet speed'.

The `real business idea's of most start ups offer little incremental or differentiating value. The ratio of successful start ups to the unsuccessful ones speaks volumes!

sigmaml··on Things I've learned about writing software after 12 years
> but you're also replacing the engine in flight!

Could you elaborate that, using a mainstream example, please?

> Also the specs on the parts are kind of spotty. ...

Are you referring to the moving parts of the Internet itself?

> There are layers upon layers of abstraction, and no one knows all of it. No one even knows most of it. In fact, most people don't care about any of it other than a cubic centimeter of their own few layers.

This is an invented problem. Scaling a one-off to work for the masses does not require `layers upon layers of abstraction'. Most of those layers are poor engineering backed by a lot money that is thrown at hardware and code maintenance.

One of the realisations that I had over years of `fixing crises', was that increasing numbers of `start up' programmers produce write-only code. Testing and debugging them is painful and expensive, even in the medium-term. Such code bases demonstrate a clear lack of basic engineering discipline. Nonetheless, such programmers are hailed as heroes, because they managed to cobble up a nice-looking mess in a week or two. Then, enormous amounts of effort are poured into making the mess work tolerably. It also consumes phenomenal time.

`Moon landing' projects cannot countdown and blast-off with a great `UX', and then start figuring out how an inertial navigation system should work, over the next week-end.

So, yes that page that `takes so long to load' is indeed `a miracle in proportions that are indescribable'. Only, in a mostly pathetic way!

sigmaml··on The new MacBook
> I shouldn't have to sit around and wait for a 40GB copy to move from one network location to another before I can start another bit of data movement.

KDE and Dolphin send the transfer into the background immediately. You can track the progress in the system tray. Meanwhile, you can begin your next operation.

sigmaml··on The Go Programming Language by Brian W. Kernighan, Alan Donovan
You should, however, note that Go does not have inheritance. That single difference reduces the `crazy stuff' by an order of magnitude. In addition, not having inheritance also means that you do not need to take variance into account, which further reduces the complexity significantly.
sigmaml··on The Go Programming Language by Brian W. Kernighan, Alan Donovan
I documented a real-life experience here: http://oneofmanyworlds.blogspot.in/2014/01/another-go-at-go-....

Read the requirement, elaborate a little more by me in some of the comments, and see how the combinations I had to deal with quickly multiplied to cause high tedium.

sigmaml··on Dependencies and vendoring in Go
> I'm having trouble thinking of a language toolkit that has dependency management built by the core team.

Rust + Cargo.

sigmaml··on Why life is absurd
> ... a sense of hope that life goes beyond a single life span.

That is one of the conjectures propounded by the Upanishads.

sigmaml··on The Software Revolution
I am an Indian, and have always lived in India. And, in several parts of India too!

The problem of caste is certainly visible in multiple aspects of Indian life. However, what you say above is no longer true, even at the level of most villages (where the caste systems work stronger).

The issues of automating jobs and the resulting unemployment in a country like India, are both deeper and broader than your characterization of it.

sigmaml··on Seven deadly sins of talking about “types” (2014)
> "I cannot say that getting upset over people using jokey memes to communicate ideas (Haskell is more likely to be correct after a successful type-check than other langs) is likely to do you much good."

You have, evidently, taken the least-charitable interpretation of GP's post yourself. And, right in the context of a discussion where you were the person to introduce that phrase!

sigmaml··on How Google Inbox shares 70% of its code across Android, iOS, and the Web
I have worked on at least three very large projects that required cross-platform and cross-language compatibility. In all cases, the high-level view is similar to what you wrote above.

In all cases, though, the devil was certainly in the details! APIs, in particular, can surprise and harass the developers.

sigmaml··on Switch default desktop to Gnome
You'd have to acknowledge that it is subjective, though. After using OS X for a few years, I switched back to Kubuntu. The driver was that form was eclipsing function. It was becoming increasingly difficult to make OS X function `my way'. I had to resort to third-party applications for almost everything. That reduced the value of the OS itself to near zero.
sigmaml··on Schizophrenia not a single disease but multiple genetically distinct disorders
Hmm ... what we mean by `exactness' - in physics, for instance - has been changing ever since the advent of quantum mechanics about a hundred years ago.

There are two points to consider: (a) the principle underlying the hypothesis is sound vs. is not, and (b) the computational model of the hypothesis is deterministic vs. probabilistic. These two have to be considered separately when performing an evaluation/verification.

sigmaml··on Google 'discourages' users of old browsers
And, in the same breath, could you also tell me which sites/applications you develop? That will help me avoid them!

This is precisely the kind of developer arrogance that I advise against in my sessions. Catering to a segment of population, or otherwise, should be a carefully-considered `business' decision. If you are making them based on your preference for OS X (or whatever) and your laziness to install a VM, you are actively inflicting harm on your business.

sigmaml··on Google Said to Plan Separating Photo Service From Google+
Should we conclude that complaining about Google products is quite acceptable on HN, but liking them is not? The downvotes given to parent are hard to understand otherwise.
sigmaml··on Java Developers
> More and more developers are stepping back and realising that as a programming paradigm, OO is actually pretty shit.

It is sad to see such strongly-worded blanket statements. The author generalises his experiences with Java to entire OO. He doesn't, unfortunately, seem to realise that non-Java OO does exist.

Also, several lean Java frameworks exist, without deep class hierarchies and factories of factories.

Finally, OO is one of several possible ways to modularise and scale code and teams. FP is another. As languages like Scala have been demonstrating, it is possible to selectively blend features of both in fruitful ways.

sigmaml··on Java Developers
> The key selling point of functional languages is not lambdas, but immutable state and referential transparency.

Not everyone agrees, evidently! In his influential paper, Hughes argues that higher-order functions and laziness are key to functional programming.

← PreviousPage 3 of 4Next →