Kexi/Links: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
 
(146 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page documents ideas, links to competition and competing approaches.
{{TODO|Review this content for relevance and accuracy}}
__TOC__
;[http://github.com/hjiang/linqxx/wikis Linq++]:A simple experimental implementation of a LINQ-like query language for C++ containers.
;[http://github.com/hjiang/linqxx/wikis Linq++]:A simple experimental implementation of a LINQ-like query language for C++ containers.
;[http://www.fmsinc.com/MicrosoftAccess/2007/Top-Features.html What users hate and what like about MSA 2k7]
;[http://www.fmsinc.com/MicrosoftAccess/2007/Top-Features.html What users hate and what like about MSA 2k7]
;[http://loxim.sourceforge.net/ LoXiM]:An experimental, an object oriented, semistructured Database Management System.
;[http://loxim.sourceforge.net/ LoXiM]:An experimental, an object oriented, semistructured Database Management System.
;[http://www.jotform.com/ JotForm]:web-based forms, compare to kexi web forms...
;[http://www.jotform.com/ JotForm]:web-based forms, compare to kexi web forms...
;[http://www.customguide.com/quick_references.htm  Quick Reference Guides to Popular Software]:good idea for koffice apps
;[http://www.customguide.com/quick_references.htm  Quick Reference Guides to Popular Software]:good idea for Calligra apps
;[http://cia.vc/stats/project/kde/kexi/.rss?ver=2&medium=xhtml&limit= Kexi commit RSS]:Customize [http://cia.vc/stats/project/kde/kexi/.rss/customize here]
;[http://cia.vc/stats/project/kde/kexi/.rss?ver=2&medium=xhtml&limit= Kexi commit RSS]:Customize [http://cia.vc/stats/project/kde/kexi/.rss/customize here]
;[http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/ Qt Property Browser]:Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser.  
;[http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/ Qt Property Browser]:Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser.  
;[http://api.kde.org/kdesupport-api/kdesupport-apidocs/grantlee/html/ Grantlee]:Open Source string template system based on the Django template system from the Django project
;[http://api.kde.org/kdesupport-api/kdesupport-apidocs/grantlee/html/ Grantlee]:Open Source string template system based on the Django template system from the Django project
;[http://users.libero.it/irwin/ uSQLite]:A network wrapper for SQLite
;[http://users.libero.it/irwin/ uSQLite]:A network wrapper for SQLite
;[http://modsqlite.sourceforge.net mod_sqlite]:An Apache 2.0 module which provides access to SQLite databases over HTTP. SQLite required that clients of the database be on the same machine as the SQLite database itself. mod_sqlite allows you to access your SQLite databases over a network.
;[http://sourceforge.net/projects/tanit/ Tanit]:A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications.
;[http://sourceforge.net/projects/tanit/ Tanit]:A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications.
;[http://torasql.com TOra]:An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC.
;[http://torasql.com TOra]:An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC.
;[http://schemaspy.sourceforge.net/ SchemaSpy]: A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format.
;[http://schemaspy.sourceforge.net/ SchemaSpy]: A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format.
;[https://github.com/brianb/mdbtools MDB Tools]: A library for accessing Microsoft Access .mdb files
;[https://github.com/brianb/mdbtools MDB Tools]: A library for accessing Microsoft Access .mdb files
;[http://mdbdoc.sourceforge.net MDB Doc]: An add-in for Microsoft Access 2000, XP, 2003, 2007 and 2010 to automate the creation of database documentation in XHTML format. An older version (1.40) supports Access 97. '''Definitely a more reliable way of importing MDB/ACCDB to Kexi (planned this approach years ago).''' Extra idea is to add web service that accepts the Access files online.
;[http://qooxdoo.org qooxdoo]: (pronounced ['ku:ksdu:]) is a framework for creating desktop-style web applications (rich internet applications, RIAs) for desktop and mobile clients; idea: use it for the next generation Kexi WebForms.
;[http://qooxdoo.org qooxdoo]: (pronounced ['ku:ksdu:]) is a framework for creating desktop-style web applications (rich internet applications, RIAs) for desktop and mobile clients; idea: use it for the next generation Kexi WebForms.
;[http://srtools.blogspot.com/ Saint]:A suite of tools to assist in the workflow for doing bibliometric/ scientometric research, that is, research into the workings of the science system itself based on data on publications, patents and so on. [http://qt.nokia.com/qt-in-use/ambassadors/project?id=a0F20000006KgBSEA0 Qt Ambassador link], by André Somers, adds DDL and more on top of QtSQL, connects with MySQL and MSA (the latter with MS ADO); jstaniek met André at QtCS 2011
;[http://srtools.blogspot.com/ Saint]:A suite of tools to assist in the workflow for doing bibliometric/ scientometric research, that is, research into the workings of the science system itself based on data on publications, patents and so on. [http://qt.nokia.com/qt-in-use/ambassadors/project?id=a0F20000006KgBSEA0 Qt Ambassador link], by André Somers, adds DDL and more on top of QtSQL, connects with MySQL and MSA (the latter with MS ADO); jstaniek met André at QtCS 2011; see also QtSQL discussions at [http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-May/000226.html Qt5-feedback]


==Ideas==
==Ideas==
Line 26: Line 33:
*[http://www.odata.org OData], the Open Data Protocol, is a Web protocol for querying and updating data. Even MSA can support it.
*[http://www.odata.org OData], the Open Data Protocol, is a Web protocol for querying and updating data. Even MSA can support it.
*[http://office.microsoft.com/en-us/powerpoint-help/all-about-themes-quick-styles-cell-styles-and-background-styles-HA010178624.aspx Finally add support for themes/color palettes like in MSO]
*[http://office.microsoft.com/en-us/powerpoint-help/all-about-themes-quick-styles-cell-styles-and-background-styles-HA010178624.aspx Finally add support for themes/color palettes like in MSO]
*[http://www.h-online.com/open/news/item/Adobe-details-its-open-source-code-editor-for-web-developers-1626080.html Brackets] is Adobe's new open source code editor for web development using HTML, CSS and JavaScript. Idea: it's style of presenting opened documents with '<'. Maybe Kexi could drop tabs for this?
*Google Labs
*Google Labs
**[http://datawiki.googlelabs.com/ Google Labs data wiki] - wiki for structured data; our old idea was similar, to implement wiki-like database creator on top of KexiDB/Predicate
**[http://datawiki.googlelabs.com/ Google Labs data wiki] - wiki for structured data; our old idea was similar, to implement wiki-like database creator on top of KDb
**[http://labs.google.com/sets Google Labs sets] - have you ever wanted to larger test set of items from give category? E.g. animals? Google sets uses the big database and categories to discover matching set and return its items. Can be useful as a plugin for Kexi.
**[http://labs.google.com/sets Google Labs sets] - have you ever wanted to larger test set of items from give category? E.g. animals? Google sets uses the big database and categories to discover matching set and return its items. Can be useful as a plugin for Kexi.
**[http://www.google.com/fusiontables/Home/ Google Fusion Tables] - storage for Kexi?
*Table Designer
**How about QDBML (Qt Database Modelling Language)? That would use QML-like markup for DDL queries. See also [http://www.terrainformatica.com/2006/10/what-the-hell-is-that-json-db/ JSON-DB] and [http://gitorious.org/+qt-developers/qt/qtjsondb Qt JSON DB].
*Forms, Reports
*Forms, Reports
**Widget palette for Forms & Reports: Xcode does it similarly to our plans [http://groovyfrog.com/blog/assets/xcode4fig2.png] [http://www.x-dims.com/images/archscaleScreen.jpg]
**Widget palette for Forms & Reports: Xcode does it similarly to our plans [http://groovyfrog.com/blog/assets/xcode4fig2.png] [http://www.x-dims.com/images/archscaleScreen.jpg]
Line 34: Line 46:
**Idea: display help box for form widgets/report elements [http://2.bp.blogspot.com/_J90P-hyr9o8/Sw73lS58ybI/AAAAAAAAApE/DQtSOZA_KXg/s1600/HelloXcode_02.jpg] [http://www.vellios.com/wordpress/wp-content/uploads/2010/07/Xcode4_7.png]
**Idea: display help box for form widgets/report elements [http://2.bp.blogspot.com/_J90P-hyr9o8/Sw73lS58ybI/AAAAAAAAApE/DQtSOZA_KXg/s1600/HelloXcode_02.jpg] [http://www.vellios.com/wordpress/wp-content/uploads/2010/07/Xcode4_7.png]
**Idea: move "Create" tab to toolbox [http://www.codingfreaks.de/wp-content/uploads/2011/03/xcode_05.png]
**Idea: move "Create" tab to toolbox [http://www.codingfreaks.de/wp-content/uploads/2011/03/xcode_05.png]
**Add means for styling forms using the [http://developer.qt.nokia.com/doc/qt-4.8/stylesheet-syntax.html Qt CSS]
*Reuse [http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html Spatialite, Sqlite GIS extension]
*Reuse [http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html Spatialite, Sqlite GIS extension]
*Consider using [http://mapnik.org Mapnik], a mapping toolkit for desktop- and server-based map rendering, written in C++ (instead of Marble).
*BOND uses [http://www.treshna.com/bond/documentation/database_design_tips/ database comments to store information about ''casual relationships'']
*BOND uses [http://www.treshna.com/bond/documentation/database_design_tips/ database comments to store information about ''casual relationships'']
**it's good idea to have some use/reuse of db comments in Kexi but it's not clear if it's safe to use them for metadata since users would already depend on comments for other purposes; so BOND usage of comments is a bit hacky
**it's good idea to have some use/reuse of db comments in Kexi but it's not clear if it's safe to use them for metadata since users would already depend on comments for other purposes; so BOND usage of comments is a bit hacky
**it's good idea to have casual (weak) relationships, it's compatible with how KexiDB/Predicate is going to deliver relationships (i.e. both strong and casual)
**it's good idea to have casual (weak) relationships, it's compatible with how KDb is going to deliver relationships (i.e. both strong and casual)
*[http://demo.koolphp.net/Examples/KoolGrid/index.php KoolGrid] - web grids
*Explore topic of [http://en.wikipedia.org/wiki/Faceted_search Faceted search], related to "Query by example".
*[http://code.google.com/apis/sql/ Google Cloud SQL] is web service that allows you to create, configure, and use relational databases with your App Engine applications.
*Kexi could propose to disable or uninsatll the least used plugins, see how Thunderbird does this [http://afublog.com/2011/11/07/download-mozilla-firefox-8-final/].
*Add integration to the http://www.taskjuggler.org and Plan
*Add integration to the [http://kanboard.net Kanboard]. It's based on SQLite so would be interesting. And we use it within KDE at https://todo.kde.org.
*Add integration with [https://launchpad.net/percona-toolkit Percona Toolkit] for MySQL
*Use [http://jackcess.sourceforge.net jackcess] instead of mdbtools. That would add java dependency but only for the driver. They beat mdbtools [http://jackcess.sourceforge.net/faq.html#mdbtools]. And are 5 times faster than original MSA. They really support many details [http://jackcess.svn.sourceforge.net/viewvc/jackcess/jackcess/trunk/src/java/com/healthmarketscience/jackcess/query/QueryFormat.java?revision=623&view=markup]
**Later someone would port it back to C++
*Grouping columns of Table View as in http://stratusbase.com/demo [http://wstaw.org/m/2012/11/16/plasma-desktopoP2540.jpg]
*[http://www.sql-format.com SQL Formatter] - many options/ideas for SQL formatting/prettify, can be applied to Kexi's SQL editor (and later: documentator)
 
===Kexi-based bugzilla client===
Make Kexi useful as GUI for KDE Bugzilla. Reason: to eat our own dog food in Calligra. Use [http://www.bugzilla.org/features/#webservices bugzilla's webservices] for this. Probably separate plugin could be developed. Online/offline operations with synchronization. (discussed with Inge who likes the idea)
 
See also:
*[http://almworks.com/deskzilla/screenshots.html Deskzilla]
*[http://www.mediawiki.org/wiki/Extension:BugzillaReports Bugzilla mediawiki extension]
*[http://getbugbox.com/bugzilla/ bugbox mobile client]
 
===Use Fossil DVCS to handle versioning in Kexi file db===
[http://www.fossil-scm.org Fossil] SQLite-based DVCS, so fits nicely to Kexi needs. It lacks crazy ideas of git, stability is the goal.
 
===Test Data and Test Data Generators===
*Data
**[http://books.google.com/ngrams/datasets datasets used by the Google Books Ngram Viewer] (free as beer)
**Wiktionary database. It exists in MySQL format but can be [http://code.google.com/p/wikokit/wiki/SQLite converted into SQLite file].
*Generators
**[https://github.com/emirozer/fake2db fake2db] generates fake but valid data filled databases for test purposes, supports sqlite, mysql, postgresql, mongodb.
**Many other listed: [http://stackoverflow.com/questions/591892/tools-for-generating-mock-data]
 
===Optimizing===
*Options for [http://componavt.livejournal.com/3393.html SQLite speedup], could be offered via Kexi
*[http://vitessedata.com Vitesse Data] - compiling query into native code using LLVM. The code is optimized to move tremendous amount of data intra-CPU and to run efficiently on modern superscalar CPU.
 
===Scripting===
*public scripting apis should be appealing to users; make them simple, e.g. like this [http://docs.phonegap.com/en/1.3.0/index.html]
*javascript db APIs ideas for node.js [http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/ sql-vs-nosql-which-is-better]
*[http://ipython.org IPython] provides a rich toolkit to help you make the most out of using Python, with powerful Python shells (terminal and Qt-based), etc. '''Idea: support similar interactive shell for Kexi projects.'''
*[https://www.npmjs.org/package/sqlite3 sqlite3 Node.js] module: Asynchronous, non-blocking SQLite3 bindings
 
===Data sharing===
*[http://www.omgubuntu.co.uk/2011/03/contractor-brings-seamless-file-sharing-between-apps-to-the-linux-desktop/ Contractor lets to share data between apps - ubuntu-only for now], see also http://elementaryos.org/docs/apis/contractor
*[https://web.archive.org/web/20141013050151/http://en.wikipedia.org/wiki/Fielded_text Fielded Text] is a proposed standard which provides structure and schema definition to text files which contain tables of values (for example, CSV files)
**Idea: when implementing Kexi CSV Importer's ''import specification'', make it compatible with the ''Fielded Text''. Support this metadata format directly is welcome.
**There are many features that can be covered by the CSV Importer: http://www.xilytix.com/fieldedtext/component/features.html.
*Look at [http://www.razorsql.com/docs/import.html RazorSQL's importer] for CSV import ideas (e.g. options)
*[http://pandaproject.net/ PANDA] s a "data library", which means that it stores all the data you work with--voter registration records, police reports, water testing results, etc. PANDA is also a search engine. ''Useful to look at it for RESTful apis of future Kexi's 3-tier architecture.''
*Use [http://doc.qt.io/qt-5/qwebsocket.html QWebSocket] to implement Kexi's 3-tier architecture.
**+Connect to websocket-enabled browser
 
===.kexi files encryption===
*Add encryption option using the [http://sqlcipher.net/ SQLCipher]. Kexi should ask for password on opening is needed. Integration with KDE Wallet is suggested. There may be others but this is the only known, reasonable open source option. Extra TODO: evaluate possibility of encrypting only selected tables.
 
===DB Connection proxy/pool/relay/load balance===
*[http://sqlrelay.sourceforge.net/ With SQL Relay], you can speed up database-driven web-based applications, enhance the scalability of database-driven web-based applications, distribute access to replicated databases, throttle database access, access databases from unsupported platforms and migrate applications from one database to another.
 
===Schema Analyzer===
*[http://schemaspy.sourceforge.net/ SchemaSpy] is a tool that analyzes the meta-data of a schema in a database and generates a visual representation of it in a browser-displayable format.
*[http://stackoverflow.com/questions/5900050/sqlite-table-disk-usage sqlite_anlyzer] - Idea: use it with Kexi so users can analyse the project
 
===GUI Layout===
*From: [http://www.fastcodesign.com/3032775/a-beautiful-wikipedia-design-that-borrows-inspiration-from-ipad-apps]:
**Can record editing in Kexi be like this? Can the look / feel be pluging-based? [http://a.fastcompany.net/multisite_files/fastcompany/slideshow/2014/07/3032775-slide-wikipedia-concept-1-1024x685.jpg]<br/>http://www.picresize.com/images/rsz_3032775-slide-wikipedia-concept-1-1024x685.jpg
**Can the browsing in Kexi be like this? [http://d.fastcompany.net/multisite_files/fastcompany/slideshow/2014/07/3032775-slide-wikipedia-concept-4-1024x685.jpg]<br/>http://www.picresize.com/images/rsz_3032775-slide-wikipedia-concept-4-1024x685.jpg
 
===Localization===
*Database-based i18n in [http://propelorm.org/blog/2011/01/11/propel-gets-i18n-behavior-and-why-it-matters.html Propel ORM].
*Database-based i18n in [http://www.codeproject.com/Articles/8084/Creating-multilingual-websites-Part ASP-based websites].
 
===Knowledge===
*[http://www.agiledata.org/essays/reporting.html Implementing Reports] (Scott Ambler)
*[http://www.agiledata.org/essays/implementationStrategies.html Encapsulating Database Access: An Agile 'Best Practice'] (Scott Ambler)


==Competition==
==Competition==
;[http://technet.microsoft.com/en-us/library/jj667947.aspx Microsoft Jet Database Engine Programmer's Guide]:useful when working with the MDB driver
;[http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx Ribbon Designer]:what's new in 'the other' GUI impl.
;[http://blogs.msdn.com/vcblog/archive/2009/10/01/ribbon-designer.aspx Ribbon Designer]:what's new in 'the other' GUI impl.
;[http://connect.microsoft.com/ThemeBuilder Theme Builder]:It would be far easier to implement ODF replacement, since iunlike MSOOXML, ODF shares more styles with the same XML markup across apps. For Kexi Forms and Reports themes is a TODO as well.
;[http://connect.microsoft.com/ThemeBuilder Theme Builder]:It would be far easier to implement ODF replacement, since unlike MSOOXML, ODF shares more styles with the same XML markup across apps. For Kexi Forms and Reports themes is a TODO as well.
;[http://msdn.microsoft.com/en-us/library/cc811599.aspx#Ac2007DevelopingSolutions_AccessFileFormats Developing Access 2007 Solutions with Native C or C++]
;[http://msdn.microsoft.com/en-us/library/cc811599.aspx#Ac2007DevelopingSolutions_AccessFileFormats Developing Access 2007 Solutions with Native C or C++]
;[http://blogs.msdn.com/access/archive/2009/08/13/access-2010-data-macros-similar-to-triggers.aspx MSA 2k10 gets a kind of triggers]
;[http://blogs.msdn.com/access/archive/2009/08/13/access-2010-data-macros-similar-to-triggers.aspx MSA 2k10 gets a kind of triggers]
;[http://img.brothersoft.com/screenshots/softimage/n/netbeans_ide-75305-1.jpeg Netbeans GUI looks similar to Kexi 2 GUI in some aspects]
;[http://img.brothersoft.com/screenshots/softimage/n/netbeans_ide-75305-1.jpeg Netbeans GUI looks similar to Kexi 2 GUI in some aspects]
;[http://fmsinc.com/MicrosoftAccess/dataanalysis/preview2010.asp Total Access Statistics 2010 for MSA 2010]:Beyond generic databases...
;[http://fmsinc.com/MicrosoftAccess/dataanalysis/preview2010.asp Total Access Statistics 2010 for MSA 2010]:Beyond generic databases...
;[http://www.devmachines.com/qtitan_screenshots.php Qtitan DataGrid]:Ideas for grouping
;[http://www.devmachines.com/qtitandatagrid-features.html Qtitan DataGrid]:Ideas for grouping, totals and filtering
;[http://www.4js.com/en/products/genero-rw/presentation Genero Report Writer]:Reporting tool, TODO: perform research :)
;[https://cute-report.com CuteReport]:A report solution based on Qt (dual-licensed).
;[https://code.google.com/p/exaro/ eXaro]:A free report engine similar with Jasper or Crystal Reports, embeddable in Qt applications. (inactive since 2010)
;[http://www.kreporter.org KReporter]:Integrated reporting tools for SugarCRM. Filling the gap in SugarCRM. GPL core + commercial plugins.
;[http://lifehacker.com/269235/zoho-creator-is-like-microsoft-access-online Zoho Creator]:Like MSA Online: https://www.zoho.com/creator, https://www.zoho.com/creator/migrate-msaccess-database.html
;[http://office.microsoft.com/en-us/templates/CL101817133.aspx Office 2010 menu to ribbon reference workbooks]:(xlsx files)
;[https://www.google.pl/search?q=Ways_to_use_Access_data_in_Excel Ways to use Access data in Excel]:Similar to plans of Kexi/Tables integration
;[http://www.filemaker.com/support/product/documentation.html FileMaker's docs]
;[http://www.filemaker.com/products/filemaker-go/ FileMaker Go - tablet app]
;[http://www-01.ibm.com/software/lotus/products/smartsuite/approachfeatures.html Lotus Approach]
;[http://server2.alphasoftware.com/products/ Alpha Five]
;[http://www.glom.org/wiki/index.php?title=Development/OnlineGlom OnlineGlom]
;[http://www.visualdatabasecreator.com Simple Visual Database Creator]:Let's look at its simplicity
;[http://blogs.technet.com/b/office2010/archive/2009/12/11/office-2010-visuals-and-branding.aspx MSO 2k10 branding] - the modern menu is close already
;[http://code.google.com/p/sqlite-manager/ firefox sqlite manager]
;[http://www.limbas.org/ Limbas]:A database management system for creating web-based applications
;[http://dabodev.com/about Dabo]: A 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. MIT-licensed.
;[http://www.simile-widgets.org/ HTML Smile widgets]:Ideas for implementation of data widgets
;[http://www.pentaho.com/explore/pentaho-business-analytics/ Pentaho Business Analytics]:Includes business intelligence, data integration and data mining capabilities
;[http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework ADO.NET Entity Framework (EF)]:An object-relational mapping (ORM) framework for the .NET Framework
;[http://www.caspio.com Caspio Online Database]:Allows to create online databases and complete business applications without writing code, using an app-builder.
;[http://www.glabels.org gLabels]: A program for creating labels and business cards for GNOME. Idea: make Kexi reports 100% competitive to this use case. To do so, include plugin with predefined templates and an Assistant.
;[http://www.access2base.com Access2Base]:An OpenOffice/LibreOffice Basic library of macros for (business or personal) application developers and advanced users. The provided macros implement a number of functionalities - directly inspired by MS Access.
;[http://www.devart.com/dbforge/mysql/studio/ dbForge Studio for MySQL]:Rich GUI-based db management app. [http://www.devart.com/dbforge/mysql/studio/download.html Free] Express version available.
;[http://www.microsoftaccesscloud.com Solutions for taking MSA to the cloud]:Microsoft Access Databases Online
;[https://git.gnome.org/browse/gom GOM]:A DataMapper for GObject. See also SQLHeavy below.
;[https://github.com/nemequ/sqlheavy SQLHeavy]:A wrapper on top of SQLite with a GObject-based interface, providing APIs for C and Vala, GObject Introspection support, and additional functionality not present in SQLite.
;[http://www.python-camelot.com Camelot]:Provides components for building business applications on top of Python, SQLAlchemy and Qt. Inspired by the Django admin interface. Dually licensed (GPL/Commercial).
;[http://pouchdb.com PouchDB]:"was written to help web developers build applications that work offline as well as they do online. Applications save data locally, so the user can use all the features of an app even when they're offline. Plus, the data is synchronized between clients, so the user has up-to-date data wherever they go."
;[http://couchdb.apache.org CouchDB]:"is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. [...] [http://docs.couchdb.org/en/1.6.1/intro/overview.html A CouchDB server hosts named databases, which store documents. Each document is uniquely named in the database, and CouchDB provides a RESTful HTTP API for reading and updating (add, edit, delete) database documents.]"
;[https://xojo.com Xojo]:Create native cross-platform desktop, web and web-mobile apps -- ultimately similar to Kexi
;[http://www.lianja.com/overview/lianja-app-builder Lianja App Builder]:Create business Apps for Desktop, Cloud and Mobile devices on Windows, Linux and OS X using NoCode, Visual FoxPro, Python, PHP, and/or HTML5 JavaScript.
;[http://msofficeuser.com/pages/access/submitting-access-database-templates-to-office-online Submitting Access Database Templates to Office Online]:The ACCDT template files that are utilized by Microsoft Access allow a user to create database files with the same formatting without the need to re-create each individual file from scratch. The ACCDT files are saved in a compressed archive of XML and text files.
;[http://books.google.pl/books?id=DDSi1knvVNcC&lpg=PA35&ots=lDRrbW7mYi&dq=accdt%20files&pg=PA35#v=onepage&q&f=false The Rational Guide to Microsoft Office Access 2007 Templates]:A complete book.
;[http://msdn.microsoft.com/en-us/library/dd920385(v=office.12).aspx Access Template File Format]:Official specs
;[http://www.axisbase.com Axisbase]:A .NET database system is comparable to other personal/office database tools like Filemaker and Microsoft Access, and it is also a database server like MySQL or Microsoft SQL Server. Many nice ideas, built as ''alternative''.
;[http://www.xtuple.org/docs/openrpt OpenRPT]:A report writer, code that was forked as a base of KoReports used in Kexi Reports (now the KReport framework).
;[https://www.devexpress.com/products/net/reporting/ The XtraReports Suite]:A multi-platform banded reporting library for WinForms, ASP.NET, MVC, WPF and Silverlight.
;[http://www.xtuple.org/node/270 MetaSQL]:Part of OpenRPT [https://github.com/xtuple/openrpt/tree/master/MetaSQL], a scripting language developed by xTuple for use by the report writer. The language is designed to handle dynamic database queries. Don't confuse with Oracle/PeopleSoft's solution (see below).
;[http://peoplesoft.wikidot.com/meta-sql PeopleSoft Meta-SQL]:"One of the most useful development shortcuts in PeopleSoft".
;[http://www.eyedb.org EyeDB]:An Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification. [http://www.eyedb.org/wp-content/uploads/documentation/manual/html/CplusplusBinding/node4.html Schema-Oriented Generated C++ API] is interesting.
;[http://codesynthesis.com/products/odb ODB]:An  object-relational mapping (ORM) system for the C++ language. It allows an application developer to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. '''There's also Qt support.'''
;[http://www.lytecube.com/lyterad LyteRAD]:A simple desktop database and apps creator, Java-based. Contains wizards.
;[https://github.com/timabell/msaccess-vcs-integration MS Access VCS Integration]:Synchronize your Microsoft Access Database definition with a version control system; BSD, '''reuse for Kexi MS Access integration...'''. See also [https://github.com/toddmowen/decompose-msaccess Decompose MSAccess (abandoned)].
;[https://airtable.com Airtable]: A web service that looks like a spreadsheet, but it's a relational database
;[https://github.com/paulftw/hiberlite Hiberlite ORM]:A C++ object-relational mapping for SQLite with API inspired by Boost.Serialization
;[http://www.heidisql.com HeidiSQL]: An open source admin tool for MySQL server, MS SQL, PostgreSQL, to browse, edit data, create and edit tables, views, procedures, triggers and scheduled events. Lost of nice GUIs.
;[https://github.com/KDAB/sqlate SQLate]:A Qt based library to interact with SQL databases that uses. It uses advanced C++ templates that helps to write SQL queries in a type safe way, checked at compile time. LGPL. Good to look at these templates for KDb ideas ;) Ping KDAB!


==Misc==
==Misc==
Line 54: Line 191:
**[http://kexi-project.org/wiki/wikiview/[email protected] Related & interesting external documents]
**[http://kexi-project.org/wiki/wikiview/[email protected] Related & interesting external documents]
**[http://kexi-project.org/wiki/wikiview/index.php@Related%20news.html Related news & articles]
**[http://kexi-project.org/wiki/wikiview/index.php@Related%20news.html Related news & articles]
***[http://www.crn.com/reviews/applications-os/205900500/review-fending-off-office-killers.htm Review in CRN (2008)]
***[http://www.pcworld.com/downloads/file/fid,70235-order,1-page,1/description.html "Kexi is still a database that fills a deep hole." -- pcworld.com]
***[http://www.linuxpromagazine.com/Issues/2012/138/Kexi-vs.-Glom Kexi and Glom – lean database tools compared] (Linux Magazine, May 2012)
***[http://directory.fsf.org/wiki/Kexi Kexi @ Free Software Directory]
**[http://kexi-project.org/wiki/wikiview/[email protected] Related pages]
**[http://kexi-project.org/wiki/wikiview/[email protected] Related pages]
*[http://www.slideshare.net/pearlbear/open-source-databases-webinar-presentation "Open Source Databases" presentation]: "No proprietary options on Linux – OpenOffice.org Base or Kexi are your best bets."
*[http://web.archive.org/web/19990902232257/http://support.microsoft.com/support/kb/articles/q174/4/96.asp MS strongly recommends not to use MSA on Web Server. It says that when multiple, concurrent users make requests of a Microsoft Access database, unpredictable results may occur.]
*[http://doc.trolltech.com/qq/qq26-adaptivecoloring.html Adaptive Coloring for Syntax Highlighting]
*[http://tpostgres.org/se tPostgres] extends core PostgreSQL with Sybase & SQL Server compatibility
*Generating [http://wiki.tcl.tk/21708 SQL Syntax Diagrams]
*[https://datawrapper.de/ Datawrapper], an open source tool helping anyone to create simple, correct and embeddable charts in minutes
*[http://raw.densitydesign.org RAW] is an open web tool for creating custom vector-based visualizations on top of the d3.js library. Primarily conceived as a tool for designers and vis geeks, RAW aims at providing a missing link between spreadsheet applications and vector graphics editors. '''New data visualization ideas/integration for Kexi?'''
*[http://d3js.org D3.js] is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. '''New data visualization ideas for Kexi?'''
*[https://en.wikipedia.org/wiki/SPSS SPSS] is a software package used for statistical analysis, it uses popular format. Kexi could support it.
*[https://zint.github.io zint] is a barcode generator and library, GPL3 (note - using it in a non-GPL code only via separate process). There's also a zint-qt GUI lib.
*[https://wiki.documentfoundation.org/ReportingToolset#Data Sample data sets]
==Blog topics==
*TODO: KDb conveniently escapes string for you thanks to prepared statements or C++ overloaded operators. See how hard is this in libgda: [http://www.murrayc.com/blog/permalink/2011/11/14/glom-avoiding-sql-injection/] [http://git.gnome.org/browse/glom/commit/?id=1950fa892b04fca1e8ffe7c364df9db3477affb0].
==Books==
*[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.8.2464&rep=rep1&type=pdf Documenting Software Architecture (Book)]
*[http://en.wikibooks.org/wiki/JET_Database JET Database] at wikibooks

Latest revision as of 21:21, 17 May 2023

This page documents ideas, links to competition and competing approaches.

noframe
noframe
 
TODO
Review this content for relevance and accuracy
Linq++
A simple experimental implementation of a LINQ-like query language for C++ containers.
What users hate and what like about MSA 2k7
LoXiM
An experimental, an object oriented, semistructured Database Management System.
JotForm
web-based forms, compare to kexi web forms...
Quick Reference Guides to Popular Software
good idea for Calligra apps
Kexi commit RSS
Customize here
Qt Property Browser
Qt Solution similar to our KoProperty2. But at the time of writing the former we did not have access to LGPLed Qt Property Browser.
Grantlee
Open Source string template system based on the Django template system from the Django project
uSQLite
A network wrapper for SQLite
mod_sqlite
An Apache 2.0 module which provides access to SQLite databases over HTTP. SQLite required that clients of the database be on the same machine as the SQLite database itself. mod_sqlite allows you to access your SQLite databases over a network.
Tanit
A set of Oracle to Kopi (a Java based framework) migration tools providing automatic translation of your Oracle PL/SQL, Forms and Reports applications.
TOra
An open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle, MySQL, Postgres, and ODBC.
SchemaSpy
A Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format.
MDB Tools
A library for accessing Microsoft Access .mdb files
MDB Doc
An add-in for Microsoft Access 2000, XP, 2003, 2007 and 2010 to automate the creation of database documentation in XHTML format. An older version (1.40) supports Access 97. Definitely a more reliable way of importing MDB/ACCDB to Kexi (planned this approach years ago). Extra idea is to add web service that accepts the Access files online.
qooxdoo
(pronounced ['ku:ksdu:]) is a framework for creating desktop-style web applications (rich internet applications, RIAs) for desktop and mobile clients; idea: use it for the next generation Kexi WebForms.
Saint
A suite of tools to assist in the workflow for doing bibliometric/ scientometric research, that is, research into the workings of the science system itself based on data on publications, patents and so on. Qt Ambassador link, by André Somers, adds DDL and more on top of QtSQL, connects with MySQL and MSA (the latter with MS ADO); jstaniek met André at QtCS 2011; see also QtSQL discussions at Qt5-feedback

Ideas

  • Forms, Reports
    • Widget palette for Forms & Reports: Xcode does it similarly to our plans [6] [7]
    • Idea: display more than one form/report on the same sheet [8]; having zoom enabled would help to navigate
    • Idea: display help box for form widgets/report elements [9] [10]
    • Idea: move "Create" tab to toolbox [11]
    • Add means for styling forms using the Qt CSS
  • Reuse Spatialite, Sqlite GIS extension
  • Consider using Mapnik, a mapping toolkit for desktop- and server-based map rendering, written in C++ (instead of Marble).
  • BOND uses database comments to store information about casual relationships
    • it's good idea to have some use/reuse of db comments in Kexi but it's not clear if it's safe to use them for metadata since users would already depend on comments for other purposes; so BOND usage of comments is a bit hacky
    • it's good idea to have casual (weak) relationships, it's compatible with how KDb is going to deliver relationships (i.e. both strong and casual)
  • KoolGrid - web grids
  • Explore topic of Faceted search, related to "Query by example".
  • Google Cloud SQL is web service that allows you to create, configure, and use relational databases with your App Engine applications.
  • Kexi could propose to disable or uninsatll the least used plugins, see how Thunderbird does this [12].
  • Add integration to the http://www.taskjuggler.org and Plan
  • Add integration to the Kanboard. It's based on SQLite so would be interesting. And we use it within KDE at https://todo.kde.org.
  • Add integration with Percona Toolkit for MySQL
  • Use jackcess instead of mdbtools. That would add java dependency but only for the driver. They beat mdbtools [13]. And are 5 times faster than original MSA. They really support many details [14]
    • Later someone would port it back to C++
  • Grouping columns of Table View as in http://stratusbase.com/demo [15]
  • SQL Formatter - many options/ideas for SQL formatting/prettify, can be applied to Kexi's SQL editor (and later: documentator)

Kexi-based bugzilla client

Make Kexi useful as GUI for KDE Bugzilla. Reason: to eat our own dog food in Calligra. Use bugzilla's webservices for this. Probably separate plugin could be developed. Online/offline operations with synchronization. (discussed with Inge who likes the idea)

See also:

Use Fossil DVCS to handle versioning in Kexi file db

Fossil SQLite-based DVCS, so fits nicely to Kexi needs. It lacks crazy ideas of git, stability is the goal.

Test Data and Test Data Generators

Optimizing

  • Options for SQLite speedup, could be offered via Kexi
  • Vitesse Data - compiling query into native code using LLVM. The code is optimized to move tremendous amount of data intra-CPU and to run efficiently on modern superscalar CPU.

Scripting

  • public scripting apis should be appealing to users; make them simple, e.g. like this [17]
  • javascript db APIs ideas for node.js sql-vs-nosql-which-is-better
  • IPython provides a rich toolkit to help you make the most out of using Python, with powerful Python shells (terminal and Qt-based), etc. Idea: support similar interactive shell for Kexi projects.
  • sqlite3 Node.js module: Asynchronous, non-blocking SQLite3 bindings

Data sharing

.kexi files encryption

  • Add encryption option using the SQLCipher. Kexi should ask for password on opening is needed. Integration with KDE Wallet is suggested. There may be others but this is the only known, reasonable open source option. Extra TODO: evaluate possibility of encrypting only selected tables.

DB Connection proxy/pool/relay/load balance

  • With SQL Relay, you can speed up database-driven web-based applications, enhance the scalability of database-driven web-based applications, distribute access to replicated databases, throttle database access, access databases from unsupported platforms and migrate applications from one database to another.

Schema Analyzer

  • SchemaSpy is a tool that analyzes the meta-data of a schema in a database and generates a visual representation of it in a browser-displayable format.
  • sqlite_anlyzer - Idea: use it with Kexi so users can analyse the project

GUI Layout

  • From: [18]:
    • Can record editing in Kexi be like this? Can the look / feel be pluging-based? [19]
      rsz_3032775-slide-wikipedia-concept-1-1024x685.jpg
    • Can the browsing in Kexi be like this? [20]
      rsz_3032775-slide-wikipedia-concept-4-1024x685.jpg

Localization

Knowledge

Competition

Microsoft Jet Database Engine Programmer's Guide
useful when working with the MDB driver
Ribbon Designer
what's new in 'the other' GUI impl.
Theme Builder
It would be far easier to implement ODF replacement, since unlike MSOOXML, ODF shares more styles with the same XML markup across apps. For Kexi Forms and Reports themes is a TODO as well.
Developing Access 2007 Solutions with Native C or C++
MSA 2k10 gets a kind of triggers
Netbeans GUI looks similar to Kexi 2 GUI in some aspects
Total Access Statistics 2010 for MSA 2010
Beyond generic databases...
Qtitan DataGrid
Ideas for grouping, totals and filtering
Genero Report Writer
Reporting tool, TODO: perform research :)
CuteReport
A report solution based on Qt (dual-licensed).
eXaro
A free report engine similar with Jasper or Crystal Reports, embeddable in Qt applications. (inactive since 2010)
KReporter
Integrated reporting tools for SugarCRM. Filling the gap in SugarCRM. GPL core + commercial plugins.
Zoho Creator
Like MSA Online: https://www.zoho.com/creator, https://www.zoho.com/creator/migrate-msaccess-database.html
Office 2010 menu to ribbon reference workbooks
(xlsx files)
Ways to use Access data in Excel
Similar to plans of Kexi/Tables integration
FileMaker's docs
FileMaker Go - tablet app
Lotus Approach
Alpha Five
OnlineGlom
Simple Visual Database Creator
Let's look at its simplicity
MSO 2k10 branding - the modern menu is close already
firefox sqlite manager
Limbas
A database management system for creating web-based applications
Dabo
A 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. MIT-licensed.
HTML Smile widgets
Ideas for implementation of data widgets
Pentaho Business Analytics
Includes business intelligence, data integration and data mining capabilities
ADO.NET Entity Framework (EF)
An object-relational mapping (ORM) framework for the .NET Framework
Caspio Online Database
Allows to create online databases and complete business applications without writing code, using an app-builder.
gLabels
A program for creating labels and business cards for GNOME. Idea: make Kexi reports 100% competitive to this use case. To do so, include plugin with predefined templates and an Assistant.
Access2Base
An OpenOffice/LibreOffice Basic library of macros for (business or personal) application developers and advanced users. The provided macros implement a number of functionalities - directly inspired by MS Access.
dbForge Studio for MySQL
Rich GUI-based db management app. Free Express version available.
Solutions for taking MSA to the cloud
Microsoft Access Databases Online
GOM
A DataMapper for GObject. See also SQLHeavy below.
SQLHeavy
A wrapper on top of SQLite with a GObject-based interface, providing APIs for C and Vala, GObject Introspection support, and additional functionality not present in SQLite.
Camelot
Provides components for building business applications on top of Python, SQLAlchemy and Qt. Inspired by the Django admin interface. Dually licensed (GPL/Commercial).
PouchDB
"was written to help web developers build applications that work offline as well as they do online. Applications save data locally, so the user can use all the features of an app even when they're offline. Plus, the data is synchronized between clients, so the user has up-to-date data wherever they go."
CouchDB
"is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. [...] A CouchDB server hosts named databases, which store documents. Each document is uniquely named in the database, and CouchDB provides a RESTful HTTP API for reading and updating (add, edit, delete) database documents."
Xojo
Create native cross-platform desktop, web and web-mobile apps -- ultimately similar to Kexi
Lianja App Builder
Create business Apps for Desktop, Cloud and Mobile devices on Windows, Linux and OS X using NoCode, Visual FoxPro, Python, PHP, and/or HTML5 JavaScript.
Submitting Access Database Templates to Office Online
The ACCDT template files that are utilized by Microsoft Access allow a user to create database files with the same formatting without the need to re-create each individual file from scratch. The ACCDT files are saved in a compressed archive of XML and text files.
The Rational Guide to Microsoft Office Access 2007 Templates
A complete book.
Access Template File Format
Official specs
Axisbase
A .NET database system is comparable to other personal/office database tools like Filemaker and Microsoft Access, and it is also a database server like MySQL or Microsoft SQL Server. Many nice ideas, built as alternative.
OpenRPT
A report writer, code that was forked as a base of KoReports used in Kexi Reports (now the KReport framework).
The XtraReports Suite
A multi-platform banded reporting library for WinForms, ASP.NET, MVC, WPF and Silverlight.
MetaSQL
Part of OpenRPT [21], a scripting language developed by xTuple for use by the report writer. The language is designed to handle dynamic database queries. Don't confuse with Oracle/PeopleSoft's solution (see below).
PeopleSoft Meta-SQL
"One of the most useful development shortcuts in PeopleSoft".
EyeDB
An Object Oriented Database Management System (OODBMS) based on the ODMG 3 specification. Schema-Oriented Generated C++ API is interesting.
ODB
An object-relational mapping (ORM) system for the C++ language. It allows an application developer to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. There's also Qt support.
LyteRAD
A simple desktop database and apps creator, Java-based. Contains wizards.
MS Access VCS Integration
Synchronize your Microsoft Access Database definition with a version control system; BSD, reuse for Kexi MS Access integration.... See also Decompose MSAccess (abandoned).
Airtable
A web service that looks like a spreadsheet, but it's a relational database
Hiberlite ORM
A C++ object-relational mapping for SQLite with API inspired by Boost.Serialization
HeidiSQL
An open source admin tool for MySQL server, MS SQL, PostgreSQL, to browse, edit data, create and edit tables, views, procedures, triggers and scheduled events. Lost of nice GUIs.
SQLate
A Qt based library to interact with SQL databases that uses. It uses advanced C++ templates that helps to write SQL queries in a type safe way, checked at compile time. LGPL. Good to look at these templates for KDb ideas ;) Ping KDAB!

Misc

Blog topics

  • TODO: KDb conveniently escapes string for you thanks to prepared statements or C++ overloaded operators. See how hard is this in libgda: [22] [23].

Books