What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

0
0
2
0
2
0

"Seit mindestens einem Jahr" lässt 'Bild' Polizeimeldungen "von einer KI etwas umschreiben und übernimmt sie als eigene Meldung (...) Was noch problematischer ist: den 'Messer-Angreifer' hat 'Bild' sich einfach ausgedacht. In der Pressemitteilung der Polizei und somit auch in der 'Bild'-Meldung, die auf der Pressemitteilung basiert, ist von einem Angriff mit einem Messer gar keine Rede. Aber durch die Überschrift war der Ton für die Berichterstattung gesetzt." (€) uebermedien.de/105126/der-erfu

0

See our in-progress draft accessibility Guidance on Applying WCAG 2.2 to Mobile Applications (WCAG2Mobile). It describes how Web Content Accessibility Guidelines (WCAG) 2.2 principles, guidelines, and success criteria can be applied to mobile applications, including native mobile apps, mobile web apps, and hybrid apps using web components inside native mobile apps.

w3.org/TR/wcag2mobile-22/

To comment on this draft via email or GitHub, see links in the 'Status of This Document' section.

0
0
0
0
0

Steps for building open source software on MacOS:

* mkdir build; cd build
* cmake ..
* Open CMakeCache.txt in a text editor, grip it firmly and just rummage around in there. Really show it who's boss. No wrong answers
* make -j10 && sudo make install

0
0
1
0

붓) 그리고 1+1이 3이 되려면 상식 한두개가 틀린게 아닌것처럼 "소박한" 혐오를 하는 사람은 사회와 인권 같은 수많은 개념이 전부 다 망가져 있고 혐오발언은 그 빙산의 일각일 때가 많다. "인간"에 대해 이야기한다고 해놓고 거기에 여성이 들어갈 수 있다는 생각조차 하지 않거나 등등.

1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0

비발디 브라우저에서 탭을 모두 닫았을 때 브라우저가 꺼지지 않고 새 탭이 열리는 게 싫어서 꺼뒀는데
그렇게 설정하니까 브라우저가 시작될 때 주소 표시줄이 포커스되지 않음
또 나만 설정 못 찾은건가 싶어서 검색해보니까 나랑 같은 문제를 겪는 사람이 있었고, 해결책이 딱히 없는지 답변자들 모두 단축키를 써라, 브라우저가 열리면 실행되는 스크립트를 적용해라 등 다른 대안들을 알려줌

forum.vivaldi.net/topic/96992/

0
0
0

Sehr speziell: wurde gewählt, weil die Union dazu einen Geschäftsordnungsantrag gemeinsam mit (u.a.) der Linken gestellt hat.

Das gab's noch nie, jahrelang 'durften' bei fraktionsübergreifenden Anträgen nicht dabei sein. SPD, Grüne, FDP haben das immer mitgemacht.

Das ändert einiges, denn dahinter kann die Union schlecht zurück.

0

Sehr speziell: wurde gewählt, weil die Union dazu einen Geschäftsordnungsantrag gemeinsam mit (u.a.) der Linken gestellt hat.

Das gab's noch nie, jahrelang 'durften' bei fraktionsübergreifenden Anträgen nicht dabei sein. SPD, Grüne, FDP haben das immer mitgemacht.

Das ändert einiges, denn dahinter kann die Union schlecht zurück.

0
0

Next.js 서버 액션은 서버 데이터를 가져오는 용도로 사용하기에 적합하지 않다. React 공식문서에서는 다음과 같이 말하고 있다.

Server Functions are designed for mutations that update server-side state; they are not recommended for data fetching. Accordingly, frameworks implementing Server Functions typically process one action at a time and do not have a way to cache the return value.

서버 액션이 여러 호출되면 바로 실행되는 대신 큐에 쌓이고 순차적으로 처리된다. 이미 실행된 서버 액션은 이후 취소할 수 없다.

