Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
people:jfabry [2014/01/22 09:09] – [Projects] jfabrypeople:jfabry [2016/11/25 16:06] – [Prof. Dr. Johan Fabry] jfabry
Line 1: Line 1:
-   {{people:jfabry.jpg?100|Johan Fabry}}    || +====== Prof. Dr. Johan Fabry ====== 
-|  **Johan Fabry**  || + 
-| @johanfabry on Twitter | dcc.uchile.cl@jfabry (if you swap sides) | +| {{people:jfabry.png?100|Johan Fabry}}| @johanfabry on Twitter | dcc.uchile.cl@jfabry (if you swap sides) | 
-| Assistant Professor |   Blanco Encalada 2120of.311 | +| ::: | Assistant Professor |   Beauchef 851Edificio norte oficina 311 | 
-| [[http://pleiad.dcc.uchile.cl/|PLEIAD Lab]] |  Santiago, Chile | +| ::: | [[http://pleiad.dcc.uchile.cl/|PLEIAD]] and [[http://rych.dcc.uchile.cl/|RyCh]] labs |  Santiago, Chile | 
-| [[http://www.dcc.uchile.cl/|Computer Science Department (DCC)]] |  phone: +56 2 978 49 75| +| ::: | [[http://www.dcc.uchile.cl/|Computer Science Department (DCC)]] |  phone: +56 2 978 49 75| 
-| [[http://www.uchile.cl|University of Chile]]|  fax: +56 2 689 55 31|+| ::: | [[http://www.uchile.cl|University of Chile]]|  fax: +56 2 689 55 31
 + 
 +=== Quick links: === 
 + 
 +^ Author page |   Publication list is below.     [[http://scholar.google.com/citations?user=Kw-9h4AAAAAJ&hl=en|Google Scholar]]     [[http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/f/Fabry:Johan.html|DBLP]]  |   [[http://dl.acm.org/author_page.cfm?id=81331491810|ACM]]   | 
 +^ Software |   [[research:software:LRP|Live Robot Programming]]     [[research:software:AspectMaps]]     [[research:software:PHANtom]]     [[https://github.com/jfabry|GitHub ]]   | 
 +^ Curricula |   [[http://www.dcc.uchile.cl/~jfabry/Brief%20CV%20Johan%20Fabry.pdf|Brief curriculum]]   ||   [[http://www.dcc.uchile.cl/~jfabry/Full%20Academic%20CV%20Johan%20Fabry.pdf|Full Academic Curriculum]]   |
  
 ===== Short Research Description ===== ===== Short Research Description =====
  
-I work in the field of programming languages and software engineering. More specifically in the area of advanced forms of modularization (usually aspects, but I also consider metaprogramming, generative programming, ...). The overall focus of my work is guided by the following observation: In my experience, we as programming language researchers easily fall in the pit of making ever more powerful languages, with cool, powerful and complex features. This however comes at the cost that **the  programmer needs to be able to understand and apply these features correctly**. +I work in the field of programming languages and software engineering. More specifically in the area of advanced forms of modularization and domain-specific languages. The overall focus of my work is guided by the following observation: In my experience, we as programming language researchers easily fall in the pit of making ever more powerful languages, with cool, powerful and complex features. This however comes at the cost that **the  programmer needs to be able to understand and apply these features correctly**. 
  
-To restate this as the problem on which I focus: **How can we, as programming language researchers, help the programmer to use these cool language features we create?** +To restate this as the problem on which I focus: **How can we, as programming language researchers, help the programmer to correctly use these cool language features we create?**  
 + 
 +++++ Past and Present Work |
  
 My first research work was applied in the domain of distributed systems, trying to achieve a better modularization of cross-cutting concerns. I focused not on middleware but either on client applications that use middleware, or settings where the services are not provided by the middleware. For the former, the example case is the use of advanced transaction management and aspects. For the latter, an example I investigated is support for network disconnection and disconnection in an ambient intelligence setting, using generative programming. The ultimate goals were domain-specific languages or language extensions that provided a relatively easy way for the programmer to specify the above. My first research work was applied in the domain of distributed systems, trying to achieve a better modularization of cross-cutting concerns. I focused not on middleware but either on client applications that use middleware, or settings where the services are not provided by the middleware. For the former, the example case is the use of advanced transaction management and aspects. For the latter, an example I investigated is support for network disconnection and disconnection in an ambient intelligence setting, using generative programming. The ultimate goals were domain-specific languages or language extensions that provided a relatively easy way for the programmer to specify the above.
Line 19: Line 27:
 Thirdly, I provided a visualisation for AOP programs: [[/research/software/AspectMaps|AspectMaps]], which provides valuable information to the programmer about the cross-cutting nature of the AOP code.  Thirdly, I provided a visualisation for AOP programs: [[/research/software/AspectMaps|AspectMaps]], which provides valuable information to the programmer about the cross-cutting nature of the AOP code. 
  
-Currently, I am starting to focus on the step from design to implementation: when implementing an application and using aspects, how can the design document give maximum guidance to the developer? This such that the programmer is not faced with significant ambiguities on how to implement the aspectual nature of the software, and that the design document uses as much the specific features of the aspect language as possible. As a result the programmer should not need to improvise, and external traceability can be maintained.+Fourthly, I have focused on the step from design to implementation: when implementing an application and using aspects, how can the design document give maximum guidance to the developer? This such that the programmer is not faced with significant ambiguities on how to implement the aspectual nature of the software, and that the design document uses as much the specific features of the aspect language as possible. As a result the programmer should not need to improvise, and external traceability can be maintained.
  
-Moreover I am part of the effort of the [[http://www.dcc.uchile.cl|DCC]] to set up a robotics lab, and am focusing on helping the robot developer to specify the overall behavior of the robot. This is done through a programming language that integrates with [[http://www.ros.org|ROS]] to use existing sensor and actuator software, and provides the right abstractions for themsuch that behavior can more easily be specified+I am a founding member of the [[http://rych.dcc.uchile.cl|DCC robotics lab]]. First I am focusing on helping the robot developer to specify the overall behavior of the robot. This is done through [[http://pleiad.cl/LRP|LRP]] live programming language for robotics behavior programming. Second I am working on studying the [[http://www.ros.org|ROS]] software ecosystemaround the de-facto standard robotics middleware ROSto find areas of low code quality and means to improve this code. 
 + 
 +++++
  
 ===== Teaching, Student resources ===== ===== Teaching, Student resources =====
  
 I teach the following courses I teach the following courses
-  * [[https://wiki.dcc.uchile.cl/TallerMindstorms/doku.php|Taller de Proyecto (EI2xxx)]]  +  * [[http://rych.dcc.uchile.cl|Taller de ingenieria de software pare Robots (CC5407) 
-  * [[teaching:CC71P|Objects and Aspects (CC71P)]] +  * [[https://wiki.dcc.uchile.cl/TallerMindstorms/doku.php|Taller de Proyecto (EI2001-x)]]  
-  *  Not since 2011: [[teaching:CC4301| Arquitectura de Computadores (CC4301)]] ex. Introducción al Hardware (CC41C)+  * Not since 2013:[[teaching:CC71P|Objects and Aspects (CC71P)]] 
 +  * Not since 2011: [[teaching:CC4301| Arquitectura de Computadores (CC4301)]] ex. Introducción al Hardware (CC41C)
  
 Here are some resources of use for students, useful even at undergraduate level! Here are some resources of use for students, useful even at undergraduate level!
Line 34: Line 45:
   * If you need to make a presentation, have a look at my [[people/jfabry/presentation tips]]   * If you need to make a presentation, have a look at my [[people/jfabry/presentation tips]]
   * I also have some [[people/jfabry/writing tips]] for when writing a paper, report, thesis ...    * I also have some [[people/jfabry/writing tips]] for when writing a paper, report, thesis ... 
- 
-===== Projects ===== 
- 
-I am currently involved in the following projects: 
- 
-  * FONDECYT Project #1110051 - Modular and Adaptable Software without Losing Control. Co-investigator. (2011-2014) 
-  * FONDECYT Project #1130253 - Extending AOM with Advanced AOP and D&I Support. Investigator. (2013 - 2015) 
-  * [[research:PLOMO2]]: Customizable Tools and Infrastructure for Software Development and Maintenance, INRIA Associated Team with RMOD team of INRIA Lille. (2014-2016) 
  
 ===== Recent Publications ===== ===== Recent Publications =====
  
-Author page at [[http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/f/Fabry:Johan.html|DBLP]], [[http://dl.acm.org/author_page.cfm?id=81331491810|ACM]], [[http://scholar.google.com/citations?user=Kw-9h4AAAAAJ&hl=en|Google Scholar]] 
 ==== Free ACM downloads ==== ==== Free ACM downloads ====
  
 Thanks to the ACM Author-Izer service (an ugly name for sure) you can  download the following articles for free from the ACM Digital Library. If the text between each article sais something like **unauthorized link specified**, go here http://pleiad.cl/people/jfabry and try again from there. Thanks to the ACM Author-Izer service (an ugly name for sure) you can  download the following articles for free from the ACM Digital Library. If the text between each article sais something like **unauthorized link specified**, go here http://pleiad.cl/people/jfabry and try again from there.
 +
 +++++ ACM Publication Free Download List |
  
 <html> <html>
Line 98: Line 102:
 </html> </html>
  
 +++++
 ==== Full List ==== ==== Full List ====