Anders als in C liegen Javas mehrdimensionale Arrays nicht in einem Stück im Speicher. C kennt (intern) gar keine mehrdimensionalen Arrays, bzw. unterscheiden sich diese (intern) nicht von eindimensionalen. Und so muss man das dann auch beim Zugriff aus Java heraus nachbauen:
1
2
3
4
5
6
7
8
9
10
11
12
// pseudo-mehrdimensional
byte[]oneDimensional=newbyte[rowCount*colCount];
// ...
// Transformation in ein echtes mehrdimensionales Array:
Ich habe eine Reihe alter Super 8-Filme digitalisieren lassen, und möchte diese von den verwendeten Billig-DVDs runter haben. Ein mal als Image, ein mal als abspielbare Videodatei. ffmpeg bietet sich an, doch was macht man, wenn der Film in mehrere VOB-Dateien aufgesplittet ist? Dies:
Angenommen, ich habe eine Ember-Anwendung mit Zielplattform Handy. Dann möchte ich zentral an einer Stelle für alle Inputfelder Autokorrektur usw. deaktivieren:
Verbinden Sie Ihr Gerät über ein USB-Kabel mit Ihrem Computer. Ihr Gerät wird auf dem Computer als externes USB-Laufwerk angezeigt.
Windows: Ihr Gerät erscheint im Ordner Computer oder Mein Computer.
Mac: Ihr Gerät wird auf dem Desktop angezeigt.
Stellt sich raus: Das wird das Gerät nicht [UPDATE: Ein Paperwhite tut das doch! Ein Fire aber nicht]. Wer fluchend noch ein wenig weiter sucht, kommt zu einer anderen Seite von Amazon, die da sagt:
Mac-Nutzer müssen die kostenlose Android Fire-Übertragungs-App installieren, um die USB-Übertragung abzuschließen. Gehen Sie in Ihrem Computer-Browser zu Android File Transfer App und befolgen Sie die weiteren Anweisungen zum Herunterladen.
Windows-Nutzer müssen eine aktualisierte Version des Windows Media Player herunterladen, um die USB-Übertragung abzuschließen.
Wer irgendwas mit zufällig generierten Token in einem Docker Container laufen lassen möchte, der sollte /dev/urandom auf /dev/random mounten, denn sonst blockiert /dev/random, bis genug Entropie vorhanden ist – die nie kommt. urandom blockiert nicht.
Angenommen, ich möchte ein default Verhalten auf viele Routen vererben, bsplw. das Handling von 403ern:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// routes/restricted.js
import Ember from"ember";
export defaultEmber.Route.extend({
actions:{
error(result){
if(result.errors[0].status==='403'){
this.transitionTo('login');
}else{
// Let the route above this handle the error.
returntrue;
}
}
}
});
Und dann in irgendeiner Route:
1
2
3
4
5
6
7
import Restricted from"../routes/restricted";
export defaultRestricted.extend({
model(){
returnthis.get('store').query(/* ... */);
}
});
Grundsätzlich kommt das von hier, ergänzt um die konkrete Implementierung des Error Handlings. Das findet sich hier in der Doku, wobei error.status nicht funktioniert, es muss result.errors[0].status sein.