이에 서버 액션을 데이터 가져오기로 활용하면 끔찍해지는 UX가 생길 수 있는데, 예를 들어 페이지의 목록 검색 화면에서 검색 후 데이터를 가져오는 상황에 않았다고 다른 화면으로 네비게이션이 불가능한 것은 일반적인 경험이 아니다.

이러면 RSC를 통해 무한 스크롤을 구현하지 못하는가? 에 대해서 의문이 생길 수 있는데 여기에 대해서 대안을 발견했다.

function ServerComponent({ searchParams }) {
  const page = parseInt((await searchParams).page ?? "1", 10)
  const items = await getItems(page)
  return (
    <Collection id={page}>
      {items.map(item => <InfiniteListItem key={item.id} {...items} />)}
    </Collection>
  )
}
"use client"

function Collection({ id, children }) {
  const [collection, setCollection] = useState(new Map([[id, children]]))
  const [lastId, setLastId] = useState(id)
  if (id !== lastId) {
    setCollection(oldCollection => {
      const newCollection = new Map(oldCollection)
      newCollection.set(id, children)
      return newCollection
    })
    setLastId(id)
  }
  return Array
    .from(collection.entries())
    .map(
      ([id, children]) => <Fragment key={id}>{children}</Fragment>
    )
}

대충 이런 꼴이다. 이러고 page를 증가시키거나 감소시키는건 intesection observer나 특정 엘리먼트의 onClick 이벤트 따위를 의존하면 된다. 이러면 데이터 가져오기 패턴을 RSC 형태로 의존할 수 있다. InfiniteListItem는 서버컴포넌트, 클라이언트컴포넌트 무엇으로 구현하더라도 상관없다. 가령 아래와 같은 식:

function ServerComponent({ searchParams }) {
  const page = parseInt((await searchParams).page ?? "1", 10)
  const { items, hasNext } = await getItems(page)
  return (
    <div>
      <Collection id={page}>
        {items.map(item => <InfiniteListItem key={item.id} {...items} />)}
      </Collection>
      {hasNext && (
        <IntersectionObserver nextUrl={`/?page=${page + 1}`} />
      )}
    </div>
  )
}

검색 조건이나 검색어에 따라 상태를 초기화시키려면 다음과 같이 표현하면 된다.

function ServerComponent({ searchParams }) {
  const page = parseInt((await searchParams).page ?? "1", 10)
  const query = parseInt((await searchParams).query ?? "")
  const { items, hasNext } = await getItems(page, query)
  return (
    <div>
      <Form action="/">
        <input name="query" />
        <button />
      </Form>
      <Collection id={page} key={query}>
        {items.map(item => <InfiniteListItem key={item.id} {...items} />)}
      </Collection>
      {hasNext && (
        <IntersectionObserver nextUrl={`/?page=${page + 1}&query=${query}`} />
      )}
    </div>
  )
}

매우 PHP스럽고, 암묵적이기도 하다. 다만 RSC의 데이터 가져오기 패턴을 활용하면서 기존 컴포넌트를 최대한 재사용할 수 있게 된다는 점이 좋다.

2

Hey we're hiring for Developer Relations here in London.

@tldraw is this mad mix of "exciting product you would work on in your spare time anyway" and "we're selling to loads of developers" ... combined with a hyper-talented mixed-up team of smart creative weirdos.

tldraw arrow pointing left on the wall
0
0
0
0
0
0
0
0
0
1

Modellieren mit KI-Sprachmodellen

In meiner pädagogischen Praxis bin ich sehr konstruktivistisch geprägt. Gutes Lernen sehe ich in diesem Sinne weniger als einen Prozess der Wissensvermittlung, sondern mehr als eine Konstruktion von Wissen durch die Lernenden. Spannend finde ich in diesem Kontext dann die Frage, wie solch ein konstruktivistisches Lernen unter Nutzung von Technologie und hier insbesondere von generativen KI-Sprachmodellen entwickelt und gestaltet werden kann.

In diesem Blogbeitrag möchte ich dazu den Ansatz des so genannten Modellierens reflektieren, den ich in drei Varianten in meinem Lernen praktisch ausprobiert und als sehr hilfreich erlebt habe.

