Montag, 2. Juli 2007
Dynamic two dimensional array in Java
I need a dynamic two dimensional array in Java. I thought I might not be the only one, so I searched with regular search engines and the code searches. Surprisingly I did not find any free implementation. I thought this would be a such common case, that the JRE or at least the Jakarta Commons Collections might contain it. No, they do not.
It seems the rest of the world builds their own implementation or uses the javax.swing.table.TableModel and javax.swing.table.DefaultTableModel. The public API of the latter gets near to what I want, but it’s not exactly what I was looking for.
I thought about something like this:
It seems the rest of the world builds their own implementation or uses the javax.swing.table.TableModel and javax.swing.table.DefaultTableModel. The public API of the latter gets near to what I want, but it’s not exactly what I was looking for.
I thought about something like this:
interface TwoDimensionalArray<T>
{
T set(int x, int y, T value);
boolean add(int x, int y, T value);
T get(int x, int y);
Iterator<Iterable<T>> iterator();
boolean isEmpty();
/** returning the overall element count */
int size();
}
Geschrieben von Jörg
in Softwaretechnik
um
08:02
| Kommentare (0)
| Trackbacks (0)
Tags für diesen Artikel: java, open source
Sonntag, 22. April 2007
declarative music playlists
Last night, while playing a fantasy roleplay game, we listened to an appropriate selfmade radio channel at pandora. I just created a new channel with “Enya”, “Loreena McKennitt”, “Blackmore’s Night” and other artists we would probably have thrown into the CD player instead. We had to rate some songs over the night, but most the time the music was just what we wanted it to be. Surely with many artist we did not even know before. Cool!
Hearing two other channels with the very nice quick mix function along breakfast this morning, I thought about the technology behind it. What was not obvious to me, when using pandora, was that I describe what I want to hear. So it’s a form of declarative music playlist, analogous to fourth generation programming languages. In a simpler manner the “intelligent playlists” in iTunes are the same. As software developer, used to declarative languages like SQL, I use them most the time - but missing complexe conditions and ad-hoc querys.
Concerning pandora I miss one thing the most: I sometimes like to describe what I disliked within a specific song, because I don’t want pandora to guess. But that’s the offtrade, when handing over responsibility in those declarative ways.
Hearing two other channels with the very nice quick mix function along breakfast this morning, I thought about the technology behind it. What was not obvious to me, when using pandora, was that I describe what I want to hear. So it’s a form of declarative music playlist, analogous to fourth generation programming languages. In a simpler manner the “intelligent playlists” in iTunes are the same. As software developer, used to declarative languages like SQL, I use them most the time - but missing complexe conditions and ad-hoc querys.
Concerning pandora I miss one thing the most: I sometimes like to describe what I disliked within a specific song, because I don’t want pandora to guess. But that’s the offtrade, when handing over responsibility in those declarative ways.
Montag, 9. April 2007
Machine Tags tuned
Schon vor einiger Zeit hatte ich bei Frank Westphal über Machine Tags gelesen. Geniales Konzept? Jain. Genial schon, aber eigentlich alles alte Bekannte. Worum geht es?
In Kürze: Normale Tags sind vollkommen ungeordnete Schlagwörter die entweder “vorhanden” oder “zugeordnet” sind oder nicht. Machine Tags haben auch einen Wert und sogar noch einen Namensraum:
<namespace>:<key>=<value>
Also zum Beispiel:
lang:name=java
lang:ver=1.5
Erinnert natürlich stark an XML oder? Oder auch an Properties-Dateien mit Prefixen, wie sie mein Chef gerne verwendet. (Prefixe beispielsweise für Staging, siehe auch Java Magazine 3/07.)
Sie heißen Machine Tags, weil man davon ausgegangen ist, dass sie hauptsächlich von Maschinen benutzt werden würden. Wie Westphals Artikel aber zeigt, ist dies absolut nicht der Fall und sie eröffnen eine ganz neue Dimension des Taggings.
Wie bin ich darauf gekommen diesen Artikel heute wieder auszugraben? Ich habe via iTunes Musik gehört, bewertet, kategorisiert und mich zum wiederholten Mal darüber geärgert, dass man hier nicht vernünftig taggen kann. Ich hatte mir vor einiger Zeit deshalb schon mal ein Tagging-System überlegt, welches ich den Jungs von Songbird vorgeschlagen habe, aber leider in den Wirren ihresbeschi... bescheidenen Forums unterging. Und wenn ich drüber nachdenke ist es fast das gleiche.
Was ich würde gerne Tags wie folgend zu vergeben können:
dance:jive=4
dance:foxtrott=5
rating:jens=4
rating:nils=3
rating:jörg=5
rating:anna=4
rating:average=4
occasion:party=5
occasion:cocktails=4
occasion:work=1
...
Man sieht es: Kategorisierte Tags mit Gewichtung. (Hier mit dem praktikablen 1-5 Sterne Prinzip)
Vielleicht sogar:
occasion:party:jens=5
occasion:party:nils=4
occasion:party:joerg=5
...
Dann noch entsprechende Filtrierungen in “intelligenten Wiedergabelisten” und Ad-hoc.
Sahnehäubchen: Das ganze als p2p-social-tagging-community ...
In Kürze: Normale Tags sind vollkommen ungeordnete Schlagwörter die entweder “vorhanden” oder “zugeordnet” sind oder nicht. Machine Tags haben auch einen Wert und sogar noch einen Namensraum:
<namespace>:<key>=<value>
Also zum Beispiel:
lang:name=java
lang:ver=1.5
Erinnert natürlich stark an XML oder? Oder auch an Properties-Dateien mit Prefixen, wie sie mein Chef gerne verwendet. (Prefixe beispielsweise für Staging, siehe auch Java Magazine 3/07.)
Sie heißen Machine Tags, weil man davon ausgegangen ist, dass sie hauptsächlich von Maschinen benutzt werden würden. Wie Westphals Artikel aber zeigt, ist dies absolut nicht der Fall und sie eröffnen eine ganz neue Dimension des Taggings.
Wie bin ich darauf gekommen diesen Artikel heute wieder auszugraben? Ich habe via iTunes Musik gehört, bewertet, kategorisiert und mich zum wiederholten Mal darüber geärgert, dass man hier nicht vernünftig taggen kann. Ich hatte mir vor einiger Zeit deshalb schon mal ein Tagging-System überlegt, welches ich den Jungs von Songbird vorgeschlagen habe, aber leider in den Wirren ihres
Was ich würde gerne Tags wie folgend zu vergeben können:
dance:jive=4
dance:foxtrott=5
rating:jens=4
rating:nils=3
rating:jörg=5
rating:anna=4
rating:average=4
occasion:party=5
occasion:cocktails=4
occasion:work=1
...
Man sieht es: Kategorisierte Tags mit Gewichtung. (Hier mit dem praktikablen 1-5 Sterne Prinzip)
Vielleicht sogar:
occasion:party:jens=5
occasion:party:nils=4
occasion:party:joerg=5
...
Dann noch entsprechende Filtrierungen in “intelligenten Wiedergabelisten” und Ad-hoc.
Sahnehäubchen: Das ganze als p2p-social-tagging-community ...
Sonntag, 25. März 2007
Podcast zu Extreme Programming
Einen sehr interessanten Podcast zum Thema Extreme Programming (XP) gibt es beim CCC:
Extreme Programming - Hintergründe und Erfahrungen zur Software-Entwicklungsmethode “XP” (MP3, ca. 102 min)
Diese Folge ist zwar nicht mehr ganz taufrisch, aber dadurch inhaltlich nicht weniger aktuell. Vor allem die von Pavel gemachten und erwähnten Erfahrungen sind interessant. Unbedingt anhören!
Übrigens kann man Podcasts prima bei der Hausarbeit hören, wie ich festgestellt habe. Beim Bügeln beispielsweise.
Extreme Programming - Hintergründe und Erfahrungen zur Software-Entwicklungsmethode “XP” (MP3, ca. 102 min)
Diese Folge ist zwar nicht mehr ganz taufrisch, aber dadurch inhaltlich nicht weniger aktuell. Vor allem die von Pavel gemachten und erwähnten Erfahrungen sind interessant. Unbedingt anhören!
Übrigens kann man Podcasts prima bei der Hausarbeit hören, wie ich festgestellt habe. Beim Bügeln beispielsweise.
Donnerstag, 14. September 2006
Windows Vista - Kosten und Industriemotor
Laut einem Heise-Artikel hatte Microsoft eine Studie beauftragt die nun das sensationelle Ergebniss hat: Windows wird in Europa 50.000 neue Arbeitsplätze schaffen.
Da wir mit tollen Zahlen um sich geworfen, zum Beispiel das 32 Milliarden Euro Folgeumsatz in der Industrie durch Vista erzeugt werden sollen. Das kann man aber auch umdrehen: Vista wird 32 Milliarden Folgekosten erzeugen! Am schönsten bei Hardware: Auf jeden Euro den man für Vista ausgibt wird man im Schnitt 7,23 für neue Hardware ausgeben müssen.
Na dann hoffen wir mal, dass dies durch die ach so hohe Produktivitätssteigerung wieder herrein zu holen ist.
Da wir mit tollen Zahlen um sich geworfen, zum Beispiel das 32 Milliarden Euro Folgeumsatz in der Industrie durch Vista erzeugt werden sollen. Das kann man aber auch umdrehen: Vista wird 32 Milliarden Folgekosten erzeugen! Am schönsten bei Hardware: Auf jeden Euro den man für Vista ausgibt wird man im Schnitt 7,23 für neue Hardware ausgeben müssen.
Na dann hoffen wir mal, dass dies durch die ach so hohe Produktivitätssteigerung wieder herrein zu holen ist.
« vorherige Seite
(Seite 4 von 7, insgesamt 31 Einträge)
» nächste Seite


Jörg bei Twitter

