Profile

Cover photo
Paul Brauner
Works at Google
Attended INPL
Lives in Zürich
544,464 views
AboutPostsPhotos

Stream

Paul Brauner

Shared publicly  - 
 
Check out the "privacy check up": it groups everything privacy-related accross Google products into a series of checkboxes.
 
Introducing My Account. Take control of your data, protect your privacy, and customize how Google works for you — all in one place. Go to goo.gl/vays2s
4

Paul Brauner

Shared publicly  - 
 
A chrome extensions that shows up a new painting everyday when opening a new tab. I've used it for the last weeks and I really enjoy it.
 
Starting today, discover a new way of browsing with the new Google Art Project extension that treats you to a beautiful work of art each time you open a new browser tab in +Google Chrome. See masterpieces by Van Gogh, Monet, Degas and other iconic artists from museums around the world throughout your day: g.co/artprojectextension
11
3
Carlos Reynosa's profile photoDavid Jeames's profile photo

Paul Brauner

Shared publicly  - 
17
1
Lucie Balland's profile photo

Paul Brauner

Announcements  - 
 
Meant to share this with this community in the first place but I mixed it up with my Dartisans circle.
Paul Brauner originally shared:
 
Couldn't find a priority queue in Dart so I wrote http://pub.dartlang.org/packages/priority_queue. It comes with two example files, extensive tests, and some dartdoc for every method. Feedback and pull requests welcome!

By the way +Seth Ladd, I tried to change your A-Star lib to use it instead of a list + linear find min. Turns out it scores slightly worse on the benchmarks, but if you increase the size of the mazes used in the benchmarks then you get some speedup (I've observed a 2x speedup on 200x200 maps or so if I remember correctly).
10
2
Paul Brauner's profile photoPavel Petrochenko's profile photoAdam Singer's profile photoTriston Xu's profile photo
7 comments
 
Thanks a lot, looking . :-)
Add a comment...

Paul Brauner

Announcements  - 
 
Oh no! https://code.google.com/p/dart/source/detail?r=27613 broke http://pub.dartlang.org/packages/parsers. It's fixed now (v 0.13.5) but you might have to fix your code too if you were a user of the library.

Most likely you'll have to change:

foo() => bar > baz
             | qux;

to:

foo() => (bar > baz)
             | qux;
3
1
Adam Singer's profile photo
Add a comment...

Paul Brauner

Announcements  - 
 
Thanks to http://www.dartlang.org/tools/editor/build.html I've added support for http://demo.adts.googlecode.com/git/main.html in the Dart editor.

It was super easy and everything's working fine, even error reporting!

I pushed the changes to the online git repository but I haven't uploaded the package to pub.dartlang.org yet.
9
1
George Moschovitis's profile photoErlantz Oniga Ouro's profile photo
 
cool stuff!
Add a comment...

Communities

7 communities

Paul Brauner

Shared publicly  - 
 
Something I've been waiting for for a long time!
 
Introducing Google+ Collections, a new way to group your posts by topic

Our happiest Google+ users are those who connect with others around shared interests and passions. So we set out to give people a place to express the things they love. Today, we’re announcing Google+ Collections, a new way to group your posts by topic.

Every collection is a focused set of posts on a particular topic, providing an easy way for you to organize all the things you’re into. Each collection can be shared publicly, privately, or with a custom set of people. Once you create your first collection, your profile will display a new tab where other people can find and follow your collections.

Posts in collections you follow will appear in your Home stream, with a link to easily jump right into the collection so you can get to similar content from that author. Collections give you a great way to find more of the stuff you love from the people you follow.

Collections is available on Android and the web, and iOS is coming later. For Android users, make sure to update your Google+ app to get access to Collections.

For inspiration on interesting topics, check out our Featured Collections page here: g.co/collections

Create your collections today and share what you love.

Edit : Have questions about Collections?  Join this community for Help, Tips & Tricks : http://goo.gl/meRk8j
1

Paul Brauner

Announcements  - 
 
I've finally written some documentation for my pretty library! Here it is: http://polux.github.io/pretty_demo/web/pretty_demo.html. For the impatients, have a look at the bottom of the page for an interactive demo of a JSON pretty-printer.

