Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 12:43:39
inne hat geschrieben:
Wieviel Punkte gibt das von dir Meillo?
Keine, weil:
//Nun habe ich die Zitate nicht ausgelassen – okay somit ausser Wertung...
//Kann ein Zitat auch über mehrere Zeile gegen? Bestimmt. Es wird komplexer...
Eben.
Use ed once in a while!
-
inne
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Beitrag
von inne » 15.08.2015 13:05:56
In BASH, weils mir am liebsten war
Bitte um Kontrolle! Kritikpunkt ist natürlich das \" kein "-Zeichen ausklammert. Aber das war auch nicht gegeben
Zuletzt geändert von
Meillo am 15.08.2015 16:45:41, insgesamt 1-mal geändert.
Grund: Regelverletzung ;-)
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 16:47:23
inne hat geschrieben:In BASH, weils mir am liebsten war
Hab die Loesung nochmal entfernt.
Die Regel war: Die Aufgabe wird bis Freitag abend mitgeteilt; Loesungen duerfen
ab Sonntag abend gepostet werden.
Poste sie einfach morgen abend nochmal.
Use ed once in a while!
-
inne
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Beitrag
von inne » 15.08.2015 17:03:31
Und nun soll ich das nochmal tippen – Du bist ja lustig!? Spass. Ich habe das Skript noch auf dem Desktop gespeichert...
Aber ich denke du hast es auch gespeichert
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 15.08.2015 18:43:08
Ich bin gespannt auf die Lösungen....
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 18:59:07
Meine zweite Loesung ist fertig. Jetzt mal sehen, ob ich noch eine weitere passende Programmiersprache finde.
Use ed once in a while!
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 19:38:00
Ich hab noch eine dritte Loesung fertig, in einer dritten Sprache. (Sie ist nur knapp 100 Zeichen lang, aber weniger robust als meine zwei anderen Varianten.)
Hat ausser inne sonst schon jemand eine Loesung erarbeitet?
Use ed once in a while!
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 15.08.2015 19:44:41
Ja, ich hab auch schon was.
-
ohnex
- Beiträge: 393
- Registriert: 31.01.2010 22:35:36
Beitrag
von ohnex » 15.08.2015 20:00:22
Hi
Meillo hat geschrieben:Ich hab noch eine dritte Loesung fertig, in einer dritten Sprache. (Sie ist nur knapp 100 Zeichen lang, aber weniger robust als meine zwei anderen Varianten.)
Hört sich nach Perl an.
Meillo hat geschrieben:Hat ausser inne sonst schon jemand eine Loesung erarbeitet?
Das wäre toll, da ich nicht " Programmieren " kann, hänge ich noch daran das die Veränderung in den " " nicht stattfinden.
Ciao
-
dimi
- Beiträge: 84
- Registriert: 19.07.2006 14:09:55
Beitrag
von dimi » 15.08.2015 20:01:52
Hab auch was kleines gemacht, aber ohne Berücksichtigung von Grenzfällen (zb. \", Text beginnt mit ", ...) funktioniert also nur für den gegebenen Text.
-
ohnex
- Beiträge: 393
- Registriert: 31.01.2010 22:35:36
Beitrag
von ohnex » 15.08.2015 20:39:34
Hi
Ich habe bis jetzt einen Einzeiler der die Grenzfälle noch nicht berücksichtigt.
Ciao
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 15.08.2015 21:49:00
Habe auch noch einen unter 100 Zeichen(aber geraaade so) und der tut gut.
-
catdog2
- Beiträge: 5352
- Registriert: 24.06.2006 16:50:03
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von catdog2 » 15.08.2015 21:56:57
Ich bevorzuge ja lesbaren code, mein Rechner hat genug platz dafür.
Unix is user-friendly; it's just picky about who its friends are.
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 22:21:42
ohnex hat geschrieben:
Meillo hat geschrieben:Ich hab noch eine dritte Loesung fertig, in einer dritten Sprache. (Sie ist nur knapp 100 Zeichen lang, aber weniger robust als meine zwei anderen Varianten.)
Hört sich nach Perl an.
Falsch. Aber mit Perl koennte ich es auch mal noch probieren.
dimi hat geschrieben:Hab auch was kleines gemacht, aber ohne Berücksichtigung von Grenzfällen (zb. \", Text beginnt mit ", ...) funktioniert also nur für den gegebenen Text.
Escapte Quotes beruecksichtigt keine der Loesungen von mir (war ja auch nicht gefordert
).
catdog2 hat geschrieben:Ich bevorzuge ja lesbaren code, mein Rechner hat genug platz dafür.
Ich auch, aber bei einem solchen Contest macht's mir schon auch Spass, eine Loesung nochmal herzunehmen und zu versuchen, sie moeglichst stark zusammenzukuerzen.
Use ed once in a while!
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 15.08.2015 22:27:28
Das interessante an kurzen Lösungen ist für mich nicht der komprimierte Zeichenhaufen, sodern die Tatsache dass eine kurze elegante Lösung wesentlich angenehmer als ein 10 Mal so langer Code, der eben nur viel mehr für das gleiche Ergebnis ist.
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 15.08.2015 23:40:43
heisenberg hat geschrieben:Das interessante an kurzen Lösungen ist für mich nicht der komprimierte Zeichenhaufen, sodern die Tatsache dass eine kurze elegante Lösung wesentlich angenehmer als ein 10 Mal so langer Code, der eben nur viel mehr für das gleiche Ergebnis ist.
Genau. Da ist dieser wesentliche Unterschied zwischen kurz als elegant und lesbar (weil man gute Datenstrukturen und gute Algorithmen verwendet hat), und kurz als komprimiert (weil man Bezeichner auf ein Zeichen verkuerzt und den Whitespace entfernt).
Ersteres finde ich grundsaetzlich erstrebenswert; zweiteres macht mir zwischendurch mal Spass, in Form eines Wettbewerbs.
(Inzwischen habe ich das Programm in zwei weiteren Programmiersprachen reimplementiert ... allerdings ohne dabei bessere Algorithmen oder Datenstrukturen gefunden zu haben. Ich werde morgen nochmal brainstormen, ob ich nicht noch auf neuartige Ansaetze komme.)
Use ed once in a while!
-
ohnex
- Beiträge: 393
- Registriert: 31.01.2010 22:35:36
Beitrag
von ohnex » 16.08.2015 01:43:48
hi
ich veröffentliche meinen Perl Schnipsel
Code: Alles auswählen
perl -p -i.bak -e "~s/A/4/, s/B/8/ , s/E/3/ , s/G/6/g" abc
Es funktioniert leider nicht
bei jedem Programmaufruf verändert sich die Ausgabe etwas mehr.
Hier der Inhalt meiner Testfile ABEG "ABEG ABEG" ABEG GG EE BB AA
Code: Alles auswählen
contest@debian:~$ cat abc
4836 "ABE6 ABE6" ABE6 66 EE BB AA #1.Programmaufruf
contest@debian:~$ cat abc
4836 "4836 ABE6" ABE6 66 EE BB AA # 1.Programmaufruf
contest@debian:~$ cat abc
4836 "4836 4836" ABE6 66 EE BB AA # 2.Programmaufruf
contest@debian:~$ cat abc
4836 "4836 4836" 4836 66 EE BB AA # 3.Programmaufruf
contest@debian:~$ cat abc
4836 "4836 4836" 4836 66 3E 8B 4A # 4.Programmaufruf
contest@debian:~$ cat abc
4836 "4836 4836" 4836 66 33 88 44 # 5.Programmaufruf
ciao
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 16.08.2015 10:47:16
ohnex hat geschrieben:
ich veröffentliche meinen Perl Schnipsel
Haben wir nun Regeln oder nicht?
Um dich selbst zu zitieren:
ohnex hat geschrieben:
[...] einen scripting contest starten, der z.B. wie folgt aufgebaut ist: jmd. stellt bis Freitags 17:00 eine Aufgabe und die Lösungen darf jede/r in der Sprache ihrer/seiner Wahl sonntags ab 18: 00 veröffentlichen.
Auf meiner Uhr ist noch Sonntag vormittag ...
Use ed once in a while!
-
ohnex
- Beiträge: 393
- Registriert: 31.01.2010 22:35:36
Beitrag
von ohnex » 16.08.2015 12:37:43
Hi
Mein Schnipsel funktioniert nicht, ich habe mir einen Tipp erhofft das ich auch eine funktionierende Lösung präsentieren kann.
Ciao
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 16.08.2015 16:01:28
@ohnex:
Ich bin mir nicht sicher, ob Dir das möglich ist(Legasthenie), aber falls ja, installiere das perl-doc-Paket und lese in der Manpage von perlre was die genaue Bedeutung des /g-Modifiers ist, und inwiefern er bei der Ausgabe Deines Scriptes angewandt wird und inwieweit nicht. Gehe die einzelnen Elemente Deines Codes durch.
-
tomi89
- Beiträge: 269
- Registriert: 21.08.2014 00:21:52
Beitrag
von tomi89 » 16.08.2015 17:20:07
Ich hätte da noch was: News von Twitter zu holen.
Mich persönlich würde mal interessieren wie sowas in Java aussieht oder ob das auch mit Javaskript machbar ist.
Ich weis bei Python geht das mit dem twitter_search Modul.
Code: Alles auswählen
twitter_search("@obama", retweets=False, numtweets=20, popular=True)
Ein funktionierendes Skript habe ich allerdings noch nicht hinbekommen, bin noch am üben.
Zuletzt geändert von
tomi89 am 16.08.2015 18:17:27, insgesamt 1-mal geändert.
-
ohnex
- Beiträge: 393
- Registriert: 31.01.2010 22:35:36
Beitrag
von ohnex » 16.08.2015 17:53:17
hi
heisenberg hat geschrieben:@ohnex:
Ich bin mir nicht sicher, ob Dir das möglich ist(Legasthenie), aber falls ja, installiere das perl-doc-Paket und lese in der Manpage von perlre was die genaue Bedeutung des /g-Modifiers ist, und inwiefern er bei der Ausgabe Deines Scriptes angewandt wird und inwieweit nicht. Gehe die einzelnen Elemente Deines Codes durch.
Ich verstehe das jetzt so
g global den ersten Treffer nimmt man als Startpunkt für eine erneute Suche.
ciao
-
catdog2
- Beiträge: 5352
- Registriert: 24.06.2006 16:50:03
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von catdog2 » 16.08.2015 18:12:31
Code: Alles auswählen
#!/usr/bin/env python3
import sys
ttable = {
"A": "4",
"a": "4",
"B": "8",
"b": "8",
"E": "3",
"e": "3",
"G": "6",
"g": "6"}
if __name__ == "__main__":
text = sys.stdin.read()
stext = text.split('"')
zipt = ((i % 2 == 0, j) for i, j in enumerate(stext))
reptext = (j.translate(str.maketrans(ttable)) if i else j for i, j in zipt)
print('"'.join(reptext))
Unix is user-friendly; it's just picky about who its friends are.
-
inne
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Beitrag
von inne » 16.08.2015 18:31:56
Shell/BASH
Code: Alles auswählen
$ cat Desktop/storys.sh
#!/bin/bash
function storys () {
while read line; do
cnt=$(echo "$line" | wc -c)
n=0
cit="off";
while test $n -lt $cnt; do
n=$(($n + 1))
c="$(echo "$line" | cut -c "$n")"
if test "$c" == "\""; then
if test $cit == "on"; then
cit="off"
else
cit="on"
fi
fi
if test $cit == "on"; then
echo -n "$c"
else
case "$c" in
A|a) echo -n "4";;
B|b) echo -n "8";;
E|e) echo -n "3";;
G|g) echo -n "6";;
*) echo -n "$c";;
esac
fi
done
echo -en "\n"
done
}
cat <<! | storys
Verschwörungstheorien
Ich persönlich kann mit Verschwörungstheorien nichts anfangen. Sie wissen schon, es geht um Behauptungen wie zum Beispiel, dass die erste Mondlandung fingiert gewesen sei. Tatsächlich hätte man alles auf der Erde in einem Filmstudio nachgespielt. Eine andere sagt, dass Elvis immer noch leben würde. Wahrscheinlich hält man ihn im Weißen Haus gefangen, wo er seit Jahrzehnten "Jailhouse-Rock" spielen muss. Und dann gibt es diejenigen, die wissen, dass bereits seit langer Zeit Aliens unter uns leben.
Letzterer Theorie könnte ich mit Blick auf manche meiner Mitmenschen tatsächlich etwas abgewinnen. Aber so bescheuert, wie diese Leute sind, kann kein Alien sein – sonst hätte er gar nicht die Reise bis auf die Erde geschafft. Andererseits besteht natürlich die Möglichkeit, dass unser blauer Planet von irgendwelchen fremden Wesen zu einer Art Quarantäne-Lager für durchgeknallte Außerirdische gemacht wurde. Doch das ist ein anderes Thema und eine neue Verschwörungstheorie.
Lange Zeit habe ich mich über diesen Verschwörungsquatsch aufgeregt. Ich konnte es kaum ertragen, wenn wieder einmal solch ein Blödsinn durch die Medienlandschaft waberte, in Internetforen verbreitet oder auf irgendwelchen Festlichkeiten im allgemeinen Smalltalk kundgetan wurde. Doch diese Haltung hat sich geändert, seit ich eine Gegenstrategie entwickelt habe: Ich erfinde Verschwörungstheorien.
Das macht richtig Spaß. Auf Partys laufe ich regelrecht zur Höchstform auf, wenn wieder einmal ein Gast den unglaublichsten Schwachsinn als wissenschaftlich erwiesen anpreist. Anstatt mich, wie früher, genervt wegzudrehen und das Buffet leerzufressen, diskutiere ich nun eifrig mit, frage intensiv nach und lenke irgendwann das Gespräch auf eine meiner erfunden Theorien. Seitdem haben solche Abende einen großen Unterhaltungswert für mich.
Ich möchte Ihnen an dieser Stelle nun einige dieser erfundenen Wahrheiten vorstellen:
1. Das Fluchthelferlied
Es geht um den größten Hit der Rock-Gruppe "Karat" aus der ehemaligen DDR "Über sieben Brücken musst du gehn".
Nur Eingeweihte wissen, dass die wichtigste Untergrundgruppe der Ostdeutschen Fluchthelfer ihren Hauptsitz in der brandenburgischen Klein- und Kurstadt Bad Liebenwerda in der Straße "An den Siebenbrücken" hatte. Hier fanden sogenannte "Republikflüchtlinge" für ihr Anliegen Rat und auch manch tatkräftige Unterstützung. Das Lied "Über sieben Brücken musst du gehn" war also vor allem eine versteckte Aufforderung, die DDR zu verlassen und sich in jener Straße die notwendigen Hilfen hierfür zu holen........
!
-
heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von heisenberg » 16.08.2015 18:42:51
38829 lua-Kurzvariante
38830 lua-Langvariante, Zeigt u. a. Iteratoren-Anwendung
38735 Ruby-Varianten
38828 Perl
Zuletzt geändert von
heisenberg am 23.09.2015 22:50:34, insgesamt 3-mal geändert.