• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[Projektidee] KISS Ebook Bibliothek / Dokument Schnellstarter

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #61
Also die Übersetzung passt ja soweit, du mußt nur ein paar Schnitzer ausmerzen. :)
Ich lade sie aber erst, später, wenn alles okay ist auf Github hoch.

Aber den Fehler den du gerade hast, kann ich nicht nachvollziehen - ich sehe zwar das Statement das dafür da ist, aber das sollte eigentlich nicht auftreten.

Schau das du als normaler User eingeloggt bist, die DB zu löschen und neu anlegen zu lassen unter dem Useraccount - das sollte zwar nicht das Statement beeinflussen, aber wer weiß. Vielleicht wurde die Datenbank falsch anlegt... die Option sollte gesetzt werden, auch wenn du den Dialog abbrichst.
 

mathmos

404

Registriert
14 Juli 2013
Beiträge
4.415
Habe Kisslib noch einmal vorsorglich von Github heruntergeladen und die vorhandene Datenbank gelöscht. Wenn ich kisslib mit meinem Benutzerkonto starte wird die Datenbank mit den Rechten 644 angelegt (Besitzer: mathmos Gruppe: users). Problem bleibt bestehen. Ich habe dann mal die Rechte auf 777 geändert. Das Problem bleibt bestehen.

Wenn ich im Sqlitebrowser versuche die Update-Statements aus kiss-front.c auszuführen bekomme ich auch eine Fehlermeldung die sich auf das LIMIT bezieht (near "LIMIT": syntax error: UPDATE options SET value='false' WHERE option == 'first_startup' LIMIT). Das SELECT direkt unter //"first_startup" check funktioniert.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #63
Unter welchem System testest du dass denn und mit welcher Version?

Die Update Statements mit Limit sollten eigentlich überall unterstützt werden.... wundert mich, ist aber doof natürlich wenn es nicht geht. ;)

Benutzt du SqLite2 ?

PS:

Es sollte auch "LIMIT 0,1" sein und nicht nur "LIMIT".
 
Zuletzt bearbeitet:

mathmos

404

Registriert
14 Juli 2013
Beiträge
4.415
Fehler beim Kopieren... Bei der Fehlermeldung fehlt noch das 0,1. Installiert habe ich sqlite 3.16.2-1 und sqlitebrowser 3.9.1-1.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #65
Also nur in der "kisslib" Binary Version... das sollte aber keine Probleme bereiten.

Ich bin eben alles durchgegangen und ich sehe keinen Fehler im Code, noch sehe ich das der Option etwas mangelt, du in deinen Quellen?

Komisch das so etwas bei dir passiert... hast du die Quellen 1 zu 1 aus dem Git Repository bezogen?

Ansonsten muss ich eben ohne Limit Arbeiten, was auch nicht schlimm wäre, aber es ist halt nicht direkt schlüssig.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Ansonsten muss ich eben ohne Limit Arbeiten, was auch nicht schlimm wäre, aber es ist halt nicht direkt schlüssig.
Wenn du sowieso nur Abfragen hast, die Eindeutig sind, da du direkt nach einer ID oder einem anderen einmaligen Schlüssel suchst, ist ein LIMIT auch überflüssig. Oder ist dir bekannt, dass das die Performance steigert, wenn sowieso nur ein einzelner Treffer vorhanden ist?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #67
Moin Roin,
@mathmos,

ich habe mir die betreffenden Statements noch einmal angesehen und kann dort keinen Fehler feststellen.
Auf meinem Testsystem und unter Jessie funktioniert die Abfrage fehlerfrei.

Ein Limit "steigert" in so fern nur die Performance, wenn man nicht über eine eindeutige Id geht, das nach X (hier 1) SQL Zeilen die Abfrage/Statement als erfüllt gilt und nicht mehr weiter gesucht wird, wenn zum Beispiel ein String verglichen wird und eine Zeile geupdatet wurde mit einem LIMIT 1.
Bei den Optionen wäre dies nicht weiter tragisch, da die ganze Tabelle bisher nur aus 4 Positionen besteht und diese nicht häufig angesprochen werden.

Allerdings ist dies bei einer Bearbeitung von einem Ebook Titel - die fast "Live" geupdatet werden sollen, unabdingbar, da wir nur einen eindeutigen Datensatz haben und somit SQL nicht weiter suchen soll nachdem ein Eintrag verändert worden ist, so jedenfalls auch mein Verständnis des "LIMIT" Operators in SQL.