Was meint „Modellieren“?

Im Ansatz des Modellierens (oder auch der Modellbildung) geht man davon aus, dass sich in Interaktion mit der Welt mentale Modelle im Kopf entwickeln – und diese dann immer weiter verfeinert werden.

Hier ist ein Beispiel zur Verdeutlichung:
Mein mentales Modell vom Frühling könnte zum Beispiel umfassen, dass es heller, wärmer und grüner wird. Wenn ich nun (in meiner Interaktion mit der Welt) eine Allergie gegen bestimmte Pollen im Frühling entwickle, werde ich das zu meinem mentalen Modell des Frühlings hinzufügen.

Gutes Lernen kann in diesem Zusammenhang nun so gestaltet werden, dass ich mir die mentalen Modelle in meinem Kopf gezielt bewusst mache, reflektiere und sie dann auf dieser Basis erweitern, verändern oder auch verwerfen kann. Um das zu erreichen, hilft der Prozess des Modellierens.

Modellieren bedeutet: Ich externalisiere ein bestimmtes mentales Modell aus meinem Kopf, wodurch es mir bewusster wird – und arbeite dann daran weiter. Im obigen Beispiel des mentalen Modells zum Frühling könnte ich zunächst alles aufschreiben, was mir zum Frühling in den Sinn kommt und diese Notizen dann clustern und systematisieren.

Bei dieser Modellierung kann Technologie eine zentrale Rolle spielen. Insbesondere kann sie in Form so genannter Denkwerkzeuge (= Mindtools) unterstützen.

Zur Einordnung ist hier wichtig: Solche Mindtools sind nicht lehrende Tools, also digitale Werkzeuge, die Lernenden Wissen vermitteln. Vielmehr sind es Lerntools: Lernende lernen dadurch, dass sie ihre mentalen Modelle in Interaktion mit der Technologie zu einer Abbildung bringen und dann weiter bearbeiten. (Es ist also eher so, dass die Lernenden dem digitalen Werkzeug etwas beibringen – nicht anders herum.)

Dieser Gedanke wurde maßgeblich bereits Anfang der 90er Jahre von David H. Jonassen entwickelt. Generative KI-Sprachmodelle in heutiger Form hatte er damals allerdings noch nicht im Blick. In seinem Buch ‚Modeling with Technology‘ geht er aber durchaus schon auf ‚Expertensysteme‘ wie Chatbots ein. Wie aber lässt sich dieser Ansatz auf generative KI-Technologie übertragen bzw. ist das überhaupt sinnvoll?

Lassen sich generative KI-Sprachmodelle zur Modellierung nutzen?

Für den Prozess des Modellierens erscheinen generative KI-Sprachmodelle auf den ersten Blick denkbar ungeeignet. Denn sie sind grundsätzlich so gestaltet, dass sie für die Nutzenden etwas generieren oder im pädagogischen Kontext den Lernenden etwas erklären. Der Lernprozess des Modellierens sollte aber ja, wie oben beschrieben, genau umgekehrt ablaufen: Die Lernenden sollten die Technologie als Denkwerkzeuge nutzen, denen sie etwas erklären und so zu einer Modellierung kommen.

Um das zu erreichen, müssen wir also eine kontra-intuitive Nutzung der Technologie anstreben: Nicht als Vereinfachungs- und Automatisierungstools, sondern als Denkwerkzeug. Konkreter formuliert ist also ein Weg gesucht, wie sich mentale Modelle durch Interaktion mit KI-Sprachmodellen erstens externalisieren und zweitens bearbeiten lassen.

Lassen sich mentale Modelle mit KI-Sprachmodellen externalisieren?

Ich habe die Externalisierung mentaler Modelle mithilfe von KI-Sprachmodellen vor allem auf die Art und Weise versucht, dass ich sie unterstützend bei einer Systematisierung und Zusammenfassung eines wahrgenommenen ‚Chaos in meinem Kopf‘ einsetzte.