(Library is available on pub at  https://pub.dartlang.org/packages/pretty).

See +Kevin Millikin, the README didn't lie after all, more documentation was really underway :)
package:pretty. The pretty package exports one class: Document . A document can be seen as a set of different layouts for the same text. Calling render(n) on a document picks the best of its layouts that fit in n columns. doc.render(80); // tries to fit doc in 80 columns ...
13
3
Paul Brauner's profile photoKevin Millikin's profile photoAdam Singer's profile photo
2 comments
 
Thanks :)
Add a comment...

Paul Brauner

Announcements  - 
 
Something I've been playing with: an interpreter for a multi-stage version of Dart.

Multi-stage programming is like programming with backquote, comma and eval in scheme except that variables occuring in quoted expression are statically bound, as in MetaML [1]. Code is quoted with <expr>, spliced with ~expr and run with run(expr).

Multi-stage allows for the specialization of functions. For instance, in the linked example (it's an interactive demo, you can play with it), the spow method is an annotated version of the pow method which allows for specialization of its second argument. The scube method specializes it for n = 3. You can see in the output that it evaluates to (x) => x*x*x*1, and not (x) => pow(x, 3) as the cube method (the partial application of pow to 3) does. Imagine a program where scube is used many times: it's a net win over cube!

The language of the demo is a very small, purely functional and strict subset of Dart.

Of course the whole thing is written in Dart :)

[1]: http://www.cs.rice.edu/~taha/MSP/
class Arith { Arith(); // the power function pow(x, e) => e.eq(0) ? 1 : x.times(this.pow(x, e.minus(1))); // partial application of pow for n = 3 cube() => (y) => this.pow(y, 3); // the same function, annotated for multi-stage execution spow(x, e) => e.eq(0) ? <1> : <(~x).times(~this.spow(x, ...
9
3
Justin Fagnani's profile photoTomochika Hara's profile photoPaul Brauner's profile photoOn Dart's profile photo
4 comments
 
Another fun example: specializing "contains" for a certain list: https://gist.github.com/polux/8021388
Add a comment...

Paul Brauner

Announcements  - 
20
2
Paul Brauner's profile photoAdam Singer's profile photoOn Dart's profile photo
 
That's actually my libs. I'll also upload my apps, but it will take some time.
Add a comment...

Paul Brauner

Announcements  - 
 
This evening's project: pretty-printing combinators. Consider this an alpha release for now.
pretty - A sample command-line application
7
1
Paul Brauner's profile photoRafael Brandão's profile photoCREW HARMONY : UTOPIA / EDEN's profile photo
9 comments
 
I forked your repo, added some functionality and made a pull request.
Add a comment...

Paul Brauner

Discussion  - 
 
New version uploaded to pub :)
Paul Brauner originally shared:
 
Computer science for the win!

Last year I ported +Jonas Almström Duregård's testing-feat library to Dart. Some function was stack-overflowing on big values so I replaced it by some small hand-made stack machine.

This week I was reading +Olivier Danvy and +Lasse Reichstein's "defunctionalization at work" and tried to apply CPS tranform + defunctionalization to the original function. Result: 1.5x speedup!

(There's even a 1.75x speedup if I turn the if-then-else into switch-cases on tags as I do in later commits but I could have done that before so that would be an unfair comparison.) 
7
2
Adam Singer's profile photoOn Dart's profile photo
Add a comment...
Communities
7 communities
Story
Tagline
Programming Languages Nerd
Introduction
I work at Google, love functional programming, cheese, music, movies so bad they're good and I live in Switzerland.

Please note that the opinions/facts presented do not necessarily reflect the opinion/views of my employer and affiliated groups.
Education
  • INPL
    Computer Science, 2006 - 2010
  • Telecom Nancy (ESIAL)
    Computer Engineering, 2003 - 2006
Basic Information
Gender
Male
Other names
Polux
Collections Paul is following
Work
Occupation
Software Engineer
Skills
Computer Science, Programming
Employment
  • Google
    Engineer, 2011 - present
  • Rice University
    Post Doc, 2010 - 2011
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Zürich
Previously
Lunéville - Nancy - Bordeaux - Halmstad - Houston