Profile

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

Stream

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
77 comments on original post
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...

Paul Brauner

Discussion  - 
 
Not sure this is the right community but it is somehow related to G+ sign-in and I couldn't find a better community so I'll give it a try.

I have a web app which submits score updates and achievement unlocks to the Google Play Game Services. As a user of the web app, is there a way I can consult the leaderboard and/or my score and if yes, where?

On android and ios there seem to be a way to display a leaderboard but I didn't find anything similar for a web app. Also, I don't know how to programatically query the state of the leaderboard so I can't display it myself.
7
1
Gerwin Sturm's profile photoPaul Brauner's profile photoTodd Kerpelman's profile photoElsa Bernardi's profile photo
8 comments
 
Yep, Gerwin's right in that there's no pre-canned way of displaying these leaderboards in a web application. You gotta rely on your own JavaScript / CSS skills.

I'd go and open-source my own fancy widget if I could, but if you've seen the sample apps, you know how good my artistic skills are...
Add a comment...

Communities

7 communities
 
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 ...
14
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
8
1
Adam Singer's profile photoPaul 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...

Paul Brauner

Discussion  - 
 
This question is about Google Play Game Services. Again, if there's a better place to ask please redirect me there.

Test users' scores for my game keep disappearing from the all time leaderboard (something like every 24 hours). Is it some expected behavior of test users or am I doing something wrong? (Or is it a bug?)

By test users I mean the users declared in the TESTING ACCESS section of the TESTING tab of the developer console. My application has not been published yet.

Also, I'm only using the web API.
1
Abraham Williams's profile photoPaul Brauner's profile photo
2 comments
 
I know, I couldn't find any help either. Since you sign-up with Google+ sign-in for game services this community was the closest I could come-up with. Also I did ask a question about it some days ago in the same community and got a response.
Add a comment...
Communities
7 communities
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
Story
Tagline
PL 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.
Bragging rights
I have filled ALL the fields of my Google profile.
Education
  • INPL
    Computer Science, 2006 - 2010
  • Telecom Nancy (ESIAL)
    Computer Engineering, 2003 - 2006
Basic Information
Gender
Male
Other names
Polux