Dabei ging ich wie folgt vor:
Wenn ich beispielsweise mein mentales Modell von „Konstruktivismus“ externalisieren wollte, dann konnte ich in ein Sprachmodell per Audio alles spontan und unsortiert einsprechen, was mir dazu in den Sinn kam. Danach konnte ich nach einer Strukturierung, Clusterung oder Systematisierung fragen – und erhielt dazu dann einen entsprechenden Output.

Dieses Vorgehen scheint erst einmal sehr nützlich – aber nur solange man allein vom gewünschten Output her denkt. Wenn man vom Lernen im Sinn von Modellieren ausgeht, dann ist dieses Vorgehen sogar schädlich. Denn ich lagere in diesem Fall mein Lernen an das KI-Sprachmodell aus, weil ich eben nicht selbst den Prozess der Externalisierung meines mentalen Modells gestalte, sondern eine (zwar meist gut funktionierende, aber eben nicht lernförderliche) Abkürzung nehme. Oft droht zudem auch die Übernahme stochastischer Oberflächlichkeit, die eigentlich gar nicht Teil meines mentalen Modells war. Denn KI-Sprachmodelle ‚plappern‘ gerne und wir als Menschen nehmen den KI-generierten Output gerne an, weil er oft erst einmal sehr schlau klingt.

(Anders ordne ich diese Möglichkeit zur Systematisierung, Clusterung und Zusammenfassung durch KI-Sprachnmodelle übrigens bei kollaborativen Lernprozessen ein. Hier kann genau diese beschriebene Abkürzung aus meiner Sicht hilfreich sein, um als Gruppe zu einer gemeinsamen Ausgangsbasis zum Weiterarbeiten zu kommen.)

Lassen sich mentale Modelle mit KI-Sprachmodellen bearbeiten?

Während ich wie oben beschrieben bei der Externalisierung mentaler Modelle im Prozess der Modellierung bei generativer KI-Technologie eher skeptisch bin, halte ich eine Bearbeitung und Weiterentwicklung von bereits externalisierten mentalen Modellen für sehr zielführend. Man muss sich dann also in einem ersten Schritt jeweils gut überlegen, wie man ein bestimmtes Modell besser ohne KI-Technologie externalisiert, also in welche Form man es bringt, sodass dann eine Bearbeitung mit KI-Sprachmodellen möglichst gut funktioniert. Das ist aus meiner Sicht dann der Fall, wenn das KI-Sprachmodell als erweiternder, bereichernder Resonanzraum genutzt wird.

Ich habe in diesem Sinne mit drei Varianten experimentiert, die ich im Folgenden vorstelle:

Variante 1: Mindmaps (und ihre Erweiterung)

Die erste Variante ist der Klassiker für die Externalisierung eines mentalen Modells – und wahrscheinlich auch die bekannteste Form. Es handelt sich um Mindmaps oder auch Concept Maps: In die Mitte wird die Bezeichnung des mentalen Modells eingetragen – und drumherum dann alles, was einem zu diesem Begriff einfällt. Mit diesem als Mindmap externalisierten mentalen Modell lässt sich dann zur Erweiterung und Bearbeitung ein KI-Sprachmodell nutzen.

Ich habe dieses Vorgehen ausprobiert, um für mich zum Thema des mobilen Lernens weiter zu ler­nen. Dazu habe ich diese Mindmap aufgezeichnet und auf diese Weise mein (sehr dürftiges) mentales Modell zu diesem Thema externalisiert:

Meine Mindmap zum Thema Mobile Learning

Die Interaktion mit dem KI-Sprachmodell habe ich dann so gestaltet, dass ich zunächst ein Foto der Mindmap geteilt und um eine Zusammenstellung in Textform gebeten habe. Anschließend konnte ich nacheinander alle Bereiche aufrufen und jeweils um Ergänzung, Widerspruch oder Fragen bitten. Den Output, den ich daraufhin von dem KI-Sprachmodell erhielt, konnte ich direkt an mein mentales Modell im Kopf anfügen – und ihn dazu auch in die externalisierte Mindmap einzeichnen. Das hier war am Ende mein Ergebnis (= das überarbeitete mentale Modell):

