Outils

Réseau social d’entreprise

Web Visualisation

  • GraphDracula
    • http://www.graphdracula.net/
  • GraphVIZ
    • http://graphviz.it/#/gallery/shells.gv
    • https://github.com/mstefaniuk/graph-viz-d3-js
  • D3js
    • http://d3js.org/

Ressources

Voici quelques blogs où l’on peut trouver des ressources intéressantes, et pas que du Java :

Questions bouquins :

JPA JoinColumn vs MappedBy

Extrait la page : http://stackoverflow.com/questions/11938253/jpa-joincolumn-vs-mappedby

@JoinColumn could be used on both sides of the relationship. The question was about using @JoinColumn on the @OneToMany side (rare case). And the point here is in physical information location.

According to documentation:

Since many to one are (almost) always the owner side of a bidirectional relationship in the JPA spec, the one to many association is annotated by @OneToMany(mappedBy=…)

@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set getSoldiers() {
...
}

@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk")
public Troop getTroop() {
...
}

Troop has a bidirectional one to many relationship with Soldier through the troop property. You don’t have to (must not) define any physical mapping in the mappedBy side.

To map a bidirectional one to many, with the one-to-many side as the owning side, you have to remove the mappedBy element and set the many to one @JoinColumn as insertable and updatable to false. This solution is not optimized and will produce some additional UPDATE statements.

@Entity
public class Troop {
@OneToMany
@JoinColumn(name="troop_fk") //we need to duplicate the physical information
public Set getSoldiers() {
...
}

@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk", insertable=false, updatable=false)
public Troop getTroop() {
...
}

En finir avec Page précédente

<script type="text/javascript">
function disableBackButton(){
window.history.forward();
}
window.onload=disableBackButton;
window.onpageshow = function(event){
if(event.persisted){
disableBackButton();
}
}
window.onunload = function(){
void(0);
}
disableBackButton();
</script>

Une autre façon est de spécifier au navigateur de ne pas stocker d’informations en cache :
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Expires", "0");
response.setDateHeader("Expires", -1);

Livres à lire

Cette liste est détaillée et commentée sur cette page.

  • Managing Humans – Michael Lopp
  • Beeing Geek – Michael Lopp
  • Getting Real –
  • Rework –
  • De la simplicité – John Maeda
  • Getting Things Done – David Allen
  • Practices of an agile developer
  • Gestion de projet agile – Véronique Messager Rota
  • SCRUM
  • Gestion de projet : eXtreme Programming
  • Founders at work
  • L’art de se lancer
  • Business Plan
  • Présentation Zen
  • Public Speaking in an instant

 

Terminal et manipulation de caractères

Supprimer les lignes commençant par #
sed 's/^[#]*//'
Supprimer les commentaires (commençant par #)
sed '/ *#/d; /^ *$/d'
Afficher vers 2 sorties
echo toto 2>&1 |tee migration.log