Timer/Stopwatch design for iPad

iOS Simulator Screen shot Sep 15, 2013 9.50.53 PM

iOS Simulator Screen shot Sep 15, 2013 9.47.39 PM

As for iPad, users can swipe to their desired timing widget during the presentation.

A latest beta-test version has been uploaded to testflight. As a reminder, if you want to volunteer to beta-test the app, there is the link to go: https://docs.google.com/forms/d/1XXpZWnPoIZEsyVG9Q-9TuvinjvjtuzeirEFY0WwRrJA/viewform. All your help&feedback are appreciated!

Cheers,
Siqi

OCaml, a first glance at functional programming

First impression with Ocaml : powerful, elegant when you know what you are writing about, and bizarre. But that’s opens up a new experience.

let rec concat =
  fun l1 ->
  fun l2 ->
  match (l1, l2) with
    (t1::r1, l) -> t1::(concat r1 l)
    | (l, []) -> l
    | ([], l) -> l;;

let rec map =
  fun f ->
  fun l ->
  match (l) with
    | (t::r) -> (f t)::(map f r)
    | [] -> [];;

let rec partition =
  fun l ->
  match l with
    | (t::r) -> concat (map (fun x -> t::x) (partition r) ) (partition r)
    | (t) -> [t];;

And this gives you all possible partitions of an ensemble.
Like:

# partition [3;4;5];;
- : int list list = [[3; 4; 5]; [3; 4]; [3; 5]; [3]; [4; 5]; [4]; [5]; []]

And here comes the countdown timer for iOS remote control!

 

ImageImage

 

As pointed out previously by Mirek, a countdown timer might be useful for presenters. After going through various design mock-ups, here is the one that got adopted. 

When the sidebar is revealed, users can swipe on the first cell to switch from a stopWatch to Timer. And whichever is on top will take the ownership of the “00:00:00” in the navbar and show the time left/seconds passed accordingly.

The switching between timer/stopwatch is paged, it always lands on one of the two blocs. Also, the cell section title got “Pushed away” and the navigation dots reflect the currently activated block as well on each switch. 

This only works for iPhone for now, I will work on the iPad version in a day or two. 

The “pencil down” day is approaching, so is the LibO conference, so excited that I got something that works now ^^

As always, let me know what you think in terms of the new design. I will push it to beta-test once I finish the iPad version (as most of the beta-testers are on their iPads :P)

Cheers, 

Siqi

[GSOC] How-to guide for iOS remote app

Hi all,

The iOS remote control app now features an in-app How-to guide

On first launch, a pop-up will take users to an array of screenshots which will guide users through the connection/pairing/control stages of the app.

Also, the documentation is updated to the current version, which includes recently added commands. Android app may also consider adding these functionalities to the existing app:

# As of gsoc2013, these commands are extended to the existing protocol, since server-end are tolerant with unknown commands, these extensions doesn't break backward compatibility
* pointer_started // create a red dot on screen at initial position (x,y)
initial_x // This should be called when user first touch the screen
initial_y // note that x, y are in percentage (from 0.0 to 1.0) with respect to the slideshow size
* pointer_dismissed // This dismiss the pointer red dot on screen, should be called when user stop touching screen
* pointer_coordination // This update pointer's position to current (x,y)
current_x // note that x, y are in percentage (from 0.0 to 1.0) with respect to the slideshow size
current_y // unless screenupdater's perfomance is significantly improved, we should consider limit the update frequency on the
// remote-end
# As of gsoc2013, these commands are extended to the existing protocol, since remote-end also ignore all unknown commands (which is the case of gsoc2012 android implementation), backward compatibility is kept.
* slideshow_info // once paired, the server-end will send back the title of the current presentation
Title