Meine überarbeitete Mindmap zum Thema Mobile Learning

Das gesamte Experiment habe ich hier ausführlich beschrieben. Ich halte dieses Vorgehen für die wahrscheinlich einfachste und zugleich sehr wirkungsvolle Art der Modellierung mit KI-Sprachmodellen.

Variante 2: Storytelling (und Konzepthinterfragung)

In der zweiten Variante habe ich ein mentales Modell aus meinem Kopf als Geschichte externalisiert – also die Technik des Storytelling genutzt. Mein Beispiel war hier das Konzept der proaktiven Zusammenarbeit im Kontext von KI. Ich habe dieses Konzept hier ausführlich beschrieben.

Meine Geschichte war – orientiert am klassischen Storytelling – die Geschichte von drei Kolleg*innen, die immer gut zusammengearbeitet haben, bis plötzlich KI-Modelle auf den Markt kamen und zunehmend Misstrauen in die Zusammenarbeit einfloss. Um wieder zu einer vertrauensvollen Zusammenarbeit zurückzufinden, haben sie beschlossen, immer direkt transparent zu machen, ob und wenn ja wie KI genutzt wurde – und zwar schon bevor die Frage danach gestellt wird. Das klappte ganz wunderbar, und die drei fanden nicht nur zu vertrauensvoller Zusammenarbeit zurück, sondern lernten auch den Umgang mit KI-Modellen immer besser, weil sie gemeinsam dazu reflektieren konnten. So war dann also alles war wieder gut. 🙂

Diese Geschichte ließ sich schnell und einfach per Audio an ein KI-Sprachmodell weitergeben. Wichtig war hier: Ich habe mir zuvor die Geschichte bewusst überlegt – und nicht einfach irgendetwas eingeplappert. Es ging also im ersten Schritt um eine gezielte Externalisierung des mentalen Modells der proaktiven Transparenz durch Storytelling.

In Interaktion mit dem KI-Sprachmodell habe ich dann zunächst darstellen lassen, welches mentale Modell hier wohl dargestellt wird. Das hatte den Zweck eines Gegenchecks, ob meine Externalisierung funktioniert hatte. Nachdem das gut klappte, fragte ich das KI-Sprachmodell nacheinander nach drei alternativen Geschichten mit einem dann negativen Ende. Damit wollte ich mein mentales Modell auf die Probe stellen, um es so weiterentwickeln zu können.

Diese drei Geschichten erhielt ich:

<iframe id="h5p-iframe-420" class="h5p-iframe" data-content-id="420" style="height:1px" src="about:blank" frameBorder="0" scrolling="no" title="Modellierungs-Storytelling"></iframe>

Aus diesen Geschichten konnte ich dann die folgenden Weiterentwicklungen meines mentalen Modells zu proaktiver Transparenz ableiten:

  1. Das Konzept muss rechtzeitig kommen. Sonst kann es für Vertrauen schon zu spät sein.
  2. Transparenz reicht nicht. Es muss auch eine Befähigung bzw. eine Ermächtigung aller Beteiligten erreicht werden.
  3. KI ist nicht nur einfach ein Werkzeug, sondern es muss auch Raum sein, über die ethischen Implikationen zu reflektieren.

Insgesamt finde ich, dass die Weiterentwicklung meines mentalen Modells über diesen Weg der Externalisierung als Geschichte und der Umformulierung der Geschichte durch ein KI-Sprachmodell sehr lernförderlich war. Zugleich macht der Ansatz des Storytelling viel Freude, weshalb ich auch diese Variante der Modellierung mit KI-Sprachmodellen weiter empfehlen kann.

Variante 3: Thesen (und ihre Überprüfung)

Mein dritter Versuch war eine Externalisierung eines mentalen Modells als prägnante These. Ich nutze hier mein entwickeltes mentales Modell zur lernförderlichen KI-Nutzung.

