Wednesday, December 22. 2010
Libraries fuer lineare Algebra Posted by Clifford Wolf
in Technical at
11:23
Comments (3) Trackbacks (0) Libraries fuer lineare Algebra
In letzter Zeit habe ich einiges zu linear Algebra C Libraries recherchiert. Hier eine kurze Aufstellung der interessantesten Dinge die ich gefunden habe:
Zunaechst die Loesungen die ich bereits kannte: GSL Bis jetzt habe ich fast alles was mathematisch/numerisch anspruchsvoller war mit dieser library gemacht. Da findet man unter anderem auch funktionen fuer die wichtigsten algorithmen aus der linearen algebra. Leider hat GSL keinen support fuer sparse Matrizen. In meinem gegenwaertigen Projekt brauche ich aber genau das. Eigen Eine C++ Library fuer lineare Algebra. Wegen operator overloading und templates ist Eigen natuerlich einfacher zu verwenden als GSL. Der wesentliche Vorteil ist aber meiner meinung nach, dass man eigene Basistypen definieren kann. Wenn man also Matrizen ueber Koerper die nicht die reellen oder komplexen Zahlen sind bauen moechte ist Eigen sicherlich einen Blick wert. Ich bin ueber Eigen im Zuge der Entwicklung von OpenSCAD gestolpert und verwende es dort fuer die in der Geometrie ueblichen 2-4 dimensionalen Matrizen. BLAS bzw. CBLAS Die low-level API fuer lineare algebra. Es gibt viele implementierungen - unter anderem eine in GSL. Komplexere algorithmen wie etwa die verschiedenen Matrizenzerlegungen muss man sich selber bauen. Im Zuge meiner recherchen bin ich dann unter anderem auf folgene Projekte gestossen: SuiteSparse Eine Sammlung kleinerer Libraries zum Arbeiten mit sparse matrizes. Ich verwende davon KLU, eine Library zum LU-Faktorisieren duenn besetzter sparse Matrizen und loesen der entsprechenden linearen Probleme. PETSc Eine groessere mathematik suite fuer MPI-basiertes parallel computing. Wurde mir von B. empfohlen. Ich hab mich aber nur ein bsichen auf der website umgesehen - fuer meine Anwendung schien mir das doch zu schwergewichtig zu sein. SelInv Ein recht interessantes paper von Lin Lin mit dem Titel "SelInv -- An algorithm for selected inversion of a sparse symmetric matrix". Fast genau das was ich eigentlich gesucht habe. Mal sehen wie gross meine Matrizen wirklich werden. Wenn ich mit KLU an die grenzen Stosse werde ich wohl versuchen etwas in dieser Richtung zu implementieren. Habt Ihr noch Hinweise fuer mich (oder andere Leser) zu guten linear algebra libraries? Dann schreibt doch bitte ein Kommentar.. Zu meiner Anwendung: Ich versuche derzeit die Eigenschaften einzelner Zeilen der Inversen von bestimmten symetrischen sparse Matrizen (dimension etwa 50.000 - 250.000) zu untersuchen - freue mich aber auch ueber Hinweise auf Libraries und Tools die nicht auf dieses Problem passen. Happy number crunching! Wednesday, April 28. 2010LaTeX - Wurzel mit Haken
Ich schreibe ja recht viele Texte mit LaTeX. Kuerzlich hat A. folgendes Problem an mich herangetragen, dass ich nicht auf anhieb loesen konnte: Wurzeln sollten mit einem "Haken" hinten gesetzt werden, damit man eindeutig erkennen kann wo der Ausdruck unter der Wurzel endet.
![]() W. aus Graz hat daraufhin folgendes Macro ausgegraben das offenbar schon seit einiger Zeit im Netz die Runde macht und den Job erledigt: \def\hksqrt{\mathpalette\DHLhksqrt} Leider unterstuetzt diese Loesung keine Wurzeln belibiger Ordnung (wie die aussere Wurzel und die Wurzel im Zaehler in der Abbildung). Daher hab ich die o.g. Loesung etwas aufgebohrt so dass sie wie das LaTeX \sqrt Kommando die Ordnung der Wurzel als optionales Argument versteht: \documentclass{article} Vielleicht googelt ja mal jemand nach dem Problem und stolpert dann dabei ueber mein Blog.. PS: Morgen (Donnerstag, 29.4.2010) halte ich ab 19:00 im Metalab einen Vortrag ueber Graphiken mit LaTeX erstellen: http://www.luga.at/veranstaltungen/latex-2010-04-29/ PPS: Im Metalab gibt es ein regelmaessiges TeX/LaTeX Treffen: http://metalab.at/wiki/Leidensgruppe_LaTeX Sunday, January 24. 2010
Was muss ein Taschenrechner koennen ... Posted by Clifford Wolf
in Technical at
14:11
Comments (2) Trackbacks (0) Was muss ein Taschenrechner koennen (Teil 3)
Vor ziemlich genau 2 Jahren habe ich ueber den CASIO fx-991ES geblogged. Bis vor ein paar Tagen war das meiner Meinung nach der empfehlenswerteste wissenschaftliche Rechner in der unteren Preisklasse (unter 30 EUR).
![]() Vom Funktionsumfang sind sich die Rechner sehr aehnlich. Beide koennen nummerisch intergrieren und differenzieren. Beide beinhalten einen newton solver fuer gleichungen und haben einen modus zum loesen linearer systeme mit 2 oder 3 unbekannten sowie quadratischer und kubischer gleichungen. Beide koennen im komplexen (dazu unten noch etwas mehr) mit listen und mit matrizen rechnen und haben funktionen zur statistischen analyse. jedoch finde ich den zugang zu den aufwendigeren oder seltener benutzten funktionen bei SHARP intuitiver und ich habe vor allem den eindruck, dass das display besser genutzt wird. So faellt es beim CASIO beim eingeben von Matrizen schon recht schwer zu erkennen was man da eigentlich gerade tut, waehrend die selbe Aufgbae beim SHARP bei einem etwa gleich grossen Display kein Problem darstellt. Wenn man weiter ins detail geht findet man auch einige funktionale unterschiede. Z.bsp. kann der SHARP matrizen invertieren. Beim numerischen integrieren und differenzieren kann man beim SHARP die groesse des epsilons angeben. Die Summenfunktion unterstuetzt eine Schrittweite. Beim CASIO sucht man diese features vergeblich. Der SHARP hat einen Funktionskatalog fuer exotischere Funktionen der mich am ersten Blick etwas an die Bedienung von meinem HP50g erinnert. Auch die Liste der Konstanten und die Liste der unit conversions sind beim SHARP in einem menue abrufbar. Bei CASIO muss mann die Nummer der Konstant bzw. der unit conversion kennen (eine Liste gibt es aber auf der innenseite des deckels). Die Aufwendigeren Funktionen (solver, matrizenrechnungen, etc) haben beim SHARP ein meiner meinung nach ein viel intuitiveres interface. Der SHARP hat mehr Speicher als der CASIO - unter anderem einen Speicher um bis zu 4 haeufig verwendete Terme ablegen zu koennen und 4 speicher (D1 - D4) auf die man haeufig verwendete taschenrechner funktionen (z.bsp. solche die sonst nur ueber menues erreichbar sind) legen kann. Sehr angenehm finde ich die Art wie beim SHARP mit zahlenbasen ungleich 10 gerechnet und umgewandelt wird. Das geht zwar mit dem CASIO auch alles, ist aber beim SHARP um einiges konfortabler geloest. Leider ist mein groesster Kritikpunkt am CASIO auch beim SHARP gueltig: er kann nicht mit komplexen Exponenten rechnen. Ich hatte die Hoffnung, dass man zumindest einen geschlossenen Term fuer a^b mit komplexem a und b in einem der formelspeicher ablegen kann. Aber leider gestaltet sich das als etwas aufwendiger, weil die Umwandlung von komplexen Zahlen zwsichen Komponentenschreibweise und Polarkoordinaten und das extrahieren der einzelnen Elemente nur im Ergebnis einer Berechnung moeglich und nicht als Funktion auf eine Variable anwendbar ist. Zwar kann man mit re=(x+conj(x))/2 und im=(x-conj(x))/2 real und imaginaerteil extrahieren und mit abs(x) den betrag, ohne atan2() und ohne fallunterscheidung ist das zufuss berechnen des winkels in der gaussschen zahlenebene aber zu aufwendig um dann einen geschlossenen Ausdruck sinnvoll eingeben zu koennen. Es ist mir nach wie vor ein Raetsel wesshalb die Hersteller von Taschenrechnern zwar einen Newton Solver in ihre Geraete um knappe 20 EUR einbauen, nicht aber die Zerlegung der Berechnung eines komplexen Exponenten implementieren koennen. Wer sich einen neuen Taschenrechner anschaffen, dabei aber nicht viel Geld ausgeben moechte dem kann ich den SHARP EL-W506 sehr ans Herz legen. Bei mir hat er den CASIO fx-991ES als den Taschenrechner den ich immer dabei habe abgeloest. Thursday, January 14. 2010rpn, iomem, teletype
Im letzten Maerz habe ich angekuendigt in unregelmaessigen Abstaenden ueber die kleinen Tools zu schreiben die ich mir im laufe der Zeit fuer die unterschiedlichsten Aufgaben zusammengestoepselt habe. Vor 10 Monaten ging es um einige JavaScript Programme fuer Berechnungen aus dem Bereich der Elektrotechnik. In diesem Post will ich drei Tools vorstellen die eher in den Bereich embedded bzw. hardwarenahe entwicklung gehen.
Clifford's Tools: http://svn.clifford.at/tools/trunk/ rpn und rpn64: Ueber dieses Programm und das nachfolgende habe ich 2007 schon mal in aller kuerze geblogged. Rpn ist ein einfacher rechner mit 32 bit integern fuer rechenoperationen in reverse polnish notation. rpn64 ist die version fuer 64 bit integer. Das eigentliche Highlight des Rechners ist aber nicht das rechnen an sich sondern das format seiner Ausgabe: $ rpn 42 16 shl 23 or 0xf02a0017 add HEX: 0xf054002e, DEC: 4032036910, OCT: 036025000056 GIGA: 3.7551, MEGA: 3845.2500, KILO: 3937536.0449 BIN: 11110000010101000000000000101110 |31 24|23 16|15 8|7 0| +---------+---------+---------+---------+ |1111 0000|0101 0100|0000 0000|0010 1110| +---------+---------+---------+---------+ |0 7|8 15|16 23|24 31| Wenn man oft damit zu tun hat die Inhalte von irgendwechen Registern auseinanderzuklauben oder mal schnell fuer einen test das richtige wort zusammenstoepseln muss das in ein register geschrieben werden soll, dann ist dieses tool eine wertvolle hilfe. "rpn --help" erzeugt eine 4 seitige uebersicht ueber alle aufrufarten und operationen die rpn versteht. Unter anderem gehen einfache rechnungen und bitoperationen, ein uns ausgabe kann in binaer, dezimal, hexadezimal oder oktal erfolgen. Wenn es keine angabe zum ausgabeformat gibt wird das oben gezeigte verbose format verwendet. Ich verwende das tool hauptsaechlich auf der kommandozeile um bitmuster zu zerlegen. machnmal ist es aber auch praktisch um z.bsp. kleine shell scripts zu schreiben die wiederkehrende berechnung/analyse von bestimmten bitmustern wie z.bsp. statusregistern zu automatisieren. iomem: iomem ist ein tool das man auf PCs wohl besser nicht starten sollte: es erlaubt den direkten zugriff auf memory-gemappte register. in embedded systems kann das aber sehr praktisch sein, wenn man fuer einfache aufgaben nicht gleich einen treibewr schreiben muss sondern mit iomem direkt im speicher herumpfuschen kann. Um z.Bsp. das 32 bit register an der Addresse 0x12345678 auszulesen ruft man "iomem r32 0x12345678" auf. Um die vier 16 bit register an der io adresse 0x100 auszulesen wuerde man "iomem r16-port:4 0x100" ausfuehren. es gibt modi um auf registerbloecke zu lesen und zu schreiben und um mehrere lese oder schreib zugriffe auf ein fifo register zu machen. Man kann auch pollend darauf warten das ein register ein bestimmtes bitmuster annimmt. Ich empfehle aber das Programm nur zu verwenden wenn man weiss was man da tut. Es gibt einen grund warum es normalerweise kein command line tool gibt um direkt hardware register zu manipulieren.. teletype: teletype is ein raw serial terminal. mit "raw" meine ich in diesem fall, dass es nicht versucht terminal escape codes selbst zu interpretieren sonder die bytes von der seriellen schnittstelle 1:1 an das controlling tty weitergibt. ansi, vt100, und andere escape codes muss das controlling tty selbst auswerten - oder der user bekommt den schrott halt angezeigt. das hat den vorteil, dass man alle features eines X terminal windows auch beim verwenden der seriellen schnittstelle hat. Insbesondere dass bei curses basierenden serial terminals die history funktion des terminal windows verloren geht hat mich immer sehr gestoert. dafuer hat teleteype einige features die andere terminal-programme nicht haben wenn es um das automatisieren oder teilautomatisieren von ablaeufen geht. speziell so dinge wie mit kleinen shell scripts devices flashen geht damit recht leicht. Wen man das programm ohne weitere parameter startet bekommt man eine uebersicht der optionen und befehle: $ teletype --------------------------------------------------------- Usage: teletype device [speed] [escape-letter] [command(s)] Default speed is 9600 Baud. Default escape letter is 'A'. Supported speed rates: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Control Key Kombos: Ctrl-A A Send a Ctrl-A over the line Ctrl-A B Send a break over the line Ctrl-A 0 Send a a single zero byte over the line Ctrl-A H Print help message (command overview) Ctrl-A R Toggle RTS (Ready To Send) signal Ctrl-A D Toggle DTR (Data Terminal Ready) signal Ctrl-A T Toggle timestamp-mode and reset timer Ctrl-A L Set slow send mode (N chars/sec, 0=unlimited) Ctrl-A N Create network link to remote TCP/IP port Ctrl-A E Toggle local terminal echo Ctrl-A C Run a chat script (or any other command such as 'sx') Ctrl-A W Wait one second (this is usefull for scripts) Ctrl-A U Set baud rate (use with care!) Ctrl-A S Print line status Ctrl-A \ Exit without serial reset Ctrl-A X Exit with serial reset Ctrl-A . [x] Change escape key from Ctrl-A to Ctrl-[x] Commands are in the form of '-<Key><Argument>'. E.g.: teletype /dev/tts 9600 -b -l10 -c'chat -f myscript.txt' -l0 -u115200 -c'sx datafile.bin' -x --------------------------------------------------------- Friday, August 28. 2009
Letzte Erinnerung: Linuxwochenende ... Posted by Clifford Wolf
in Events at
10:59
Comments (2) Trackbacks (0) Letzte Erinnerung: Linuxwochenende 2009 - Call for Papers
An alle die noch nicht eingerecht haben: Der CfP fuer das diesjaehrige Linuxwochenende laeuft nur noch bis Montag! Mehr Informationen rund um das Linuxwochenende und Webapp zum Einreichen von Vortraegen gibt es auf der Homepage:
http://linuxwochenende2009.luga.at/ Das Linuxwochenende selbst ist dann am 24. und 25. Oktober. Wednesday, August 5. 2009Int vs. Float vs. Double
Ich erzaehle seit einiger Zeit bei allen moeglichen Gelegenheiten, dass meiner Meinung nach Scriptsprachen in Zukunft auf die verwendung von Integer typen verzichten sollten und statt dessen double precission floats als basis number-type verwenden sollten, oder zumindest bei divisionen automatisch nach double float casten sollten. Offensichtlich kann double float mit der 56 bit Mantisse ein 32 bit vollstaendig abbilden. D.h. es kaeme hier in keiner weise zu einem Verlust an genauigkeit. Das mehr an Speicherplatz verbrauch ist ebenfalls zu vernachlaessigen: das geht in aller Regel im Verwaltungsoverhead der VM unter.
Die Vorteile liegen auf der Hand: ersten muss man sich bei Sprachen mit dynamischer typisierung dann keine gedanken darueber machen, ob eine variable jetzt nun int oder float ist und wie eine divison nun definiert ist (das ist ein punkt der mich an python 2 aergert - afaik hat kommt bei python 3 bei einer division immer ein float raus, ausser man verwenden den speziellen // operator fuer integer divisionen) und andererseit macht es das VM design etwas einfacher wenn man es nur mit einem number-type zu tun hat. Das Gegenargument bleibt immer die performance. Also hab ich mal einen kleinen Test mit zwei typischen integer algorithmen gemacht: Das zaehlen von primzahlen mit einem ganz trivialen primtest und einfach nur zaehlen ohne weitere berechnungen: int testi(int n) { int counter = 0; for (int i = 2; i < n; i++) { for (int j = 2; j < i; j++) if (i % j == 0) goto next_candidate; counter++; next_candidate:; } return counter; } int test2i(int a, int b) { int counter = 0; for (int i = 0; i < a; i += b) for (int j = 0; j < a; j += b) counter++; return counter; } diese funktionen hab ich drei mal implementiert: fuer die C-typen int, float und double. bei float und double wird die modulo division mit der math.h funktion fmodf() bzw. fmod() umgesetzt. die implentierungen hab ich in jeweils eigene c-file gelegt und nochmals ein extra c-file mit einer main() implentierung erstellt. durch die verwendung jeweils eigener c-dateien soll sichergestellt werden, dass der compiler die funktion moeglichst generisch uebersetzt und nicht mit inlining und const folding in die main implementierung hineinzieht. Compiliert habe ich das ganze mit gcc 4.3.1 (-O3 -march=i386) und getestet auf meinem AMD Athlon(tm) 64 X2 Dual Core Processor 6000+. Im Test wird die erste funktion jeweils mit dem parameter 100000 und die zweite jeweils mit den parametern 40000 und 1 gestartet. Das Ergebnis des Primzahlen-Tests: Die integer variante braucht ganze 6,614 Sekunden um durchzulaufen. Die float bzw. double variante braucht 4,171 bzw. 4,172 Sekunden, ist also sogar deutchlich schneller! Das Ergebnis des Zaehlerschleifen-Tests: Die integer variante braucht 1,666 Sekuden. Die float bzw. double variante braucht 2,486 bzw. 2,450 Sekunden. Hier hat die integer variante klar die nase vorn! Fazit: Es liegen keine Welten zwischen integer und float performance. Gerade bei interpretierten Sprachen durfte sich der tatsaechliche Performanceunterschied kaum bemerkbar machen. Bei JIT compilation muesste man sich da schon mehr gedanken machen um die maximale performance rausholen zu koennen, und das erste beispiel zeigt, dass hier ein JIT compiler unter umstaenden sogar mehr performance rausholen koennte wenn integer typen (zumindest in bestimmten faellen) zu floats kompiliert werden. Der Python3 Ansatz den Divisionsoperator unabhaenig von den Operanden als floating point division zu implementieren und einen eigenen operator fuer integer divisionen einzufuehren erscheint mir aber in jedem falle sinnvoll. Die Bestrebungen in ECMA-Script 4 und Perl 6 eigene int typen einzufuehren halte ich dafuer fuer fragwuerdig, vor allem weil man davon ausgehen kann, dass bis zur umsetzung von ECMA-Script 4 und Perl 6 wahrscheinlich auch alle embedded CPUs, die maechtig genug zum hosten dieser Sprachen sind (ECMA-Script findet z.Bsp. bereits Anwendung bei den HD-DVD Menues als VM-Backend) ueber mindestens so schnelle floating point wie fixkomma einheiten verfuegen werden. Thursday, July 9. 2009
Building and installing qcad ... Posted by Clifford Wolf
in Technical at
10:27
Comments (3) Trackbacks (0) Building and installing qcad 2.0.5.0-1 community edition
Ich hatte in den letzten Wochen gleich mehrmals das recht zweifelhafte vergnuegen qcad von den Sourcen zu bauen. Offenbar hat der autor nur ein sehr eingeschraenktes interesse daran diesen prozess so problemlos wie moeglich zu gestalten. Einerseits gibt es kein "make install", andererseit gibt es einige troubles mit aktuellen gcc versionen. Letzteres ist das gleiche drama wie bei vielen anderen packages auch: die neuen aufgeraeumten C++ headers includen nicht mehr
http://www.clifford.at/writings/qcad-2.0.5.0-1-build.patch Vielleicht ist mit diesem kleinen patch ja auch noch dem einen oder anderen ausser mir geholfen... Saturday, July 4. 2009
Oberstufen Physik Buch "Physik ... Posted by Clifford Wolf
in Buch und Film at
15:33
Comments (8) Trackbacks (0) Oberstufen Physik Buch "Physik 5" von öbvhpt..
Ich mache ja gerade die SBP (Studienberechtigungspruefung) und habe mir zu diesem Zweck Lehrbuecher fuer die AHS Oberstufe aus den Faechern Physik und Mathematik besorgt. Heute habe ich angefangen das Physik Buch fuer die 5. Klasse aus dem ÖBVHPT Verlag (ISBN 13: 978-3-209-04373-3) zu lesen und komme aus dem Staunen nicht mehr heraus. Gleich am Ende des ersten Kapitels auf der Seite 10 finde ich zum Beispiel folgende zwei Absaetze:
Das Licht legt in ca. 3*108 s genau die Strecke von einem Meter zurueck. Die Entfernung zwischen Sonne und Erde betraegt ca. 150 Mio. km. Das bedeutet, dass das Licht 1,5 * 1011 m : 3*108 s = 500 s = 8,33 min benoetigt. Ich spiele mal kurz Captain Obvious und erklaere was da alles falsch ist: 1.) Das Licht legt in einer Sekunde die Strecke von ca. 3*108 Metern zurueck - nicht umgekehrt. In diesem ersten Kapitel, an dessen Ende die beiden oben zitierten Absätze stehen, geht es um die Basisgroessen Zeit und Länge. Da sollte man die beiden als Autor eher nicht verwechseln.. 2.) Sehen wir uns einmal die Einheiten aus dem Term im ersten Absatz an: m : s = s = s ganz offensichtlich stimmt hier etwas nicht mit den Dimensionen! Ganz klar: 3*108 ist die Lichtgeschwindigkeit in Metern pro Sekunde. Die Einheit sollte also "m/s" und nicht "s" sein: m : m/s = s = s So passen die Dimensionen: Die Laenge laenge laesst sich auf der linken Seite wegkürzen und die Zeit bleibt übrig. Es ist ja auch die Lichtgeschwindigkeit durch die hier dividiert wird und nicht die Lichtzeit.. ![]() 3.) Der gesamte zweite Absatz ist Schwachsinn. Sonnenauf- und -untergang entstehen durch die Drehung der Erde um die eigene Achse und haben nichts mit der Drehung von Erde und Sonne um einen gemeinsamen Schwerpunkt zu tun (in den knapp 8 Minuten drehen sich die beiden übrigens um gerade mal 0.096 mrad umeinander). D.h., die Sonne befindet sich staendig in der Richtung des eintreffenden Lichts. Dieses ist zwar 8 Minuten alt, da aber Sonne und Erde in dieser Zeit an ihrem Platz bleiben und sich lediglich die Erde um ihre eigene Achse dreht sind die Laufzeit des Lichts, die Lichtgeschwindigkeit und die Entfernungen der beiden Himmelskörper zueinander irrelevant. Dieser Denkfehler ist insbesondere deshalb tragisch, weil es sich hier um den erzählerischen Aufhaenger dieses ersten Kapitels handelt. Damit stellen sich fuer mich zwei Fragen: 1. Wer schreibt so einen Schwachsinn? Und 2. wer liest das Korrektur? Das Bundesministerium fuer Bildung Wissenschaft und Kunst hat mit Bescheid GZ 25.803/1-V/9/03 vom 29.7.2004 dieses Buch als für den Unterrichtsgebrauch an allgemeinbildenden höheren Schulen für die 5. und 6. Klasse als geeignet erklärt. Liest das dort keiner vorher? Mein Exemplar ist übrigens ein Nachdruck von 2007... Fehler passieren - das kenne ich nicht zuletzt von meinen eigenen Publikationen. Aber wie kommt es dass solche Ballungen von Fehlern jahrelang auf einer der ersten Seiten eines Schulbuches zu finden sind? Wie kann es sein, dass zwei Autoren (zumindest stehen zwei Namen am Umschlag) gemeinsam an einem solchen Werk arbeiten (Peer Review?!) und dieses dann noch von einem Ministerium geprüft wird und dann kommt so etwas dabei heraus? Ich jedenfalls bin fassungslos... Ansonsten macht das Buch vom grob Drueberfliegen eigentlich einen sehr guten Eindruck. Die Themen werden in einem sehr einfachem Erzaehlstil und anhand recht anschaulicher Experimente aufgearbeitet. Ich gewinne den Eindruck, die Oberstufenphysik haette mir in dem entsprechenden Alter Spass gemacht... Heute hat das zwar auch etwas Unterhaltsames, ich wuerde aber lieber den halbverstaubten Dirschmid aus dem Regal nehmen und darin etwas schmoekern statt die AHS Physik nachzuholen, aber das ist wohl eher mein privates Motivationsproblem und hat wenig mit dem AHS Physikbuch an sich zu tun.. Saturday, March 14. 2009
Clifford's Tools: JavaScript ... Posted by Clifford Wolf
in Links, Private, Technical at
13:42
Comments (0) Trackbacks (0) Clifford's Tools: JavaScript Electronik Helferlein
Meinereiner wartet seit einiger Zeit ein kleines Subversion Repository mit allen moeglichen kleinen Tools, die ich fuer den Eigenbedarf entwickle. Ich habe mich nun entschlossen in unregelmaessigen Abstaenden das eine oder andere dieser Tools in meinem Blog vorzustellen.
Clifford's Tools: http://svn.clifford.at/tools/trunk/ In den letzten Monaten hatte ich wieder mal ein bischen Zeit zum elektronikbasteln und habe im Zuge der Basteleien ein paar im Webbrowser lauffaehige JavaScript Tools entwickelt um mich selbst bei der Loesung einiger haeufiger Probleme beim Designen von elektronischen Schaltungen zu unterstuetzen. RLC-Filter Calculator: http://svn.clifford.at/tools/trunk/electrotools/fcalc.html ![]() E6 Resistor Calculator: http://svn.clifford.at/tools/trunk/electrotools/rcalc.html Das naechste Tool ist mathematisch weniger interessant: Es loest eine Variation des Rucksackproblems durch einfaches Ausprobieren: Im metalab haben wir die E6 Widerstandsreihe im Sortiment. Werte die ausserhalb der E6 Reihe liegen muessen durch eine Kombination von mehreren Widerstandswerten genaehert werden. Das Programm rcalc findet zu einem gegebenen Widerstandswert jene Schaltungen die am besten geeignet sind diesen Wert zu naehern. Mit der Kombination von bis zu drei Widerstaenden laesst sich so gut wie jeder Wert so weit naehern, dass der gewuensche Wert wieder innerhalb der 1%igen Bauteiltoleranz liegt. Voltage Divider Calculator: http://svn.clifford.at/tools/trunk/electrotools/vdcalc.html Das dritte und letzte Tool das ich in diesem Blog Eintrag vorstellen moechte ist eine Variation des oben vorgestellten E6 Resistor Calculators: Als Designer elektronischer Schaltungen steht man oft vor der Aufgabe Spannungsteiler moeglichst genau dimensionieren zu muessen. Auch hier hat man nicht immer jeden belibigen Widerstandswert griffbereit sonder muss sich z.Bsp. im metalab wieder auf die E6 Reihe beschraenken. Das Programm vdcalc ermittelt die passenden Widerstandskombinationen und rechnet dann mit den Bauteiltoleranzen auch die Toleranzen fuer die Spannungen zurueck. Falls sich jemand fragen sollte: Die Toleranzen fuer V1 sind z.Bsp. dann interessant wenn man den Spannungsteiler zum parametrieren eines Festspannungsreglers verwendet der auf eine bestimmte Spannung V2 regelt. Thursday, January 1. 2009
Papers zu Lock-Free und Wait-Free ... Posted by Clifford Wolf
in Technical at
22:29
Comments (2) Trackbacks (0) Papers zu Lock-Free und Wait-Free Algorithmen
Herlihy, M. Wait-free Synchronization. ACM Transactions on Programming Languages and Systems 13, 1 (1991), 124-149.
Andrei Alexandrescu. Lock-Free Data Structures. December 17, 2007. M. Herlihy and J. Wing. Linearizability: A Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, Vol. 12, No. 3, July 1990, Pages 463-492. B.N. Bershad. Practical Considerations for Non-Blocking Concurrent Objects. Proceedings of the 13th International Conference on Distributed Computing Systems (DCS), pp. 264-273, May 1993. Also published as a Carnegie-Mellon University Technical Report CMU-CS-91-183, October 1991. Monday, December 29. 2008
Windows Software Hitliste Posted by Clifford Wolf
in Technical at
07:10
Comments (13) Trackbacks (0) Windows Software Hitliste
Ich installiere gerade die neue CAD Station im Metalab. Aus diesem Anlass poste ich hier mal eine Liste von Software die ich normalerweise auf einem Windows System installiere damit es fuer mich verwendbar wird:
Firefox und diverse Add-ons:
Unix Tools auf Windows:
Connectivity mit UNIX:
Der uebliche Krempel von Adobe:
Subversion:
Kleine Tools die man haben will:
Weitere Software (bei Bedarf):
Wissenschaft und Technik (bei Bedarf):
Last but not least meine reinstall scripte um mit Dualboot aus Linux Images vom Windows schnell und bequem erzeugen und rueckspielen zu koennen: Fuer Hinweise zu weiterer Free- oder Free-as-in-free-beer-Software, die Windows etwas brauchbarer oder leichter zu ertragen macht bin ich natuerlich dankbar. Comments zu diesem Blog-Eintrag sind ein geeigneter Ort fuer soche Hinweise.. Thursday, October 23. 2008Namensaenderrung
Seit 10 Jahren nehme ich es mir vor, heute habe ich es durchgezogen: Jetzt ist "Clifford" mein ganz offizieller Vorname. Den neuen Staatsbuergerschaftsnachweis hab ich schon. Neuer Pass, Fuehrerschein, Geburtsurkunde, und was man sonst noch so braucht wenn man einen Namen hat folgt in den naechsten Tagen und Wochen... Mein Dank gilt A. fuer die tolle Unterstuetzung.
Wednesday, September 17. 2008
ffmpeg: video via dv1394 und audio ... Posted by Clifford Wolf
in Technical at
15:10
Comments (3) Trackbacks (0) ffmpeg: video via dv1394 und audio via OSS
Schoen langsam verstehe ich, wie das bei ffmpeg so rennt: Alle Infos die man zum benutzen so braucht findet man eh im Sourcecode, und wenn es dann auch noch wie angepriessen funktionieren soll dann muss man halt ein bischen patchen. Also ich persoenlich mag so etwas ja sehr gerne: bis auf die Sache mit der Schokolade ein Programm wie ein Ueberraschungsei. Nur ob alle Anwender so denken?
Wie dem auch sei: Mit dem oben verlinkten Patch tut ffmpeg endlich so wie ich mir das von Anfang an erwartet habe. ffmpeg -f dv -i /dev/dv1394/0 -f oss -i /dev/sound/dsp -vb 1000000 -y -map 0.0 -map 1.0 demo.avi Wednesday, September 17. 2008
Linuxwochenende 2008: 20./21. September Posted by Clifford Wolf
in Events, Private, Technical at
03:01
Comments (0) Trackbacks (0) Linuxwochenende 2008: 20./21. September
Kommenden Samstag und Sonntag findet im Wiener Metalab das Linuxwochenende 2008 statt. Programm gibt es auf der Homepage:
Wenn folgendes so hinhaut, wie ich mir das erhoffe, wird es auch einen Videomitschnitt mit Sound direkt vom Speaker-Mikrophon geben, obwohl meine DV Kamera keinen Audio-Eingang hat. Ein kleiner Job fuer FFMPEG - aber ein grosser Schritt fuer die semiautomatisierte Aufzeichnung von Vortraegen im Metalab. ffmpeg \ -f dv -i <( dvgrab -noavc -format raw - 2> dvgrab.err ) \ -itsoffset 0.7 -f s16le -ar 44100 -ac 1 -i <( arecord -f S16_LE -c1 -r44100 - 2> arecord.err ) \ -vb 1000000 -y -map 0.0 -map 1.0 demo.avi Thursday, September 11. 2008
Vortraege in Graz - CMOS und GIT Posted by Clifford Wolf
in Events, Private, Technical at
10:11
Comment (1) Trackbacks (0) Vortraege in Graz - CMOS und GIT
Heute und morgen halte ich Vortraege auf der FH-Joanneum in Graz.
(Offen fuer alle die es interessiert und bei freiem Eintritt.) Donnerstag 11. September, 15:00: Vom (MOSFET) Transistor zum (CMOS) Gatter Freitag 12. September, 14:00: Sourcecode Management mit GIT Es wird Videoaufzeichnungen geben. |
Calendar
QuicksearchArchivesCategoriesSyndicate This BlogBlog Administration |