Updates from September, 2008 Toggle Comment Threads | Keyboard Shortcuts

  • admin 22:26 on 20.09.2008 Permalink | Reply
    Tags:   

    Technische Begriffe verständlich erklären … 

    … genau das macht dieses lustige Video in hervorragender Weise. Hier wird im “Kochstudio” bildlich dargestellt wie “Chip Multithreading” funktioniert. Absolut sehenswert :-)

    Wenn ihr noch mehr ähnliche Videos kennt, nur her damit!

     
    • h. Huber 23:09 on 04.02.2009 Permalink

      LOL. Einfach genial
      :-)

    • LnddMiles 19:45 on 26.07.2009 Permalink

      The best information i have found exactly here. Keep going Thank you

  • admin 10:15 on 05.09.2008 Permalink | Reply
    Tags: , Debugging, ,   

    Remote Debugging: .NET-Software mit Visual Studio unter Linux debuggen 

    Die Leute vom Mono-Projekt arbeiten gerade intensiv an dem Mono Debugger (mdb) und einem Visual Studio Plugin, mit dem Remote Debugging von .NET-Software erstmals möglich wird. Damit kann man endlich direkt aus seiner gewohnten Windows/Visual Studio-Umgebung heraus seine Programme unter Linux starten lassen und ganz normal debuggen mit allem was dazu gehört … Haltepunkte, Beobachten lokaler Variablen etc.

    Meiner Meinung nach eine geniale Sache, die sicherlich die Verbreitung von .NET-Software unter Linux stark verbessern und die Akzeptanz von Mono vergrößern wird.

    Alternativ zum Remote Debugging mit Visual Studio wird man auch bald mit MonoDevelop .NET-Software debuggen können – direkt unter Linux. Bis dato gibt es keinen integrierten Debugger für MonoDevelop 1.0, das soll sich nun aber mit Version 2.0 ändern – die zusammen mit Mono 2.0 fertiggestellt wird. Hoffentlich ist es bald so weit :-)

     
  • admin 20:20 on 21.08.2008 Permalink | Reply
    Tags: Screencasts   

    Hunderte kostenlose IT-, Web- und BWL-Screencasts 

    Das Hasso-Plattner-Institut bietet mit ihrer tele-TASK©-Plattform einen ausgezeichneten Service an. Sehr viele der Vorlesungen am Institut in Potsdam werden aufgezeichnet -komplett mit Sprecher und Präsentationsfolien -  und sind hinterher dann online frei zugänglich. Mit all diesen Screencasts hat man praktisch die Möglichkeit online Informatik bzw. IT-Systems-Engineering zu studieren .. fantastisch!

    Mit dabei sind nicht nur Standard-Themen wie “Modellgetriebene Softwareentwickleung” oder “Internet- und WWW-Technoligien”, sondern auch Vorlesungen zum “Semantic Web” oder zum Thema “BWL für Ingeniere”.

    Die Videos lassen sich direkt online mit dem RealPlayer anschauen, leider nicht mit dem Flash-Player. Aber dafür kann man sich auch alle Vorlesungen runterladen und z.B. auf seinen MP3-Player ziehen, um damit seinen Weg zur Arbeit zu versüßen :-)

     
  • admin 12:19 on 17.08.2008 Permalink | Reply
    Tags: ,   

    Typo3: Kategorie-Filter für tt_news bauen – Teil 3 

    Heute folgt das große Finale (Teil 1, Teil 2) … uns fehlt bisher nur noch der JavaScript-Code, der das Formular abschickt und die GET-Parameter generiert. Wir nutzen nicht den normalen “submit”-Button, denn dann würde für jedes Feld eine eigene GET-Variable abgesendet werden, stattdessen generieren wir mit JavaScript eine einzige, die dann von Typo3 interpretiert wird.

    Am besten legen wir eine separate Datei namens news_filter.js an, die wir dann wie folgt im HMTL-Kopf einfügen können (diese Zeile muss im “Header-Teile”-Bereich bei TemplaVoila aktiviert werden, wenn man das Formular mittels eines Flexiblem Content Element umsetzt):

    
    

    Der Code der JavaScript-Methode:

    function filter_news()
    {
    	var categories = '';
    	var subject = document.getElementById('thema');
    	// nun weitere Felder auslesen, z.B. Medientyp
    	var mediaType = document.getElementById('medienTyp');
    	var author = document.getElementById('author');
    
    	categories = subject + ',' + mediaType + ',' + author;
    
    	// neue URL mit Variable 'categories' zusammen setzen
    	window.location = document.getElementById('filter-formular').action +
    		'?no_cache=1&categories=' + categories;
    }
    

    Die Variable ‘categories’ wird zusammen gesetzt aus den Selektionsfeldern mit den Id’s ‘thema’, ‘medienTyp’ und ‘author’. Das Abschicken geschieht durch das Verändern der eigenen URL (window.location). Wichtig ist an der Stelle, dass das action-Attribut des Formulars eine gültige URL in der Form ‘http://www.domain.org/’ enthält.

    Damit ist das Tutorial komplett und der Filter funktionsfähig, wenn du alles richtig zusammen gebaut hast :-) Es gibt natürlich noch viel Platz zum Verbessern. Beispielsweise wäre es eleganter die JavaScript-Methode durch eine php-Funktion auf der Server-Seite auszutauschen, um dort die übergebenden Variablen auszuwerten.

     
    • Axotos 12:06 on 11.11.2010 Permalink

      WOW! Tolles Tutorial!
      Genau das wonach ich gesucht habe! – Leider verstehe ich es nicht… :(
      Also das News-Plugin mit der LIST-Ansicht einzufügen habe ich nosch geschafft ;) aber danach wirds holprig:
      - Ich vermute mal, dass wenn man “?categories=45,12,90″ hinter seine URL einfügt, dass dann die Kategorie(n?) angezeigt werden sollten. Ich habe aber realUrl installiert funktioniert das damit nicht?
      - Muss der 2. Teil ins ganz normale TS eingetragen werden oder unter plugin.ttnews {…}?
      - Der Code in Teil 3 muss dann in die news_filter.js?

      Über eine Antwort würde ich mich sehr freuen!

  • admin 13:43 on 30.07.2008 Permalink | Reply
    Tags: ,   

    Typo3: Kategorie-Filter für tt_news bauen – Teil 2 

    Heute gehts endlich weiter mit meinem kleinem Typo3-Tutorial (Teil 1). In zweiten Teil wollen wir nun den HTML-Codes des Formulars per Typoscript erzeugen.

    News-Kategorien auslesen

    Die News-Kategorien können mit dem folgenden TypoScript-Schnipsel ausgelesen werden. Das HTML-Grundgerüst drumherum kann mit TEXT oder HTML-Objekten erzeugt werden.

    get_categories = CONTENT
    get_categories {
    	table = tt_news_cat
    	select {
    		pidInList = 123
    		where = parent_category = 0
    		orderBy = title
    	}
    	renderObj = COA
    	renderObj {
    		10 = TEXT
    		10.field = uid
    		10.dataWrap =
    
    
    	}
    }
    

    pidInList muss auf den Sysfolder zeigen, der alle Kategorien beinhaltet.

    where=parent_category=0 gibt an, welche Unterkategorien angezeigt werden sollen; in diesem Fall würden die Oberkategorien ausgegeben werden

    HTML-Code generieren

    Die einzelnen Ausklappboxen werden nun mit Hilfe von <select name=”source” size=”1″><option … erzeugt. Die option-Tags werden durch das TypoScript von oben generiert. Wenn man TemplaVolia nutzt, muss man ein FCE erzeugen und dann das Typoscript auf die entsprechenden HTML-Tags mappen.

    lib.news_filter = COA
    lib.news_filter {
    	10 = TEXT
    	10.value =
    
    20 = TEXT 20.value = 30 = TEXT 30.value =

    Im action-Attribut muss die Ziel-Seite stehen, auf der die Ergebnisse angezeigt werden. Beim Klick auf den Button wird die JavaScript-Funktion "filter_news" aufgerufen, die wir im nächsten Teil entwickeln werden.

     
    • hondo 14:07 on 22.10.2009 Permalink

      Hey, danke für die coole Anleitung!

      Hab aber mal ne frage/problem!
      Bekomme das alles hin mit den Auswahlboxen( hab nur eine da ich keine unterKategorien benutze!) jetzt möchte ich aber eine 2te box bauen mit der ich auch die jahreszahl auswählen kann!
      dafür bräuchte ich aber irgendwie zugriff auf die jahre in denen es bereits News gibt…hab aber irgendwie keinen blassen schimmer wie ich das bewerkstelligen soll!?! eine alternative wäre natürlich zB zu sagen von 2003-heute aber selbst das ist mir noch zu hoch (typoscript ist noch nicht so mein ding)!

      Also wäre cool wenn einer eine Idee hätte wie man das hinbekommt?!?
      Gruß Hondo

  • admin 20:02 on 19.07.2008 Permalink | Reply
    Tags: , ,   

    Gendarme 0.2 

    Vor kurzem ist Gendarme 0.2 fertig geworden! Es gibt nun inzwischen auch einen Windows-Installer “gendarme-0.2.0.0-win32-setup.zip” in der Google-Gruppe zum Projekt. Nach der Installation kann man direkt loslegen … Assemblies auswählen, analysieren und den resultierenden Report betrachten.

    Inzwischen gibt es eine wirklich große Anzahl an Code-Regeln. Nicht alles ist unbedingt immer für jeden sinnvoll, aber mit diesem Klasse-Tool findet man sicher immer noch einige unerwartete Probleme … und nicht zuletzt erhält man natürlich auch wunderschönen Code, wenn man alle Regeln einhält :-)

     
  • admin 19:47 on 19.07.2008 Permalink | Reply
    Tags: , , , ,   

    NClass – Alternativer Klassendiagramm-Editor 

    Wer keine der teuren Visual Studio Versionen besitzt, kann trotzdem hübsche Klassendiagramme zeichnen und sich den Code dazu generieren lassen. Das Programm NClass erzeugt nicht nur Diagramme, die genauso gut wie die aus Visual Studio aussehen .. es kann auch etwas mehr. Beispielsweise gibt es mehr Beziehungsarten und eine Java-Unterstützung.

    Aktuell ist die Version 1.08, doch scheint die in der Entwicklung befindliche Version 1.09 schon ausreichend stabil zu sein. Diese Version bietet unter anderem eine Unterstützung für Mono (quasi Linux-Unterstützung) und einige andere coole Featuers (z.B. Zooming und schickere Diagramme).

    Das Tutorial zu dem Typo3-Such-Filter wird nächste Woche weitergehen … ich muss dazu erst einiges vorbereiten :-)

     
  • admin 17:48 on 08.07.2008 Permalink | Reply
    Tags: ,   

    Typo3-Tutorial: Kategorie-Filter für tt_news bauen 

    Heute beginne ich eine kleine Artikelreihe, in der ich zeigen will, wie man einen Suchfilter für tt_news bauen kann. Solch ein Formular ist speziell für große Seiten interessant, die ihre Nachrichten in hierarchischen Kategorien ablegen. Ziel ist das Entwickeln eines Filters, der ungefähr so aussehen wird:

    tt_news Kategorie-Filter

    tt_news Kategorie-Filter

    In Typo3 haben wir die drei Oberkategorien “Thema”, “Medientyp” und “Autor”. Alle Unterkategorien sollen jeweils einzeln in einer Liste oder Ausklappbox dargestellt werden. Dies ist mit der bereits vorhandenen CATMENU-Ansicht nicht zu realisieren.

    Anzeige der gefilterten Nachrichten

    Ja, richtig gelesen, wir fangen quasi von hinten an :-) … das Formular werden wir erst in den folgenden Artikeln zusammenbauen. Heute geht es zunächst darum wie wir das Ergebnis des Filters anzeigen können.

    Das Ergebnis wird eine GET-Variable (erzeugt vom Formular), welche die Kategorie-UID’s enthält, also so etwas wie “?categories=45,12,90“. Wir wollen uns möglichst viel Arbeit ersparen, daher nutzen wir zur Anzeige einfach das normale News-Plugin mit der LIST-Ansicht. Da wir die Kategorien kombinieren wollen, wählen wir als Kategoriemodus “Zeige alle Beiträge aus ausgewählten Kategorien (UND)”.

    Normalerweise werden die anzuzeigenden Kategorien im Plugin fest eingestellt. Alternativ gibt es auch die Möglichkeit diese per Typoscript festzulegen und da man von Typoscript aus auf GET-Variablen zugreifen kann, ist unsere Lösung schon mit einer einzigen Zeile abgetan:

    plugin.tt_news.categorySelection.data = GPvar : categories

    Dank der data-Eigenschaft können wir die Kategorie-Selektion aus der GET-Variable “categories” auslesen. Der Aufruf der Suchergebnisse würde nun also z.B. so aussehen: http://www.yourdomain.de/index.php?id=1000&categories=45,12,90

    Wer das ganze jetzt mehrmals hintereinander testet, wird feststellen, dass sich die Seite nach dem ersten Aufruf nicht mehr verändert. Dem Cache sei dank! So nützlich er auch ist, so stört er doch an dieser Stelle. Daher müssen wir noch eine weitere GET-Variable an die URL anhängen, die Typo3 signalisiert, dass nicht gecached werden soll: http://www.yourdomain.de/index.php?id=1000&categories=45,12,90&no_cache=1

    Und fertig ist die Anzeige der Ergebnisse … demnächst gehts weiter

     
    • Lina - TYPO3-Blog.Net 17:02 on 01.03.2009 Permalink

      Man muss nicht unbedingt den Cache ausschalten, sonst ist die generierung der Seiten recht belastend für den Server un langsam.

      Besser man benutzt typolink zum Erzeugen der links und setzt useCacheHash = 1. Dann werden auch die Kategory Seiten gecacht.

      Möchte man diese nicht tun sollte man zumindest das Plugin von tt_news als UserInt einbinden, damit nicht die ganze Seite neu erzeugt werden muss.

  • admin 23:19 on 26.06.2008 Permalink | Reply
    Tags: , , Netzwerkprogrammierung   

    Lidgren Netzwerkbibliothek 

    Möchte man Netzwerkspiele oder sonstige netzwerk-fähige Anwendungen schreiben, findet man eine ganze Menge guter Bibliotheken für C++ im Internet. Im .NET Bereich ist die Auswahl jedoch nicht gerade groß, dafür gibt es eine ausgezeichnete C#-Bibliothek namens Lidgren, die fast keine Wünsche offen lässt.

    Lidgren setzt auf das Netzwerkprotokoll UDP (User Datagram Protocol), baut jedoch auch Charakterisken einer TCP-Verbindung nach, was die Bibliothek sehr flexibel macht. Man kann als Programmierer selber entscheiden wie wichtig die Daten sind, die man versendet und ob die Reihenfolge beim Empfänger genau stimmen muss.

    Die Besonderheit des UDP-Protokolls besteht ja darin, dass Pakete verloren gehen können, in einer anderen Reihenfolge ankommen können … und zu allem Überfluss natürlich auch kaputt ankommen können. Alle diese Nachteile haben allerdings den Vorteil, dass diese Übertragungsart sehr schnell ist, denn das UDP-Protokoll muss nicht ständig die Reihenfolge der Pakete überprüfen. Auch werden keine Empfangsbestätigungen verschickt und dann ggf. Pakete mehrmals versendet.

    Lidgren vereint die Stärken von UDP und TCP. Jede Nachricht, die man versendet, bekommt einen Kanal zugewiesen, der den Nachrichtentyp festlegt. Folgende Kanäle sind möglich:

    • “Unreliable unordered” – Reihenfolge der Nachrichten ist unbestimmt; Nachrichten können verloren gehen.
    • “Reliable unordered” – Alle Nachrichten kommen an; Reihenfolge ist unbestimmt
    • “Sequenced” – Nachrichten können verloren gehen; Reihenfolge wird eingehalten
    • “Ordered” – Alle Nachrichten kommen in der vorgesehenen Reihenfolge an (früher oder später)

    Die Netzwerkbibliothek beherrscht darüber hinaus noch weitere Funktionen wie das kontrollierte Drosseln des Netzwerktransfers (Bandwidth Throttling), Verschlüsselung und die Zeitsynchronisation. Auch sehr interessant ist, dass man – speziell zum Testen – einen künstlichen Lag oder eine Wahrscheinlichkeit für verloren gehende Pakete definieren kann.

     
  • admin 19:14 on 22.06.2008 Permalink | Reply
    Tags: Grafikprogrammierung,   

    OpenGL-Rendering in mehrere Geräte (hdc) 

    Vor langer Zeit habe ich mal damit beschäftigt, wie es möglicht ist mit OpenGL in mehrere Bildschirmelemente (PictureBox z.B.) zu zeichnen. Bei dem Thema bekommt man sofort die Abkürzungen  “hdc” und “hrc” um die Ohren geschmissen. Was es damit auf sich hat, erfährt der interessierte Leser hier …

    Um OpenGL zu nutzen, benötigt man einen sogenannten Renderkontext (Handle of Rendering Context = HRC), der beim Start des Programms erzeugt werden muss. Dieser Kontext repräsentiert den Zustand von OpenGL, außerdem gehören dem Kontext auch alle Texturen und anderen Materialien an. Alles was man also mittels der API ändert oder in die Grafikkarte lädt, ist dem HRC zugeordnet.

    Dieser Renderkontext ist nun verbunden mit einem Gerät (Handle of Device Context = HDC), wobei Gerät symbolisch gemeint ist. Ein HDC repräsentiert keine echten physikalischen Geräte, sondern Elemente, die auf dem Bildschirm angezeigt werden; z.B. Buttons, Zeichenbereiche oder auch Menüs. Ist OpenGL mit dem Rendering fertig, so wird das entstandene Bild auf das Gerät kopiert.

    Dabei ist noch zu beachten, dass OpenGL nur auf ein HDC zeichnen kann, wenn dieses ein gültiges Pixelformat besitzt. Normalerweise wird für Grafikelemente auf der Windows-Oberfläche nie ein Pixelformat festleget. Daher müssen wir das selber tun! Und zwar mit der Funktion SetPixelFormat() … jetzt weiß OpenGL wie Farben, Transparenzwerte und andere Dinge auf dem Gerät dargestellt werden sollen.

    Zurück zum Thema … ein Renderkontext ist zu jeder Zeit mit genau einem Gerät verbunden. Möchte man nun also auf ein anderes Gerät zeichnen, muss man das Gerät wechseln mit der Funktion wglMakeCurrent. Somit könnten wir nacheinander auf zwei verschiedene Geräte zeichnen und könnten sogar jeweils alle Texturen gemeinsam verwenden, da es sich stets um den gleichen Renderkontext handelt.

    Ist das nicht erwünscht, muss man einen zweiten Renderkontext erzeugen, der dann eine andere unabhängige Szene darstellen kann. Dieser zweite Kontext muss jedoch in einem zweiten Thread genutzt werden, denn OpenGL legt fest: Es kann immer nur ein HRC pro Thread aktiv sein.

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel