kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Lange API-Abfrage aus PHP-Skript auslagern

    geschrieben von floscher

    fatfreddy schrieb:
    Das Limit bleibt bestehen. Letztlich emuliert der Crondienst ja nur einen normalen User, der das Script aufruft.

    OK, gut zu wissen.
  • in: Lange API-Abfrage aus PHP-Skript auslagern

    geschrieben von floscher

    Hallo fatfreddy,
    danke für die schnelle Antwort.

    Ja, das hört sich genauso an, wie ich mir das vorgestellt habe (nur viel einfacher ;-) ). Von Cronjobs habe ich sogar schonmal gehört. Was ich aber noch nicht wusste bzw. in Betracht gezogen habe, dass ich ja zum einen den PHP-Interpreter anwerfen kann und nicht z.B. ein Shellskript oder so verwenden muss. Und zum Anderen habe ich bisher noch nix von solchen Cronjob-Dienstleistern gewusst, deshalb auch meine anfängliche Vermutung, dass man vllt. ein größeres Serverpaket braucht.

    Aber so müsste es ja elegant (und sehr kostensparend) im lima-city-Webspace zu lösen sein. Das werde ich dann wohl auch so umsetzen.

    Weißt Du zufällig, ob solch ein PHP-Skript, das per Cronjob gestartet wird auch den gleichen Zeitlimits für die Auslieferung von PHP-Seiten (ich glaube standardmäßig 30 sec) unterliegt, oder nicht?

    Vielen Dank,
    floscher
  • in: Lange API-Abfrage aus PHP-Skript auslagern

    geschrieben von floscher

    Hallo,

    ich habe vor kurzem ein PHP-Skript erstellt, welches Daten visualisieren soll.
    Diese Daten stammen von einer JSON-API, die ich bis zu einmal täglich abfrage (und auf dem Server als Dateien hinterlegen) möchte, um die Daten einigermaßen aktuell zu halten.
    Bisher prüft das Skript zuerst, wie alt die Daten sind. Wenn diese älter als einen Tag sind, wird eine Abfrage der API mittels cURL durchgeführt. Diese ist schon jetzt recht umfangreich, das heißt, sie hat momentan etwa 20 Sekunden Ausfürungszeit und eine (bisher) etwa 512 kiB große Antwort von der API. Das Ergebnis wird dann noch in ein anderes Format konvertiert und auf dem Server gespeichert. Anschließend wird die Visualisierung ausgegeben.

    Den Prozess der Abfrage und Konvertierung würde ich gerne aufgrund des großen Umfangs (v.a. Dauer) auslagern und optimalerweise automatisch einmal am Tag (es muss nicht unbedingt exakt einmal täglich sein, aber die Daten sollten nie mehr als drei Tage im Verzug sein) ausführen lassen, zumal die Seite in Zukunft wahrscheinlich noch umfangreichere Abfragen durchführen soll.

    Das Problem ist nur, dass ich so etwas noch nie gemacht habe und noch nicht weiß, wie ich da rangehen soll. Was für ein Serverpaket brauche ich dazu und welche Programmiersprache verwende ich dazu am Besten? Die Lösung muss nicht unbedingt auf einem lima-Webspace funktionieren, falls das überhaupt damit ginge.

    Schönen Gruß und schonmal danke für eure Mithilfe,
    floscher
  • in: Spanisch lernen!

    geschrieben von floscher

    Hallo paradiesvogel,
    der Thread ist zwar schon relativ alt, aber vielleicht hilft dir ja noch folgender Link:
    www.duolingo.com
    Auf dieser Seite kannst Du auch kostenlos Spanisch lernen, Voraussetzung ist allerdings, dass Du einigermaßen gut Englisch sprichst. Denn bisher gibt es "nur" folgende Sprachen, die Du lernen kannst:
    Spanisch, Deutsch, Französisch, Portugiesisch (wenn man Englisch kann)
    Englisch (wenn man Portugiesisch, Spanisch oder Italienisch kann)

    Das Prinzip dieser Seite ist, dass du einen Satz auf Englisch bekommst und den auf Spanisch übersetzen sollst. Da du ja am Anfang kein Spanisch kannst, zeigt dir die Seite die Übersetzungen für die einzelnen Wörter an, wenn Du mit der Maus darüberfährst. So lernst Du nach und nach immer mehr Wörter dazu und die Schwierigkeit der Sätze passt sich deinem Können an.

    Du kannst außerdem echte Texte aus dem Web übersetzen. Das Programm wertet deine Übersetzung aus und sagt dir, wie gut Du übersetzt hast. Somit kannst Du mithelfen, das World Wide Web zu übersetzen.

    Ich persönlich habe echt gute Erfahrungen und Lernfortschritte damit gemacht.

    Gruß,
    floscher
  • in: Ubuntu erkennt keine externen Medien, wie sichere ich jetzt?

    geschrieben von floscher

    Danke für die echt sehr sehr schnelle Hilfe. :thumb:

    Die Daten werden gerade auf die andere Festplatte kopiert.

    Das ging mit dem Befehl "sudo ecryptfs-recover-private".
    Ich habe gar nicht mehr daran gedacht, dass ich das Dateisystem ja verschlüsselt hatte, bis ihr es erwähntet.
  • in: Ubuntu erkennt keine externen Medien, wie sichere ich jetzt?

    geschrieben von floscher

    @drafed-map: Ja, ist verschlüsselt

    Ich habe jetzt mal mit nautilus drauf zugegriffen, allerdings befinden sich nur folgende Dateien drin:
    Access-Your-Private-Data.desktop
    README.txt
    .ecryptfs
    .Private
    .cache (Ordner)

    Ist das normal?

    Bin leider noch ziemlicher Linux-Anfänger.
  • in: Ubuntu erkennt keine externen Medien, wie sichere ich jetzt?

    geschrieben von floscher

    Hallo,

    wie gesagt, erkennt mein Ubuntu 11.10-System seit neustem keine externen Speichermedien (CDs, USB-Sticks, externe Festplatten,...).

    Nun wollte ich meine Daten sichern und das System neu aufsetzen. Da dachte ich mir: Gut, baust Du halt die Festplatte aus und in den Windows-PC, startest mit der Ubuntu-CD und kopierst die Daten auf die Platte vom Windows-Rechner.

    Denkste, ich kann nicht auf den Ordner im home-Verzeichnis zugreifen, da ich "zu wenige Rechte" habe.

    Weiß irgendjemand Rat, wie ich doch noch meine Daten sichern soll?

    Floscher
  • in: String splitten

    geschrieben von floscher

    Hallo hk1992,
    falls es dich noch interessiert: Ich hätte da auch eine Möglichkeit mithilfe einer selbstgeschriebenen Methode. Falls man nicht noch andere Funktionen eines CSV-Readers benötigt, wäre das vielleicht sogar eine einfachere Variante.

    Hier der Code:
    private String[] specialSplit(String s,String separator){
    		boolean inString = false;	//Gibt an, ob man sich beim gerade untersuchten Zeichen in einem String befindet.
    		String sepBuffer = "";		//Wenn der Separator länger, als ein Zeichen ist, wird hier der schon gelesene Teil des Separators reingeschrieben
    		String stringBuffer = "";	//Hier wird der bisher gelesene Teil der aktuellen "Zelle" reingeschrieben
    		Vector<String> ret = new Vector<String>();	//Diesen Vector gibt die Funktion als Array zurück
    		
    		for(int i=0;i<s.length();i++){	//Gehe den String Zeichen für Zeichen durch
    			if(s.charAt(i)=='"'){
    				inString = !inString;	//Bei " wird von In-String zu Außerhalb-vom-String gewechselt und andersrum
    			}
    			if(inString){
    				stringBuffer += s.charAt(i);	//Im String wird der StringBuffer natürlich weiter gefüllt
    				sepBuffer = "";	//Wenn man im String ist, wird ein "angefangener" Separator verworfen
    			}else{
    				if(separator.startsWith(sepBuffer+s.charAt(i))){
    					sepBuffer += s.charAt(i);	//Wenn das aktuelle Zeichen zu einem Separator gehört, wird der sepBuffer gefüllt
    					if(sepBuffer.equals(separator)){
    						ret.add(stringBuffer);//Wenn der Separator vollständig gelesen ist, wird die gelesene "Zelle" dem Vector hinzugefügt
    						sepBuffer = "";
    						stringBuffer = "";
    					}
    				}else{
    					stringBuffer+=s.charAt(i);
    				}
    			}
    		}
    		return ret.toArray(new String[0]);
    	}


    Floscher
  • in: div mit float auf 100% height

    geschrieben von floscher

    Hallo Infinitysounds,
    suche mal nach Faux Columns. Das Problem ist bekannt und offenbar mit CSS ohne zu Tricksen nicht lösbar.

    Lösungsmöglichkeiten:
    1. Gib dem umgebenden div (#content) ein passendes Hintergrundbild, damit es nach gleichlangen Spalten aussieht (siehe http://www.alistapart.com/articles/fauxcolumns)
    2. Packe das ganze in eine Tabelle
    3. Wenn eine Spalte main IMMER länger ist, als Spalte side, mache es folgendermaßen:
    Notiere das div#main vor div#side.
    div#main erhält eine border-right, die so breit ist, wie div#side, sowie einen margin-right, der die Breite von div#side*(-1) hat.
    div#side erhält einen transparenten Hintergrund.
    So entsteht die Illusion, dass div#side genauso hoch ist wie div#main.

    Ich hoffe, das hilft Dir weiter,

    Gruß,
    floscher
  • in: Sachen laufen von selbst weg D:

    geschrieben von floscher

    Hallo vime,
    zunächst einmal klingt das alles sehr verwirrend für mich, da Du hier einfach ein Stück Code präsentierst, den Du mit mehr oder weniger verständlichen Sätzen kommentierst.:confused:
    Hilfreich wäre zum Beispiel noch eine knappe Beschreibung, was dein Programm macht und wozu diese spezielle Klasse benötigt wird.

    Ich habe mir aus deinen Ausführungen folgendes hergeleitet (verbessere mich, wenn ich hier etwas Falsches behaupte):
    Du programmierst ein Adressbuch.
    Diese Klasse soll eine Suche einblenden, die folgendes beinhaltet:
    - Eine Auswahl, nach was gesucht werden soll
    - Ein Textfeld, zur Eingabe des Suchbegriffs
    - verschiedene Textbereiche, zur Anzeige der Suchergebnisse (? oder zur Eingabe ?)

    Als allererstes würde ich Dir die Benutzung eines LayoutManagers empfehlen, damit Du die Components nicht absolut positionieren musst. Hier würde sich wohl ein BorderLayout anbieten. Ins "Center" packst Du mithilfe des FlowLayouts die Auswahl und das Suchfeld. In den "South" ebenfalls mit dem FlowLayout die Ergebnisfelder.

    Außerdem solltest Du, wenn Du schon Swing verwendest, alle AWT-Komponenten in Swing-Komponenten umwandeln. Bspw. solltest Du statt Choice die Klasse JComboBox verwenden.

    Um das JFrame überhaupt anzuzeigen, solltest Du irgendwo in Deinen Code auch suchenFrame.setVisible(true); einbauen, sowie entweder .pack() oder .setSize().

    Die Grundvorgehensweise sollte sein:
    - Du instanzierst die Komponenten (Suchfeld, ComboBox, JButton, die JTextAreas und JTextFields), die JPanels, die die Komponenten später aufnehmen, sowie das JFrame, das die JPanels später aufnimmt.
    - Die Komponenten fügst du mit .add() einem oder mehreren JPanels hinzu, die zuvor einen LayoutManager zugewiesen bekommen haben.
    - Du weist dem ContentPane des JFrames einen LayoutManager zu (frame.getContentPane().setLayout(...)) und fügst dem JFrame die JPanels hinzu.
    - Du weist dem JFrame eine Größe und Position zu und setzt es sichtbar.
    Fertig ist dein JFrame!

    Hier mal ein Beispiel, wie man ein JFrame aufruft, das hoffentlich Deiner Vorstellung nahekommt:
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class Suche{
    	public static void main(String[]args){
    		new Suche();
    	}
    	JFrame suchFrame = new JFrame();
    	public Suche(){
    		JPanel eingabe = new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
    		JPanel ausgabe = new JPanel(new FlowLayout(FlowLayout.CENTER,10,10));
    		
    		JComboBox auswahl = new JComboBox(new String[]{"-----","Vorname","Nachname","Telefonnummer","E-Mail"});
    		JTextField suchfeld = new JTextField(30);
    		JButton suchbutton = new JButton("Suche");
    		
    		JTextArea adresse = new JTextArea("Adresse",10,10);
    		JTextArea vorname = new JTextArea("Vorname",10,10);
    		JTextArea nachname = new JTextArea("Nachname",10,10);
    		JTextArea tel = new JTextArea("Telefonnummer",10,10);
    		JTextArea mail = new JTextArea("Mailadresse",10,10);
    		
    		
    		suchFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		suchFrame.setLocation(100,100);
    		suchFrame.setLayout(new BorderLayout());
    		
    		eingabe.add(auswahl);
    		eingabe.add(suchfeld);
    		eingabe.add(suchbutton);
    		ausgabe.add(adresse);
    		ausgabe.add(vorname);
    		ausgabe.add(nachname);
    		ausgabe.add(tel);
    		ausgabe.add(mail);
    		
    		suchFrame.getContentPane().add(BorderLayout.CENTER,eingabe);
    		suchFrame.getContentPane().add(BorderLayout.SOUTH,ausgabe);
    		
    		suchFrame.pack();
    		suchFrame.setVisible(true);
    	}
    }


    Gruß,
    floscher

    Und nächstes Mal bitte in besserer Rechtschreibung, besser strukturiert und detaillierter beschrieben. Deine Frage war ja stellenweise kaum verständlich!
  • in: Zeitumrechner erstellen

    geschrieben von floscher

    Hallo Namensvetter,
    hier mal ein Vorschlag, wie ich es machen würde. Ich hoffe, du kannst damit was anfangen.

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class Zeitrechner {
    public static void main(String[] args) {
        System.out.print("Gib bitte eine Sekundenzahl an: ");
        // Initialisiere die Variable, in der die Sekunden gespeichert werden.
        int seconds = -1;
        // Erstelle einen Reader, der auf Nutzereingaben wartet.
        BufferedReader reader =
            new BufferedReader(new InputStreamReader(System.in));
    
        try {
            // Reader wartet die Eingabe der Sekunden ab.
            seconds = Integer.parseInt(reader.readLine());
        } catch (Exception e) {}
    
        // Wenn die Sekunden-Variable den Wert -1 hat,
        // wird eine Fehlermeldung ausgegeben.
        if (seconds == -1) {
            System.out.println("Ungültige Eingabe!");
        } else {
            // Die Sekunden werden ausgegeben.
            System.out.println(seconds + " Sekunden");
            // Die Minuten werden berechnet durch Teilen durch 60
            // (1 sec entspr. 1/60 min ==> x sec entspr. x/60 min)
            System.out.println("= " + ((double) seconds / 60) + " Minuten.");
            // Die Stunden werden berechnet durch Teilen durch 3600
            // (1 sec entspr. 1/3600 h ==> x sec entspr. x/3600 h)
            System.out.println("= " + ((double) seconds / 3600) + " Stunden.");
            // Die fehlenden Sekunden zur vollen Minute werden gewonnen,
            // indem man die Sekunden modulo 60 rechnet (den Rest bei der
            // Division durch 60).
            // Das Ergebniss kann man sich als die vergangenen Sekunden seit der
            // letzten vollen Minute interpretieren, deshalb erhält man die zur
            // nächsten vollen Minute fehlenden Sekunden
            // durch subtrahieren von 60.
            System.out.println("Es sind noch " + (60 - (seconds % 60))+
                " Sekunden bis zur nächsten vollen Minute.");
        }
    }
    }


    Wenn noch was unklar sein sollte, frag einfach nochmal nach.

    Gruß,
    floscher
  • in: Pfade aller Bilder in einem Ordner erhalten

    geschrieben von floscher

    Hallo,

    ich habe momentan folgendes Problem:

    Ich möchte eine Bildergalerie erstellen und dafür eine "vollautomatische" PHP-Seite erstellen (damit meine ich, dass ich beim Aktualisieren der Galerie nichts an der Datei verändern, sondern nur die Bilder in einen vordefinierten Ordner auf dem Server ablegen muss).

    Nur weiß ich nicht, wie ich mir mittels PHP die Dateinamen der Bilder verschaffe.

    Beispielsweise in Java gibt es doch die Methode File.listFiles(), um ein String-Array mit den Dateien und Verzeichnissen in einem Ordner zu erhalten. Hierzu suche ich quasi das PHP-Pendant.


    Ich hoffe Ihr könnt mir weiterhelfen,
    Gruß,
    floscher
  • in: Suche Java-Script

    geschrieben von floscher

    Hallo darkrider86,
    also mir würde da als Lösung spontan PHP einfallen:

    archiv.php:
    <!DOCTYPE HTML PUBLIC <"-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head><title>Archiv</title></head>
    <body>
    	<?php
    		if($_GET['section']=='one'){
    			echo 	'<h1><a href="archiv.php">Teil 1</a></h1>'.
    				'<div>Hier kannst Du Inhalt einfügen...</div>';
    		}else{
    			echo '<h1><a href="archiv.php?section=one">Teil 1</a></h1>';			
    		}
    		if($_GET['section']=='two'){
    			echo 	'<h1><a href="archiv.php">Teil 2</a></h1>'.
    				'<div>Hier kannst Du Inhalt einfügen...</div>';
    		}else{
    			echo '<h1><a href="archiv.php?section=two">Teil 2</a></h1>';			
    		}
    		if($_GET['section']=='three'){
    			echo 	'<h1><a href="archiv.php">Teil 3</a></h1>'.
    				'<div>Hier kannst Du Inhalt einfügen...</div>';
    		}else{
    			echo '<h1><a href="archiv.php?section=three">Teil 3</a></h1>';			
    		}
    	?>
    </body>
    </html>
    (siehe auch hier)

    PHP ist auch garnicht so schwer zu lernen, vor allem wenn man andere Sprachen schon kann. Ging mir zumindest so.
    Du kannst ja mal bei Quakenet oder www.php.net vorbeischauen, das sind recht gute Tutorials.

    Ich hoffe, ich konnte Dir weiterhelfen.

    Gruß,
    floscher
  • in: Konsole lesen, parsen und ausführen.

    geschrieben von floscher

    Hallo koss,
    wie ich das sehe, hast Du eine Methode GameLoop(), die Eingaben erfasst, die an die Methode parse(String) übergeben wird und mittels command() und dir() auf bestimmte Merkmale geprüft wird. Nun willst Du einen String an GameLoop() zurückgeben, ob dir() überhaupt durchlaufen wurde, richtig?

    Dann müsste es doch auch reichen, wenn Du parse ein boolean-Array zurückgeben lässt, da der String ja nur die Antwort auf eine Entscheidungsfrage (Ja/Nein) geben soll:
    public static boolean[] parse(String line) {
    	boolean[] ret = new boolean[2];
    	try{
    		ret[0]=command();
    	}catch(RAParseException e){
    		ret[0] = false;
    	}
    	try{
    		ret[1]=dir();
    	}catch(RAParseException e){
    		ret[1] = false;
    	}
    	return ret;
    }


    Falls Du auf einem String bestehst, könntet Du ja auch parse(String) weglassen und in GameLoop() command() und dir() getrennt aufrufen, etwa so:
    public static void GameLoop()
    	throws IOException {
    	//...
    	System.out.println(Parser.command()+" "+Parser.dir());
    	//...
    }
    private static boolean dir() {
    	// ...
    	return ret;
    }
    private static String command() {
    	// ...
    	return ret;
    }


    Ich hoffe, ich habe Dein Problem einigermaßen richtig verstanden und konnte Dir weiterhelfen.
    Ansonsten solltest Du vielleicht Dein Problem nochmal genauer beschreiben (insbesondere bspw. wann dir() aufgerufen wird und was Du mit den Methoden bezwecken willst).

    Gruß,
    floscher

Login zum Webhosting ohne Werbung!