Wenn es am LIMIT liegen sollte, wären aber auch andere Funktionalitäten betroffen. Und das Limit-Statement sollte es schon seit Ewigkeiten in SQLite geben, daher verstehe ich auch nicht ganz warum @Mathmos dabei einen Fehler erhält.

Das Statement wird auch nicht vorher in einem String abgespeichert, so das dies "abgeschnitten" werden, wie das mal in C mit Strings passieren kann wenn man nicht aufpasst.

Ich werde mal schauen ob ich nicht das gleiche Setup bzw. Arch noch einmal updaten und dann testen kann, vielleicht liegt der Fehler auch in SQLite, aber wie gesagt, da müssten dann auch andere Operationen betroffen sein.
 

mathmos

404

Registriert
14 Juli 2013
Beiträge
4.415
hast du die Quellen 1 zu 1 aus dem Git Repository bezogen?

Die Kisslib-Datei habe ich direkt bei Gibthub heruntergeladen. Die Datei kiss-front.c habe ich mir einfach am Bildschirm anzeigen lassen (da ich beruflich und privat mit SQL-Datenbanken zu tun habe, hatte ich gehofft ich finde einfach einen Fehler in einem Statement).

Leider kann ich auf den richtig installierten Arch-Installationen auch kein Downgrade auf SQLite 2 machen, da ich sonst wegen der Abhängigkeiten zu Version 3 in Teufels Küche komme. Daher kann ich auch nicht testen ob eventuell das aktuelle Paket einfach das Problem ist. Ich werde die Tage mal schauen ob ich eventuell noch eine irgendwo eine ältere virtuelle Maschine mit Arch herumliegen habe. Eventuell finde ich auch die Zeit und lege eine mit Mageia an. Die sind zwar auch schon bei Version 3 aber vielleicht kann man das Problem so wenigstens eingrenzen.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #69
@mathmos:

Moin!

Du kannst gerne versuchen den Fehler einzukreisen, aber ich habe schon eine VM mit Arch daheim auf der die Software bisher gelaufen ist - allerdings ist mein letzter Test schon ein Weilchen her und viele der Neuerungen habe ich noch nicht ausgiebig nachgetestet.

Ich setzte mich aber heute nach der Arbeit daran.

Wenn die Version funktioniert wie gedacht und ich den Fehler nicht mit Lib Version X von sqlite3 (ich notiere mir die installierte! (Note to self)) und dann upgrade ich einfach mal die VM auf den letzten Stand Und schaue ob das Problem bei mir dann auch auftritt.

Aber wenn du etwas Zeit hast, kannst du natürlich trotzdem gern testen - ich bin aktuell auch etwas ratlos warum so ein Fehler kommt, im Code habe ich nichts entsprechendes gefunden.

----

Ich habe heute Morgen, hatte etwas Zeit, auch schon ein neues Feature eingebaut, so kann man jetzt beim Start eine Spalte angeben, welche beim Programmstart soritert werden soll - oder keine.

Vielleicht schaffe ich auch noch zu implementieren die Spaltenanordnung doch selbst verschieben zu lassen, ich hatte schon etwas probiert und denke ich gehe den richtigen Weg, aber noch keinen "Hook" (Signal) gesehen um ein Speichern auszulösen, nachdem eine Spalte "verschoben" wurde. Und bei einem "shutdown" Signal der Anwendung, die vor dem beenden der Anwendung abfgefeuert wird, kann man nicht mehr auf die Tabelle zugreifen - um die Positionen der Spalten ermitteln zu lassen und diese anhand der "Ids" zu identifizieren... dafür sind die IDs da, weil ich nicht über Stringnamen des Spaltenkopfes direkt gehen kann.

Also irgend wie so: Man kann die Spalten reorganisieren, aber ich hab kein Signal (bisher) gefunden das mitteilt, das eine Spalte verschoben wurde was ein sofortiges Speichern triggern könnte.

Andere Option wäre dies über einen Menüpunkt zu machen, bzw. nur "Ansicht speichern" und das Programm stellt diese dann wieder bei einem Neustart her.
Aber wäre halt schon etwas cooler, wenn dies automatisch im Hintergrund funktionieren würde.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #70
Der SQL Update Limit "Bug"

@mathmos:

Ich habe das Problem zu 99% gefunden warum die Abfrage unter Arch Linux einen Fehler schmeißt und daher auch nicht aktualisiert wird:
http://www.sqlite.org/lang_update.html