Als These formuliert lautet es:

Je mehr Interaktion und Input bei der Interaktion mit KI-Sprachmodellen, desto lernförderlicher.

Diese These ordnete ich als externalisiertes mentales Modell ein. In Interaktion mit einem KI-Sprachmodell experimentierte ich damit, wie sich eine Weiterentwicklung meines mentalen Modells gut erreichen lassen könnte. Wichtig war mir hier zunächst die Festlegung, immer ganz prägnante Antworten zu geben.

Dann fragte ich zunächst nach drei Aspekten, die die These bestätigen. Hier erhielt ich diese drei Punkte:

  • Nutzer müssen sich aktiv mit Inhalten auseinandersetzen.
  • Rückfragen und Feedback ermöglichen direktes Lernen.
  • Vielfältiger Input führt zu tieferer Auseinandersetzung.

Dann fragte ich nach dreimal Widerspruch und erhielt diesen:

  • Zu viel Input kann überfordern und Lernprozesse hemmen.
  • Qualität des Inputs ist oft wichtiger als Quantität.
  • Passive Nutzung kann dennoch effektive Impulse geben.

Schließlich fragte ich nach drei möglichen Erweiterungen:

  • …wenn die Interaktion zielgerichtet und reflektiert erfolgt.
  • …insbesondere bei individualisiertem Feedback.
  • …vorausgesetzt, der Nutzer bringt Vorwissen mit.

Zum Abschluss fragte ich nach einem Fallbeispiel, wo die These zutrifft, und einem, wo sie nicht zutrifft. Das war die Antwort:

  • Zutreffendes Fallbeispiel: Ein Schüler nutzt ein KI-Modell, um Matheaufgaben zu lösen, stellt Rückfragen bei Unklarheiten und erhält Erklärungen, wodurch er Konzepte besser versteht.
  • Nicht-zutreffendes Fallbeispiel: Ein Nutzer interagiert viel mit dem KI-Modell, stellt aber irrelevante oder oberflächliche Fragen, ohne auf die Antworten einzugehen – kein echter Lernzuwachs.

Auf dieser Basis hatte ich viele Anregungen, um meine These zu reflektieren – also um mein mentales Modell weiter zu entwickeln. Im Ergebnis habe ich insbesondere versucht, sie auch mehrdeutiger zu formulieren und kam zu diesem Ergebnis:

Je personalisierter, von Neugier getrieben und interaktionsgeleiteter die Nutzung von KI-Sprachmodellen, desto größer kann der Lernzuwachs sein.

Auch diese Variante der Modellierung in Thesenform fand ich für mich sehr hilfreich. Besonders die Generierung eines zutreffenden und eines nicht-zutreffenden Fallbeispiels werde ich sicherlich noch häufiger nutzen.

Fazit

Spannend finde ich an diesen Experimenten vor allem, dass sich der Einsatz von Technologien im Modellierungsprozess gewissermaßen verschiebt:

  • Für die reine Externalisierung mentaler Modelle bleibt klassische Technologie – etwa eine Mindmap-Software, wie sie Jonassen bereits vorgeschlagen hat – nach wie vor völlig ausreichend bzw. ist sogar der lernförderliche Weg, um nicht für das Lernen hinderliche Abkürzungen zu nehmen. Ich mache diesen Schritt nun sogar gerne ganz haptisch.
  • Neu und weiterführend ist hingegen der Resonanzansatz mit generativen KI-Sprachmodellen, die gerade bei der Bearbeitung und Verfeinerung bereits externalisierter Modelle als Mindtools fungieren können.

Meine drei Versuche haben mir gezeigt, wie hilfreich die Nutzung solch eines erweiternden Resonanzraums bei der Modellierung und damit beim Lernen sein kann. Ich halte es für sehr lohnend, weiter in diese Richtung zu experimentieren. Vielleicht hast Du ebenfalls Lust, dazu zu erkunden. Viel Freude dabei – und ich bin gespannt, was du an Erkenntnissen teilen wirst.

0