Beiträge von Incazzato
-
-
-
-
Ich bräuchte eine Flash-App (zum Einbetten in eine normale webseite), die zu einem Audio-File einen visuellen Equalizer anzeigt.
Es sollte eigentlich ganz einfach sein, allerdings habe ich davon keine Ahnung und möchte mir die Einlernzeit sparen.
Im Wesentlichen sollte es genügen, den Code unter http://www.communitymx.com/content/article.cfm?cid=8E9A0 zu kopieren.
Falls jemand weiß, wie man das hinkriegt, bitte ich um Kontaktaufnahme. -
Vielen Dank für die Zur-Verfügung-Stellung von Hirnschmalz!
Der String 955926665920926151968 scheint aber in dem von dir geposteten HTML-Fragment nicht aufzutauchen..
Eben das scheint die zu knackende Nuss sein. Dieser String ist nicht nur für jedes File anders, er ändert sich auch, wenn ich das gleiche File zweimal hintereinander runterlade. Ich habe die URL auch nirgends im Code gefunden, sie wurde vom Downloadmanager (in diesem Fall ein Firefox-Plugin) als Quelle angezeigt.
Mit wget und mit sed bin ich auch einigermaßen vertraut (allerdings spreche ich diese Sprache nur in nüchternem Zustand, auch dann nur gebrochen...), aber so "einfach" scheint es in diesem Fall nicht zu gehen.
Ich tüftle gerade darüber, wie genau eigentlich HTML-form-Elemente funktionieren. Mir scheint, dass hier die Download-URL abhängig von einigen Parametern serverseitig erzeugt wird (ich vermute vom Perl-Skript "hoeren.pl", dieses scheint im DL-Manager auch als "Referrer-URL" auf) und nur für einige Minuten funktioniert.
Also müsste wohl auch ein Skript diesen Umweg nehmen.Gibt es nicht eine Möglichkeit, irgendwie einen Browser so zu skripten, dass er der Reihe nach alle Elemente der Dropdown-Box auswählt und anschließend auf den Link "klickt"?
Hier noch ein bisschen relevanter javascript-Code, trägt aber nicht wirklich zur Erleuchtung bei:
Code
Alles anzeigenfunction wt_sendinfo(p, mode) { if ((typeof (time_start) != "number" && (wt_be != "" || p != "")) || document.layers) wt_send(p, mode); }; function wt_send(p, mode) { if (mode == "link") { wt_linktrack_p = p; wt_ln = "manual"; wt_registerEvent( window, (wt_browserNameIE && wt_typeof(window.onbeforeunload)) ? "beforeunload" : "unload", wt_unload); return; } ; if (mode == "click") { wt_linktrack_p = p; wt_unload(); return; } ; var wt_content = (p ? p : wt_be); if (!wt_content) wt_content = "no_content"; var wt_c = wt_escape(wt_content) + ",1,"; wt_c += wt_baseparams(); wt_c += wt_encoding(); var wt_la = ""; if (typeof (navigator.language) == "string") wt_la = navigator.language; else if (typeof (navigator.userLanguage) == "string") wt_la = navigator.userLanguage; var wt_len = navigator.plugins.length, wt_np = ""; if (wt_len > 0) { var wt_plugs = Array(); var wt_np = ''; for ( var i = 0; i < wt_len; i++) { if (navigator.plugins && navigator.appName != 'Microsoft Internet Explorer') { if (navigator.plugins[i].name == "Shockwave Flash") { wt_np = navigator.plugins[i].description; } else { wt_np = navigator.plugins[i].name; } ; for ( var j in wt_plugs) { if (wt_np == wt_plugs[j]) wt_np = ""; } ; if (wt_np != "") { wt_plugs.push(wt_np); } } } ; wt_np = wt_plugs.join("|"); } ; if (wt_ov) wt_c += "&ov=" + wt_escape(wt_ov); if (wt_cr) wt_c += "&cr=" + wt_escape(wt_cr); if (wt_oi) wt_c += "&oi=" + wt_escape(wt_oi); if (wt_ba) wt_c += "&ba=" + wt_escape(wt_ba); if (wt_co) wt_c += "&co=" + wt_escape(wt_co); if (wt_qn) wt_c += "&qn=" + wt_escape(wt_qn); if (wt_ca) wt_c += "&ca=" + wt_escape(wt_ca); if (wt_pi) wt_c += "&pi=" + wt_escape(wt_pi); if (wt_st) wt_c += "&st=" + wt_escape(wt_st); if (wt_cd) wt_c += "&cd=" + wt_escape(wt_cd); if (wt_t1) wt_c += "&t1=" + wt_escape(wt_t1); if (wt_t2) wt_c += "&t2=" + wt_escape(wt_t2); if (wt_la) wt_c += "&la=" + wt_escape(wt_la); if (wt_cg) wt_c += "&cg=" + wt_escape(wt_cg); if (wt_mcvalue) wt_c += "&mcv=" + wt_escape(wt_mcvalue); if (wt_length(wt_mcvalue)) { wt_c += "&mc=" + wt_mc; wt_c += "&mcd=" + wt_location().hostname; } ; if (wt_pa) wt_c += "&pa=" + wt_escape(wt_maxlen(wt_pa, 255)); if (wt_lp) wt_c += "&lp=" + wt_escape(wt_maxlen(wt_lp, 255)); if (wt_kw) wt_c += "&kw=" + wt_escape(wt_maxlen(wt_kw, 255)); if (wt_is) wt_c += "&is=" + wt_escape(wt_maxlen(wt_is, 255)); if (wt_cookie == "1") { wt_c += "&sid=" + wt_cookie_sid + "&l_v=" + wt_cookie_l_v + "&eid=" + wt_cookie_eid + "&one=" + (wt_cookie_one ? "1" : "0"); if (wt_cookie_one) wt_c += "&np=" + wt_escape(wt_np); } else { wt_c += "&np=" + wt_escape(wt_np); } ; wt_quicksend(wt_c); };
-
Die Wochenzeitung "Die Zeit" bietet ein Abo für Inhalte als Audiodateien (MP3-Format), auch ein Archiv, das bis 2004 zurückreicht, ist dabei zugänglich. Insgesamt stehen ca. 280 zip-Archive (je eines pro Ausgabe) zur Verfügung. Nachdem man sich auf audio.zeit.de eingeloggt hat, gibt es eine dropdown-box, in der man die Ausgabe auswählt. Nach anschließendem Klick auf einen Link (mit einer javascript-Funktion als Ziel) startet der Download.
Die Downloadadresse ist offensichtlich an die session gebunden und außerdem nur für einige Minuten gültig. Beispiel:
http://955926665920926151968.horchen.zeit.de/media/09/13/Au…DIE_ZEIT_13.zipIch gehe davon aus, dass es für mich legal wäre, etwa über ein Skript alle Ausgaben ohne viel Herumgeklicke herunterzuladen, weil ich ja regulären Zugang zu den Inhalten selbst habe. Liege ich damit falsch?
Bliebe nur noch die Frage, wie sich das bewerkstelligen ließe. Ich habe wenig bis keine Erfahrung mit Webentwicklung, durchblicke aber ungefähr den Ablauf und bin mir sicher, dass es mit wenig Code möglich wäre, so etwas zu machen. Es würde mich aber sicher viele Stunden kosten, auf mich allein gestellt eine funktionierende Lösung zu finden. Ich bitte deshalb um einen Tipp von Leuten mit mehr Erfahrung in diesem Bereich, auf welchem Wege sich sowas am einfachsten machen ließe.
Ein Code-Ausschnitt mit den relevanten Elementen von der Seite:
Code
Alles anzeigen<div class="suchmaske"> <form name="suchmaske" id="suchmaske" action="/cgi-bin/hoeren.pl" method="post"> <input type="hidden" name="db_choose" value="zeit_audio"> <input type="hidden" name="action" value="search"> <table border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle"><strong>Wählen Sie eine Ausgabe:</strong></td><td valign="middle"> <select name="ausgaben_select" Onchange="javascript: submit_form('suchmaske');"> <option style="margin-left: 2px;" value="283" >2009/28</option> <option value="282" >2009/27</option> <option value="281" >2009/26</option> ...weitere 280 options... </select></td></tr></table></div></form> <div><h1>Ausgabe: 2009/28</h1></div> <form method="get" name="zipdownload" action="https://premium.zeit.de/cgi-bin/_er_member/p4z.fpl"> <input type="hidden" name="ER_Do" value="prepareBuyDocument"> <input type="hidden" name="Abo_Document" value="/media/09/28/Audiofiles_DIE_ZEIT_28.zip"> <input type="hidden" name="Abo_ServerName" value="horchen.zeit.de"> <input type="hidden" type="text" name="Abo_Title" value=""> <input type="hidden" type="text" name="Abo_FileSize" value=""> <div><a href="javascript: submit_form('zipdownload');" onclick="wt_sendinfo('audio.diezeit.2009.28.audiofiles_diezeit_28.zip','click');"><strong>Alle Artikel der Ausgabe als Zip-Datei »</strong></a></div> </form> function submit_form(form_name) { var theform = eval("document." + form_name); theform.submit(); }
-
Das könntest du höchstens über die Cluster-Größe beeinflussen.
Aber vorsicht bei zu großen Clustern kann es leicht sein das die der Platz ausgeht, vor allem wenn viele kleine Dateien gespeichert werden.mfg Schakal
Das habe ich bereits versucht. Clustergröße bei FAT32 ist laut Wikipedia max. 32k. Bei ext2 wie gesagt bytes-per-inode Wert von 1MB.
Szenario ist: große Dateien (> 1 GB) auf großer Platte (750GB). -
In einem Szenario, wo nur einzelne große Dateien geschrieben werden müssen (PVR Aufnahme), scheint FAT32 weniger CPU-Last zu erzeugen bzw. auf einem schwachen System schneller zu sein.
Ich würde aber trotzdem ext2 bevorzugen, weil die Dateigrößenbegrenzung von FAT32 ziemlich lästig ist.
Hat jemand Erfahrung, ob man ext2 irgendwie CPU-schondener konfigurieren kann?
Ich habe es schon versucht mit bytes-per-inode auf 1MB und noatime beim mounten.
Ist aber immer noch zu langsam. -
Hier die Ausgaben, die ich bekomme, wenn eine Header-Datei nicht gefunden wird:
Code... make[3]: Leaving directory `/ats/working/kakao/src/lib/appframework' make[2]: *** [../src/lib/appframework/libappframework.a] Fehler 2 ...
Mit make -d sieht das dann so aus:
Code
Alles anzeigenBetrachte Target-Datei »display/display.o«. Suche nach einer impliziten Regel für »display/display.o«. Versuche Muster-Regel mit Ersetzung »display«. ... Versuche implizite Voraussetzung »display/display.cpp«. Eine implizite Regel für »display/display.o« gefunden. Die Datei »display/display.cpp« wird "gestutzt" (der Abhängigkeitsgraph). .... Die Datei »../applications.h« wird "gestutzt" (der Abhängigkeitsgraph). Fertig mit den Voraussetzungen für die Ziel-Datei »display/display.o«. Die Arbeit an der Target-Datei »display/display.o« wurde aufgegeben. ... Fertig mit den Voraussetzungen für die Ziel-Datei »all«. Die Arbeit an der Target-Datei »all« wurde aufgegeben. ...
Vielleicht stimmt meine Vermutung nicht, dass der Fehler bei der Erstellung der .d-Dateien erfolgt, weiß nicht. Auf die Idee bin ich gekommen, weil ich beim ersten Auftreten dieses Problems erst durch Betrachten einer .d-Datei auf die Idee gekommen bin, dass falsche Header-Pfade schuld sein könnten.
-
Naja, in der theorie ist html hilfe sicher sinnvoll, das problem leider ist halt nur, dass sie muehsam zum zugreifen ist. Weil (zumindest ich) hab halt immer ein terminal offen, und ein: man mpla<tab><enter> ist da halt sicher viel schneller, da bin ich meist schon fertig mit der hilfesuche, bis ich ueberhaupt mal das .html file haendisch geoeffnet hat. Ist jetzt kein per-se vorteil vom man format, aber dadurch dass der ablageplatz genau standardisiert ist, ist so ein tool halt einfach moeglich.
Finds daher auch sehr bloed von Trolltech, dass sie bei qt4 keine man pages mehr liefern, im gegensatz zu noch qt3
So ist es nun mal, dass es nie jedem rechtgemacht werden kann, weil jeder andere Gewohnheiten hat.
Ich habe zwar auch immer ein (bzw. mehrere) Terminal offen, trotzdem benutze ich als viewer für manpages Konqueror (ebenso für info).
Bei mir ist die Eingabe dann halt <alt>+<tab>, <strg>+<shift>+<t>, man:mpl <down> <enter>
Vorteil ist auch, dass ich mir die Konsole, in der ich grad arbeite, dann nicht mit der manpage blockiere, das mag ich nämlich gar nicht.
Überhaupt bin ich kein Fan von Programmen wie vi, ich schätze es, die Wahl zwischen Tastatur- und Mausbedienung zu haben und nicht gezwungen zu sein, mir unzählige keybindings auswendig zu merken, um ein Programm vernünftig bedienen zu können. Vielleicht hat das auch damit zu tun, dass bei meinen ersten Computererfahrungen eine Maus bereits immer dabei war.
Also, sehr subjektive Angelegenheit das GanzeZitat
Ich bin sehr froh, dass sich info nicht durchgesetzt hat, hauptsaechlich weil als vim user einem einfach die keybindings vom info viewer bloed vorkommen im gegensatz zum echt guten less pager fuer man pages. Abgesehen davon hab ich in info files noch nie was gefunden, weil mit /suchbegriff bin ich nach spaetestens 2-3 versuchen meist genau dort wo ich sein will, bei info mit der verschachtelten hierachie geht das nicht so einfach.
Das mit der Suche ist tatsächlich ein Nachteil von info-pages.
Andererseits ist es nicht immer so einfach, einen Suchbegriff zu finden. Deshalb gibt es z.B. diesen Thread. -
Normalerweise unterdrueckt make die Ausgabe des Compilers nicht. Du machst also irgendwas falsch. Aber Du schreibst leider nicht, wie Deine Makefiles aussehen, geschweige denn welches "make" du verwendest, noch wie die "nichtssagende Fehlermeldung" aussieht. Da ist es schwierig Dir zu helfen...
Da hast du natürlich recht, war dumm von mir, das nicht detaillierter zu beschreiben...
Ausgaben vom Compiler gibt's - soweit ich das verstanden habe - deshalb nicht, weil make selbst den Prozess abbricht, während es die .d-Dateien mit den nötigen Headers für eine c-Datei erstellt.
Ich werde bei nächster Gelegenheit genauere Details nachliefern. -
Zu lange man pages gibts fuer mich fast nicht, ich find z.b. die von mplayer auch super, muss man halt drin suchen mit /
Was ich dagegen nicht mag, sind man manpages wo keine examples zu einfachen anwendungen drinnen sind.
Ja stimmt, Examples finde ich auch immer sehr nützlich.
Ich finde aber doch - Stichwort mplayer, dass eine etwas besser strukturierte Form (statt der "dummen", d.h. rein visuell nutzbaren Struktur von manpages) schon hilfreich sein kann für eine Dokumentation. MPlayer ist ein gutes Beispiel, da bin ich oft sehr froh um die HTML-Version der Doc.
Was ich an manpages z.B. hasse sind die fehlenden Links. Da kann ich nicht einfach direkt zu "Operators" springen, sondern muss entweder rumscrollen oder über die Suchfunktion hinfinden. Das mögen zwar in der Praxis nur einige Sekunden Verzögerung sein, kann aber reichen, meine Konzentration auf die eigentliche Sache, die ich gerade erledige, sehr unangenehm zu stören.
Info-pages sind im Grunde eine sinnvolle Weiterentwicklung von manpages, haben sich aber in dieser puristischen community nicht wirklich durchgesetzt. Trotzdem gibt's einige sehr brauchbare, wie ich finde, z.B. zum gcc. -
Danke!
Die find-manpage ist für meinen Geschmack einfach zu lang -
Ich komm einfach nicht dahinter, wie ich ein find-Kommando parametrisieren muss, um alle Pfade außer jene, die den String ".svn" enthalten, auszugeben.
-
Ich habe immer wieder das Problem, dass beim Erstellen eines Projekts mit make der Vorgang einfach mit einer allgemeinen und nichtssagenden Fehlermeldung abgebrochen wird, wenn eine include-Datei in den Suchpfaden nicht gefunden wurde.
Dann bleibt nur entweder Raten oder make mit dem Parameter "-d" auszuführen. In letzterem Fall wird man dann allerdings von debug-output erschlagen...
Kennt vielleicht jemand irgendeine Option, wie man in so einem Fehlerfall standardmäßig eine brauchbare Fehlermeldung kriegen kann? -
Danke für die Tipps.
Bin jetzt doch bei betaftpd geblieben; habs hingekriegt, largefile-support reinzuhacken und scheint stabil zu laufen. Minimalistischer dürfte es kaum noch gehen, kann trotzdem alles, was ich brauche, also ideale Lösung! -
Da fällt mir ein, eigentlich könnte man gleich Gmail als reinen Spamfilter für externe Accounts missbrauchen, indem man alles an den Gmail-Account weiterleitet und den Client von dort abholen lässt
Als Draufgabe hat man gleich noch ein ordentliches webinterface (vergleiche inode/UPC...) und backup, weil eh quasi unbegrenzt Speicherplatz. Nebenwirkung: Google hat ziemlich viele Daten von mir...
Werd ich glatt mal probieren! -
Ich bin nach dem Lesen dieses Threads ein wenig überrascht, weil ich selbst schon eine Weile Gmail verwende und auch ganz zufrieden damit bin, aber so überfliegermäßig wie von a9bejo beschrieben kommt es mir dann doch wieder nicht vor. Das mag auch daran liegen, dass ich mir noch nie wirklich Zeit genommen habe, alles ein bisschen durchzuprobieren, dafür ist das Interface dann doch wieder ein wenig lahm (hab gerade eben nochmal die Filteroptionen durchgesehen, ist selbst über eine 9Mbit SDSL-Leitung mühsam).
Für mich persönlich sind die hervorragenden Spamfilter von Gmail das Killerargument. Es filtert so gut wie jede raus und was vielleicht fast noch wichtiger ist, es hat noch nie fälschlich eine weggefiltert. Ich bezweifle zwar nicht, dass man das auch mit einem Client bzw. einem zwischengeschalteten eigenen Server schafft, aber das will sich nicht jeder antun.
Jetzt noch eine konkrete Frage zu Gmail: Ich möchte alle Nachrichten, die von mir bekannten Absendern (die ich in einer Gruppe im Adressbuch zusammenfasse) stammen, mit einem gewissen Label versehen. Wie mache ich das? -
Muss der Server den ganzen FTP-Standard unterstuetzen, oder reicht z. B. readonly aus?
Was spricht gegen TFTP?Nein, den ganzen Standard brauche ich nicht. readonly wäre ok, aber laut Wikipedia ist TFTP wesentlich stärker eingeschränkt:
ZitatNicht vorhanden sind viele Funktionen des mächtigeren FTP wie etwa Rechtevergabe mittels chmod, Anzeigen der vorhandenen Dateien oder Benutzerauthentifizierung.
Wenigstens browsing sollte schon möglich sein, außerdem sollte mit gängigen FTP-Clients zugegriffen werden können. Ist das bei einem TFTP-Server gewährleistet?Ich habe jetzt einen Server gefunden, der relativ gut läuft: BetaFTPD. Scheint recht gut zu funktionieren, obwohl der Name nicht sehr vielversprechend klingt
Bin momentan dabei, ihn so anzupassen, dass die 32-bit-Dateigrößenbeschränkung wegfällt; ist wichtig, weil es zum Download von HDTV-Aufnahmen eingesetzt wird.
Ich finde das Programm übrigens ein gutes Beispiel dafür, wie man so etwas auch single-threaded gut implementieren kann. -