In the last few months some people asked me how to execute single statements in CrunchyFrog. It's possible, just select the text you want to execute and hit F5. If no text is selected all text in the SQL editor is executed in whole.
This is not really satisfying so I played around with a SQL splitter. It's inspired by Google's GQL parser found in their App Engine SDK and currently it only tries to find statement boundaries in the SQL editor. The statements are marked with a little arrow and that's all for the moment. The backend that executes the statements still needs some work. If everything works as expected some simple SQL parsing will be part of the next major release.
If anyone knows a good SQL parser module for Python, leave a comment! Even a solid SQL splitter would be enough in the first run.
Another topic for the next major release is the plugin system, especially the install and update mechanism. I plan to use Capucchin. It should be easy to integrate in the current sources and it's definitely better than another homegrown plugin updater and installer.
Donnerstag, September 11, 2008
| [+/-] |
Some Thoughts about CrunchyFrog 0.3 |
Montag, Juli 14, 2008
| [+/-] |
Using ReStructuredText with Google App Engine |
To use docutils in your App Engine application to render ReStructuredText first download the module here and place the docutils directory and roman.py in the top-level directory of your application:
$ cd my_appengine_app/ $ wget http://prdownloads.sourceforge.net/docutils/docutils-0.5.tar.gz?download $ tar xvfz docutils-0.5.tar.gz $ mv docutils-0.5/docutils/ docutils-0.5/extras/roman.py . $ rm -rf docutils-0.5*By default, docutils tries to read configuration files from various locations. But this will ail in the App Engine environment. So you have to disable it by overwriting the default settings:
from docutils.core import publish_parts
def someview(request):
parts = publish_parts(source=some_rst, writer_name='html4css1',
settings_overrides={'_disable_config': True})
return parts['fragment']
If you are using the Django helpers, addRESTRUCTUREDTEXT_FILTER_SETTINGS = {'_disable_config': True}in settings.py to use the restructuredtext filter. Refer to the Django documentation on how to activate and use this filter.
Dienstag, Juni 10, 2008
| [+/-] |
CrunchyFrog 0.2.1 released |
Just some minor bug fixes and improvements for this release:
- Support for recent files.
- UI improvements and fixes.
- SQL server and httplog backend.
- Improved plugin handling.
- New and updated translations.
Visit the GoogleCode pages for additional information and downloads.
Samstag, Mai 17, 2008
| [+/-] |
CrunchyFrog on Arch Linux |
To all Arch Linux users out there, CrunchyFrog is now available in the user-community repository. Thanks to angvp and anyone else involved for packaging and debugging!
Freitag, Mai 09, 2008
| [+/-] |
Beruhigend: Ich mag mich. Sagt das Taste-O-Meter. |
last.fm hat es festgestellt: Ich mag mich.
Dem Programmierer dieses Widgets muss man zu Gute halten, dass er den "sozialen" Gedanken mit einer beachtenswerten psychologischen Scharfsinnigkeit bis in die letzte else-Verzweigung durchgezogen hat: Wenn es schon unmöglich ist, im "größten sozialen Musiknetzwerk" einen Freund zu finden, dann hat man immer noch sich selbst. Doch, super!
P.S.: Den Klick auf "Ähnliche Musik anhören" spar ich mir mal - die läuft wohl gerade hier.
Mittwoch, Mai 07, 2008
| [+/-] |
Google Notizen und Python |
Ein Plugin für gedit, um Notizen in Google's Notebook zu bearbeiten, wäre ganz praktisch. "Wäre", denn leider bietet die Notebook API nur einen lesenden Zugriff auf die Notizen und selbst dann auch nur auf die Notizbücher, die freigegeben sind.
Bei einer Recherche nach Alternativen ist lediglich ein Modul der kanadischen Firma Poly9 zu Tage getreten, dass auch das Anlegen und Bearbeiten von Notizen beherrscht. Jedoch konnte ich mich mit diesem Modul nicht wirklich anfreunden, da es zum einen nur über verschlungene Hyperlinkwege erreichbar war und zum anderen nicht wirklich zuverlässig funktioniert. Bei meinem ersten Test konnte ich zumindest mal kurz einen Blick auf meine Notizbücher und Notizen werfen - beim Anlegen einer Notiz bin ich jedoch direkt auf einen Fehler gelaufen, der damit zu tun hatte, dass das Notizbuch ein Leerzeichen im Namen hatte. Leider kann ich den Traceback hier nicht posten, da jetzt, beim zweiten Test, schon das Abrufen der Notizbücher beim Login scheitert:
>>> import google_notebook_api
>>> nb = google_notebook_api.GNotebook("test@example.com", "secret")
Traceback (most recent call last):
File "stdin", line 1, in module
File "google_notebook_api.py", line 142, in __init__
self.login(username, password)
File "google_notebook_api.py", line 152, in login
self._refreshNotebooks()
File "google_notebook_api.py", line 173, in _refreshNotebooks
raise GNotebookRefreshError, "Could not refresh the notebooks list."
google_notebook_api.GNotebookRefreshError: Could not refresh the notebooks list.
>>>
Etwas unheimlich an diesem Modul ist auch die Tatsache, dass es ganz gerne mal die eval()-Funktion aufruft. Darüber hinaus ist völlig unklar unter welcher Lizenz das Modul eigentlich steht. Somit kann man eigentlich nur zu dem gleichen Schhluß kommen wie die Entwickler von Conduit, einem Synchronisationstool für Gnome. Anfangs fand man diese sog. "API" noch als Plugin in den Sourcen, aber schon relativ schnell ist das Modul wieder verschwunden. Der Kommentar beim Commit spricht für sich: "Removed as it doesnt actually work" (rev.106).
Vorerst bleibt also nur zu hoffen, das die Rufe in der Mailingliste bald erhört werden und über die Notebook-API endlich auch ein schreibender Zugriff auf die Notizbücher möglich wird. Bis dahin wird wohl auch das Plugin für gedit weiter auf der Wunschliste stehen bleiben.
P.s.: Wer sich dennoch für das Modul von Poly9 interessiert: Sourcen, Wiki-Seite, Subversion.
Mittwoch, April 30, 2008
| [+/-] |
Python und Anjuta... |
...oder die Frage nach einer "schönen" IDE.
Alle halbe Jahr das gleiche Spiel: Ein neuer Ubuntu-Release, mit einer neuen Anjuta-Version, Anjuta wird installiert, für eine halbe Stunde ausprobiert, deinstalliert und Eclipse+PyDev nehmen wieder den Desktop ein.
An sich finde ich ja, dass Anjuta eine recht nette IDE ist. Dennoch ist selten mehr als eine halbe Stunde drin. Manchmal sind es die harten Abstürze, dann die Vorteile der Eclipse, via Subversion-Plugin immer im Blick zu haben, in welchem Zweig sich Änderungen verbergen und wie die Versionsgeschichte einer Code-Stelle aussieht; dann die schnelle Navigation im Code über die Outline und die Tastaturkürzel und allem voran die hervorragenden Leistungen von PyDev in Sachen Autovervollständigung und Code Assistance. Hinzu kommt noch, dass auch HTML/XML und CSS dank der WebDeveloper-Tools hervorragend von der Hand gehen. Dafür nehme ich dann auch den immensen Speicherverbrauch der Eclipse in Kauf.
Sieht man mal von den Abstürzen ab, kommt Anjuta dagegen flink und elegant im Sinne eines konsistenten Gnome-Look-and-Feel daher. Die Plugins - wie zum Beispiel die Python-Shell und eine Subversion-Integration - sind absolut in Ordnung. Lediglich eine bessere Verknüpfung der Plugins untereinander wäre wünschenswert. Beim aktuellen Release (2.4.1) hat mich vor allem die aufkommende Unterstützung von Python-basierten Plugins interessiert. In der Realität sah das ganze aber dann doch etwas schwieriger aus: Um Plugins in Python für Anjuta schreiben zu können ist ein gepatchtes PyGTK notwendig. Der erforderliche Patch greift relativ tief in die Code-Erzeugung von PyGTK ein und die Kommentare zu diesem Patch fallen insgesamt eher verhalten aus. Vor allem die Frage, ob die Änderungen tatsächlich PyGTK betreffen sollten, oder ob nicht eher eine Änderung der Anjuta-Code-Basis notwendig ist, um Python-Plugins zu ermöglichen, scheint noch diskussionswürdig.
Fazit? Im Oktober wird das Spiel wohl von vorne losgehen... Anjuta gefällt mir von Mal zu Mal besser, für den letzten Schritt - der Wechsel von Eclipse auf Anjuta zur Python-Programmierung - werden aber sicherlich noch einige Releases ins Land gehen müssen.
Dienstag, April 08, 2008
| [+/-] |
CrunchyFrog 0.2.0 |
Finally CrunchyFrog 0.2.0 is released. Read the announcement for details...