On May 2nd Chris Strom wrote a message on G+. He was looking for some candidates to try out the new Google Hangouts Remote Desktop while working on Dart.
I decided to give it a try, though I had never done any Dart development prior to this meeting.
This quote gave me enough confidence to send him an email and try this out. Since then I have done more than 5 #pairwithme sessions with him while switching between his machine and mine.Zero Dart experience required. Really :)
Chris Strom
To my surprise the only thing I needed to get started was the Dart Editor and a fork of the ice-code-editor (the JavaScript version is live here ).
The out of the box experience with Dart is excellent. You are up and running in a short period of time and the Dart tutorials are a great material to get you started.
The quality of the remote desktop is great. The latency between screen updates has been very low so the pairing experience has been very pleasant even though I am currenlty in France and Chris is in the U.S.
We did encounter some issues when using each others keyboards. I have an azerty keyboard while Chris has a qwerty one.
There is a dart-mode for emacs. You can do a M-x package-list-packages
, search for dart-mode
, once you have found the package press I
to mark for installation, then press X
to start the package installation.
Chromium
: is available under dart/Chromium/Chromium.app
. Is good to have Chromium running while you are working on your app.DartEditor
: is available under dart/DartEditor.app
. The editor is really easy to work with and is well presented in the Dart Tutorials.dart yourapp.dart
from a command line. The dart
command is available under dart/dart-sdk/bin
you might want to add that to your path.dartanalyzer
does the same work that the DartEditor does when it highlights errors and warning. It is also available under dart/dart-sdk/bin
and is great if you want to use other editors like vim or emacs.Through this pair review sessions we have worked on multiple issues while porting to Dart the ice-code-editor. This is great because you get to see multiple aspects of the language (Unit tests, JS interop, DOM usage). Here are some of the things we went through during these sessions.
DOM manipulation:
We worked on hidding some JS dependencies from the ice-code-editor. It turns out that html manipulation is really smooth.
Take a look:
var script = new ScriptElement();Javascript interoperability:
script.src = "packages/ice_code_editor/ace/ace.js";
document.head.nodes.add(script);
Through these sessions I also learned a lot of things that I didn't expect.
Network emulation in linux:
You can emulate network latency netem as described here.
Emacs commands and lisp expressions for my .emacs:
With the following code on your .emacs you can simply select a region and do a C-x C-;
to comment out a region of code.
;;comment regionIf you want to insert the content of a file into another file, you can perform a
(global-set-key [?\C-x?\C-\;] 'comment-or-uncomment-region)
C-x i
and choose the file you want to insert. Then press Enter
.