anchor.diff:  
       return firstName == firstName2 && lastName == lastName2;
     }
  +
  +  /// Filter the passed notice board [entries] by the passed [filterString].
  +  List<NoticeBoardEntry> _filterEntries(List<NoticeBoardEntry> entries, String filterString) {
  +    filterString = filterString.toLowerCase();
  +
  +    return entries
  +        .where((entry) =>
  +            entry.title.toLowerCase().contains(filterString) ||
  +            entry.author.toLowerCase().contains(filterString) ||
  +            entry.content.toLowerCase().contains(filterString))
  +        .toList(growable: false);
  +  }
   }
  
positive.code:           if (snapshot.hasData) {
              List<NoticeBoardEntry> entries = snapshot.data[0];
              List<HMPerson> hmPeople = snapshot.data[1];
  
              sliverList = SliverList(delegate: SliverChildBuilderDelegate(
                (BuildContext context, int index) {
  
negative.code:   /// Future which will provide notice board entries once finished.
    Future _future;
  
    /// Whether to show the search field.
    bool _showSearchField = false;
  
    /// Text controller for the search field.
    TextEditingController _searchFieldController = TextEditingController();
  
    @override
    void initState() {
      super.initState();
  