Optional LIMIT and ORDER BY Clauses

If SQLite is built with the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option then the syntax of the UPDATE statement is extended with optional ORDER BY and LIMIT clauses as follows:

update-stmt-limited:

Heißt, das Paket "sqlite" (ist) muss(!) unter Arch so gebaut sein, dass in den Paketquellen die Kompilierungs-Option mit "SQLITE_ENABLE_UPDATE_DELETE_LIMIT" nicht verwendet wird und somit diese "optionale" Begrenzung nicht überprüft wird und daher einen Fehler ausgibt, weil das LIMIT in dem Statement nicht bekannt ist.

Das wird dann aber auch andere Statements betreffen, wie das löschen eines Ebooks aus der Liste mit einem "DELETE * WHERE XYZ LIMIT".

Ich frage mal bei Arch im Bugtracker ob dieses Feature aus irgendeinem Grund nicht verwendet wird bzw. eher noch, ob man es nicht als Standard setzen kann, da es schon sinnvoll ist.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #71
Nur ein kurzer Zwischenbericht und eine "finale Version":

  • Die LIMIT Anweisung wurde nun auf die "üblichen" (SELECT, UPDATE) reduziert und ist nun überall kompatibel - alternative Anweisungen sind im Code enthalten
  • beim Starten der Anwendung kann nun sortiert werden
  • Spalten können sortiiert / umorganisiert werden
  • in Ubuntu 16.10 werden nun alle Menüs korrekt erkannt und angesprochen, dies war vorher nicht der Fall
  • Speicher und wiederherstellen der Fenstergröße wird bei der Github Variante unterstützt, nicht im "Release".
  • Release von Version v0.8.0

Ich glaube wenn die Übersetzung von Mathmos fertig ist bzw. er sein grünes Licht gibt, ist diese Version auf Deutsch vollständig.

In the meantime ist Version 0.8.0 oder die Github Variante das Mittel der Wahl - und man kann die Version als "stabil" anordnen.
Größere Änderungen wird es vermutlich nicht mehr geben und alles Features sind getestet und überprüft.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Wirst du noch ein/zwei Versionen für Windows kompilieren? Also Windows (7/)10 32bit / 64bit? Durch die Standardlibaries sollte das meiste doch relativ einfach zu übernehmen sein (...)?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #74
Wirst du noch ein/zwei Versionen für Windows kompilieren? Also Windows (7/)10 32bit / 64bit? Durch die Standardlibaries sollte das meiste doch relativ einfach zu übernehmen sein (...)?

Das Projekt zu portieren kann mittels MSys2 ganz leicht sein, dies ist aber nicht gesagt, mal ein paar Gedanken dazu:

Folgende Bibliotheken werden verwendet:
[src=txt]
// ANSI C / +99 libraries
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>

// Kisslibs ebook routinen
#include "kisslib.h" // read_pdf, read_mobi, read_chm, read_epub


// GTK3
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gio/gio.h>
#include <glib.h>

//SQLite3
#include <sqlite3.h>

//GNU / POSIX
#include <dirent.h> // readdir, closedir
#include <unistd.h> // access, fork, exec varianten

// gettext
#include <libintl.h>

// Libzip (Kisslib.h)
#include <zip.h>
[/src]

ANSI C / +C99 sind klar, die stellen kein Problem da.
Kisslib.h - was dazwischen hängt, enthält nur eine GTK Routine und libzip.
SQlite3 und Gettext findet sich alle in Msys2.

Wo es jetzt spannender wird, sind die GNU / POSIX Header:
dirent.h: readdir(), closedir() - m Ordnerinhalte auszulesen

unistd.h: access(), fork(), exec() - um zu prüfen ob der aktuelle User Zugriff auf einen Reader hat und um andere Prozesse zu starten

Diese Funktionen müssten durch Windows Funktionen ersetzt werden.

2. - Reader und Viewer Locations für ein Setup:
Die Reader/Viewer Erkennenung für ein Setup:
Unter Linux sind die Programme in der Regel an einem Platz installiert, auf diese wird geprüft.
Unter Windows müsste man sich dann vermutlich irgendwie in der Registry einhangeln, um dann nach bestimmen Schlüssel zu suchen und dann die Executable Ordner finden für Acrobat.exe/SumatraPDF/Foxit Reader usw... und diese im Setup vorschlagen

