Archiv für den Monat: Mai 2020

VirtualBox USB Gerät Aktivierung

Wer mit VirtualBox arbeitet und sich eine VM erstellt hat, möchte vielleicht in der VM auf USB zugreifen.

Bei einer Neuinstallation von VirtualBox kann es sein, dass unter USB-Filter hinzufügen keine Einträge vorhanden sind.

Um Einträge in der Liste sichtbar zu machen, musst du zur Gruppe vboxusers gehören. Je nach Betriebssystem nach den Einstellungen den Rechner neu starten.

Restart SSH am Mac macOS

Um den SSH Dienst am Mac nach einer Konfigurationsänderung an der ssh_config oder sshd_config neu zu starten, muss auf der Konsole

 
 sudo launchctl stop com.openssh.sshd
 sudo launchctl start com.openssh.sshd

eingetragen werden.

Ionic 4 Datum der aktuellen Kalenderwoche

Für Filteraufgaben ist es erforderlich das Datum der aktuellen Kalenderwoche zu wissen, um später selektierte Daten an der Oberfläche anzeigen zu können.

Dazu habe ich drei Methoden programmiert, die mir das aktuelle Datum der Kalenderwoche als String zurückgeben.


 currentCalenderWeek(): string {
    this.firstCalenderWeekDay();
    this.lastCalenderWeekDay();
    return this.firstCalenderWeekDay() + this.lastCalenderWeekDay();
  }

Die Methode firstCalenderWeekDay() liefert mir das Startdatum der Woche, was der Montag ist. Dem­ent­spre­chend lastCalenderWeekDay() das Datum des letzten Tag der Kalenderwoche Sonntag.

 
 firstCalenderWeekDay(): string {

    var date = new Date();
    var currentThursday: Date;

    switch (date.getDay()) {
      // Sunday
      case 0:
        currentThursday = new Date(date.getTime() + ((6 - ((date.getDay() + 6) % 7)) - 6) * 86400000);
        break;
      // Monday
      case 1:
        currentThursday = new Date(date.getTime() + (0 - ((date.getDay() + 6) % 7)) * 86400000);
        break;
      // Tuesday
      case 2:
        currentThursday = new Date(date.getTime() + ((1 - ((date.getDay() + 6) % 7)) - 1) * 86400000);
        break;
      // Wednesday
      case 3:
        currentThursday = new Date(date.getTime() + ((2 - ((date.getDay() + 6) % 7)) - 2) * 86400000);
        break;
      // Thursday
      case 4:
        currentThursday = new Date(date.getTime() + ((3 - ((date.getDay() + 6) % 7)) - 3) * 86400000);
        break;
      // Friday
      case 5:
        currentThursday = new Date(date.getTime() + ((4 - ((date.getDay() + 6) % 7)) - 4) * 86400000);
        break;
      // Saturday
      case 6:
        currentThursday = new Date(date.getTime() + ((5 - ((date.getDay() + 6) % 7)) - 5) * 86400000);
        break;
      default:
        break;
    }

    let day = currentThursday.toLocaleDateString(navigator.language, { day: 'numeric' });
    let year = currentThursday.toLocaleDateString(navigator.language, { year: 'numeric' });
    let month = currentThursday.toLocaleDateString(navigator.language, { month: 'numeric' });

    return day + '.' + month + '.' + year + ' ~ ';
  }

 lastCalenderWeekDay(): string {
    var date = new Date();
    var currentThursday: Date;

    switch (date.getDay()) {
      // Sunday
      case 0:
        currentThursday = new Date(date.getTime() + ((6 - ((date.getDay() + 6) % 7)) + 0) * 86400000);
        break;
      // Monday
      case 1:
        currentThursday = new Date(date.getTime() + (0 - ((date.getDay() + 6) % 6)) + 6 * 86400000);
        break;
      // Tuesday
      case 2:
        currentThursday = new Date(date.getTime() + ((1 - ((date.getDay() + 6) % 7)) + 5) * 86400000);
        break;
      // Wednesday
      case 3:
        currentThursday = new Date(date.getTime() + ((2 - ((date.getDay() + 6) % 7)) + 4) * 86400000);
        break;
      // Thursday
      case 4:
        currentThursday = new Date(date.getTime() + ((3 - ((date.getDay() + 6) % 7)) + 3) * 86400000);
        break;
      // Friday
      case 5:
        currentThursday = new Date(date.getTime() + ((4 - ((date.getDay() + 6) % 7)) + 2) * 86400000);
        break;
      // Saturday
      case 6:
        currentThursday = new Date(date.getTime() + ((5 - ((date.getDay() + 6) % 7)) + 1) * 86400000);
        break;
      default:
        break;
    }

    let day = currentThursday.toLocaleDateString(navigator.language, { day: 'numeric' });
    let year = currentThursday.toLocaleDateString(navigator.language, { year: 'numeric' });
    let month = currentThursday.toLocaleDateString(navigator.language, { month: 'numeric' });

    return day + '.' + month + '.' + year;
  }

Die Ausgabe ist wie folgt: 4.5.2020 ~ 10.5.2020

Die Lösung der Aufgabe ist nach meiner Meinung sehr groß und sollte leichter zu lösen sein. Wer eine bessere Lösung kennt, kann diese gern im Kommentar hinterlassen.

Ionic 4 Picker Wert Vorbelegung

Die Daten des Picker die auf der Oberfläche angezeigt werden, sind im Array columns[index] gespeichert. Soll eine Vorbelegung erreicht werden, kann der Picker Index im Vorfeld gesetzt werden. Der Index kommt in meinem Beispiel aus dem Storage.

 let picker = await this.pickerController.create(opts);

 this.storage.get(string).then((data: number) => {
      picker.columns[0].selectedIndex = data;
 });

Das Speichern erfolgt analog und wird durchgeführt, wenn der User den Wert bestätigt.

 let col = await picker.getColumn(string);

 if (pickerAction === 'done') {
      await this.storage.set(string, col.selectedIndex);
 }

Versteckte Dateien im Mac anzeigen

Bei der Programmierung braucht man jede Information um schnell weiter zukommen. Beim Mac Finder sind versteckte Dateien aus Sicherheit nicht für den User im Standard sichtbar. Das kann über das Terminal durch die Eingabe schnell ändern werden.

 defaults write com.apple.finder AppleShowAllFiles -bool TRUE

Danach muss der Mac Finder neu gestartet werden.

 killall Finder

Alles wieder Rückgängig machen.

 defaults write com.apple.finder AppleShowAllFiles -bool FALSE

 killall Finder