Blogs

Introducing Palantir’s first open source releases

We’re big fans of open source. Libraries from Apache, Google, and various projects hosted on SourceForge.net make up a significant fraction of the third-party code we use to build our products. We’re proud to be making our first set of open source releases with these two projects: Cinch and Sysmon. We think it’s the right [...]

Continue reading »

The Palantir Technologies Demo Reel: screenshots, round 3

Software engineering is a craft that blends science and art. This fact is easy to overlook as the artistic aspects are often eclipsed by discussions of the science and technology behind what we do. This is not one of those times: the art in software engineering is most evident when building compelling visual interfaces, something [...]

Continue reading »

Data Model Change Eventing

One of the early architectural challenges that we faced in building the Palantir Finance product was coming up with a good design for firing events from data models to their listeners. There are many different concepts in our product such as charts, portfolios, and indices which are all maintained by different developers. Initially, each developer [...]

Continue reading »

Model-View-Adapter

I used to think I understood MVC. In undergraduate CS programs, MVC is taught as an off-the-shelf pattern, explained once and then ready for use in the real world. Wikipedia also makes it seem pretty simple: Model–View–Controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from [...]

Continue reading »

Time Chooser Components

A montage of our time choosers. (click for webstart demo) The notion of time is central to both of our products at Palantir, and there are many instances in which the user needs to specify a certain point in time. Although there are simple ways to create choosers (you could use a JSpinner that uses [...]

Continue reading »

SwingUtilities.invokeAndWait… doesn’t.

One of the most misunderstood aspects of multithreaded Swing applications is care and feeding of SwingUtilities.invokeAndWait. Hans Muller and Kathy Walrath authored a nice article that includes an overview of when to use invokeLater or its slightly more risky sibling, invokeAndWait. We often use worker threads to do some long-running process, so often run into [...]

Continue reading »

Palantir screenshots in the wild: Swing Sightings

  We recently had a visit from some distinguished guests. Chris Campbell, a member of the Java 2D Team at Sun, came to see demonstrations of the Palantir products. We were very pleased and flattered by his positive reactions to the work that we’ve done.On the basis of that visit, we were added to the [...]

Continue reading »

Stupid fast hyperlinks for Swing

Co-authored by Huey. Most people who’ve done a little preliminary looking online will learn that to create a component that functions like a hyperlink the easiest way is to use a JEditorPane. If you use the HTMLEditorKit you can introduce hyperlinks, they’ll render appropriately, and you can even add a HyperlinkListener. There’s just one drawback. [...]

Continue reading »

Realtime Swing reflections (iTunes ain’t the only kid on the block)!

Check out this reflection magic! Now iTunes isn’t the only one with fancy reflections on album art. The best part about it is that it’s a general use component that doesn’t require customization each time. It can wrap any transparent JComponent and it will automatically repaints whenever the contained component changes. You see the text [...]

Continue reading »

Fully Interactive JTables (aka Mouseover Editing)

What sucks about JTables? Everything, of course—but that’s a developer’s perspective. To the user, cell editing is rough around the edges: when and where to click, and how many times—it’s never perfectly clear. Cells in a table just don’t provide the mouseover feedback that regular components do. If only a JTable behaved like a bunch [...]

Continue reading »

Showing 1-10 of 13