3. - Pfade/Dateinamen Handling:
Es ist alles auf die Linux Schreibweise von Dateien und Pfaden ausgelegt, ich bin mir nicht sicher das dies konsequent unter Windows auch so funktioniert, kann man aber testen... betroffen davon wäre die Routine(n), die Daten in das Model ließt und in die Datenbank speichert, bzw. die Ausleseroutinen aufruft.

4. - Fork/Exec:
Nicht Standard C aber hier muß man mit Sicherheit noch Änderungen vornehmen, also in welcher Shell/Terminal/Befehl ein Programm gestartet wird damit Kisslib weiterhin funktioniert und ein anderer Prozess gestartet werden kann


Sind also ein paar Punkte die dafür mehr oder minder berücksichtigt werden sollten/müssten.
Auch würde ich selbst dafür andere C Files/eine neu Version verwenden, damit der Windows relevante Code nicht mit dem der Linux Versionen verschmolzen wird und umgekehrt.

PS: Als Listen für die Standard Detection Reader könnten dienen:
https://de.wikipedia.org/wiki/Liste_von_PDF-Software
https://en.wikipedia.org/wiki/List_of_PDF_software

Es sind mir auch noch Kandidaten für Linux aufgefallen. :)



@mathmos:
@theSplit:

Ich schau mal, ob ich unter der Woche fertig werde. Wen nicht, am Wochenende.

Wie du Zeit hast, es ist nicht so eilig. ;) Aber klar, würde mich freuen wenn wir es irgendwann auf den Weg kriegen :)



Auch nochmal in generell zum Thema, ich versuche derzeit Kiss Ebook als Paket in Debian zu bekommen, aber es hat sich noch kein Maintainer dafür gefunden. Für das WNPP Projekt ist es aber vorgeschlagen, also der Ort wo man Pakete vorschlagen kann, um für Hilfe zur Pakettierung/Einbindung/zur Verfügungstellung unter Debian aus den offiziellen Paketquellen fragen/bitten kann. Ich habe mich zwar selbst schon etwas in das Thema eingelesen, bin aber noch nicht 100% schlau daraus geworden.... ist nicht ganz so einfach da den Fuß in die Tür zu bekommen.

Im Grunde gilt das gleiche für die anderen Distros, die aber auch wieder zum Teil andere Wege gehen. Wer sich also auskennt und mithelfen kann/will oder Tips hat, bitte gern melden! :)
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #76
Das ist echt cool, ich danke dir für die Unterstützung Asseon! :)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.560
  • Thread Starter Thread Starter
  • #77
[CROSSPOST]

Es ist nun eine deutsche Übersetzung von Mathmos (ngb) verfügbar gemacht worden welche nun in einem neuen Release zu Verfügung steht.

Der Release findet sich hier: https://github.com/jrie/kisslib/releases/tag/v0.8.3
Der Quellcode und weitere Informationen (Hintergrund, Handhabung, Shortcuts) hier: https://github.com/jrie/kisslib

Auch ist nun Standard das Übersetzungen aus dem Programmordner "translations", aus respektiven Unterordner für die Locales, geladen werden.

Ich würde an dieser Stelle auch gerne den Aufruf starten, wer sich in einer Fremdsprachen sicher fühlt oder das Vokabular mitbringt, sich an einer Übersetzung für diese Sprache, für Kisslib/KissEbook zu wagen.

Damit Mithilfe/Mitarbeit nicht umsonst ist/war:
Es ist geplant einen About - Dialog zu integrieren, in diesem würde ich euch mit eurem Namen oder Nickname, je nach Wahl - verewigen für jegliche Mitarbeit.
Das Umfasst auch das ganze Feedback das im ngb.to Thread und auf DebianForum.de gegeben wurde.

Ich würde euch aber dennoch bitten euch bei mir zu melden, ob ich euch dort nennen darf. Vorzugsweise kann ich euch mit Nicknamen integrieren, aber auch eurem richtigen Namen, falls explizit erwünscht.

Noch kurz zum Thema Übersetzungen:
Eine wirklich kurze "Readme" bzw. Info wie man eine Übersetzung erstellen kann, findet sich hier:
https://github.com/jrie/kisslib/tree/master/translations mit Referenz auf weiterführende Hintergrundinformation und Howtos.

Fragen zum Übersetzen kann ich aber gern versuchen zu klären - allerdings bin ich kein Expert in dieser Thematik und ziemlich "frisch".
Aber wenn ich irgendwie helfen kann, versuche ich das natürlich.
 
Oben