Re: [libreoffice-design] Re: behavior of new functions XLOOKUP and XMATCH
On 15/05/2024 08:06, Heiko Tietze wrote: If you want, we can run a poll what users prefer. If you can't understand what's wanted - DON'T GUESS. Especially don't guess and hide that fact from your users! An error of "#value" or similar seems a pretty good option ... Cheers, Wol
Re: What's the license of external library?
On 09/12/2022 11:23, taichi wrote: OK, so if it is a patch I added, I can commit these patches to upstream. I have one last question. If those patches are merged into upstream, will it affect the upstream license? Copyright law says that if it is your work (unless you have a contract with eg your employer that says otherwise) you are the copyright OWNER. As such, you are the person who GIVES the licence, who MAKES the conditions, and (within reason) you can do anything you like. LibreOffice makes it a condition of ACCEPTING patches, that you give them the code under the terms of the MPL (or something compatible), any other upstream will make similar conditions - they won't ACCEPT it unless you give it to them on their terms. The thing to remember is that if you wrote it - if it's your code - all the normal rules don't apply because you're on the *other* side of the contract. If you're writing much stuff you really need to have a solid grasp of the basics. Cheers, Wol
Re: Unable to compile LibreOffice 7.3. Stuck at harfbuzz error messages
On 04/02/2022 21:03, Caolán McNamara wrote: And a lot more error messages related to harfbuzz. Does anybody know what’s going on and how to solve this issue?(Yes, libharfbuzz-dev is installed, as always). What we'd need to see is the configure/autogen options passed here. Best is probably the output of config.log to see what was passed in and what was the configured result. While it's probably not related to your problem, I run gentoo, and harfbuzz/freetype/32-bit is rather a nightmare to compile, as it gets stuck in a circular dependency. Dunno whether that'll give you a genuine clue or lead you up the garden path, I'll let you decide :-) Cheers, Wol
Re: tdf#140286 - CALC formula =INFO("OSVERSION") gives wrong output
On 14/01/2022 22:24, Wols Lists wrote: On 14/01/2022 21:26, Chris Sherlock wrote: I will work on a patch for Linux that parses /etc/os-release with a fallback to just the kernel version if that is not available (virtually all desktop systems use systemd now). Are you sure? Okay, it's mostly the mad hold-outs, but Devuan, funtoo, gentoo, that's three distros off the top of my head that don't default to systemd. And they're the ones (gentoo especially) that devs might well be running. I think a sane set of options from uname is much better. That's pretty much guaranteed to be universal, I believe, and you could even make the options a user-specified matter should they be mad enough to want to. Just looked at /etc/os-release (as you may have guessed my gentoo system does run systemd), and the ONLY useful information you'll get from it is "Gentoo Linux". So for those people who want more than just the distro name, os-release is not enough. anthony@thewolery ~/gitstuff/ScarletDME $ cat /etc/os-release NAME=Gentoo ID=gentoo PRETTY_NAME="Gentoo/Linux" ANSI_COLOR="1;32" HOME_URL="https://www.gentoo.org/; SUPPORT_URL="https://www.gentoo.org/support/; BUG_REPORT_URL="https://bugs.gentoo.org/; anthony@thewolery ~/gitstuff/ScarletDME $ Cheers, Wol
Re: Fw: benchmark of Excel, Calc, Google Docs
On 10/12/2019 17:30, Aditya Parameswaran wrote: Wols, Thanks for sharing your concerns, replete with quotes from Einstein :-) ! I believe I share those concerns... but there are of course some liberties we can take as an academic group that you folks managing a popular spreadsheet tool cannot take (e.g., doing a proof of concept as opposed to a robust implementation.) From a research/academic standpoint it is valuable to note that something is possible, even if the solution is not ideal given other pragmatic considerations. BTW, I don't believe that anything we're doing *requires* a relational database -- a NoSQL setup would work just fine. Bear in mind I'm not a regular developer. My name is on the list of credits, and I follow the mailing list, but I'm more one of those annoying people who moans about it. However, as they say, "you want customers who moan, because they're the people who want your product to improve. It's the people who leave without moaning that you should be concerned about". I'd be happy to discuss more. Our goal is to understand the stumbling blocks in translating our work into spreadsheet tools such as Calc and see how we can best help with what we've learned. I'm more in to proving that relational databases are basically rubbish (as is the mathematical justification behind them) :-) That said, the maths itself is good, provided you don't use it to build a real-world database engine! Okay, to demolish RDBMSs :-) I don't know which rule it is (no 1?) that says "Data comes in rows and columns". So your first job in building your relational application is to call in a data analyst, to whom you give the job of bashing square pegs in to round holes... To me, data is what the user gives you. metadata is what the analyst deduces about the data. AND YOU DON'T MIX THE TWO!!! Given that an RDBMS stores data as sets, and a lot of data comes as lists (which contain a lot of metadata) the only way to store a list in an RDBMS is to muddle data and metadata. Put mathematically, if you store a list when you want a set, you can just throw away the information you don't want (or need). However, once you've thrown that information away (ie the order of the items) so you can store your list in a set-based RDBMS, *you can't get it back*! My database of choice is Pick, where the basic unit of storage is the object, not the row. And because an object is an n-dimensional array, rather than the 1-dimensional row, I can store an entire relational view in it. (Which is what you should do, relational maths is okay, RDBMSs aren't :-) And because I have an n-dimensional array, I can store lists of lists :-) The problem I have at this point is that I'm now discussing the merit of databases. I'm not actually helping you "translate your work into spreadsheet tools". It's easy for me to extract a two-dimensional table from Pick and, truth be told, I can probably extract it faster (including massaging it into shape) from Pick than selecting it from an RDBMS! But unless we can find out some way of displaying a 3- or 4-dimensional array (a relational view) in a spreadsheet that isn't horribly confusing, I don't really know what to suggest other than to use a SQL query as the layer between the database and the spreadsheet. The database may be n-dimensional, but if your spreadsheet only has two, you might as well use a 2-dimensional query and let the database handle the complexity. It's not that hard. (I have - personally - managed a ram-starved 32-user Pick system that provided perfectly acceptable user response times despite thrashing like mad...) (Oh, and as for pushing calculation into the database, Pick has had virtual fields for ages. I can define a field as being a calculation eg VAT = PRICE * 20%, so I can "store price, retrieve vat" and it's just automagical :-) (I get the impression most users are unaware of similar capabilities in RDBMSs) Cheers, Wol Cheers, Aditya On Mon, Dec 9, 2019 at 3:37 PM Wols Lists <mailto:antli...@youngman.org.uk>> wrote: On 09/12/19 19:14, Aditya Parameswaran wrote: > The idea of converting to SQL queries is an interesting one > but I find > it very hard to believe it would provide any performance advantage at > the same memory footprint. Furthermore - I'd be interested to know how > you do other spreadsheet operations: row & column insertion, addressing, > and dependency work on top of a SQL database with any efficiency. > > > We started by having the relational database be a simple persistent > storage layer, when coupled with an index to retrieve data by position, > can allow us to scroll through large datasets of billions of rows at > ease. We developed a new positional index to handle insertio
Re: Principle of least surprise
On 06/02/2019 22:33, Piet van Oostrum wrote: Wols Lists wrote: > On 06/02/19 16:08, Piet van Oostrum wrote: > > Wol's lists writes: > > > >> Dunno whether this is a bug or a design decision or what, but it's a > >> pretty nasty breach of the principle ... > >> > >> Why, when I click on a cell, does calc NOT select the clicked cell? > >> > >> Okay, I know the answer - it's a hyperlink. BUT. > >> > >> I was editing a csv, I've got a column of email addresses, and some of > >> them have been hyperlinked, some of them haven't. I don't want > >> hyperlinks, I didn't ask for hyperlinks, and I can't see any way of > >> easily removing them! > >> > > Format > Clear Direct Formatting (Ctrl-M on my Mac). > > > But clicking on the cell doesn't select it so M doesn't work!:-) > You could click in a nearby cell and move to it with the arrows. Sorry, I don't know whether it's my poor English or that you aren't a native speaker, but you seem to be completely missing my main point. THE NEED FOR A WORK-AROUND INDICATES THE EXISTENCE OF A MAJOR UI FUCK-UP! Clicking in a cell to select it is such a basic piece of spreadsheet functionality, that for it to not work is a major problem. Things like that should work ONE HUNDRED percent of the time, not ninety-nine percent. Any safety guy will tell you that something that nearly always works is actually far more dangerous than something that keeps going wrong. Oh - and I've just played with the same spreadsheet in Excel. That fucks it up too, just not quite so dangerously. It selects the cell, which is good, but launches the link at the same time. So at least you get a clear visual surprise, unlike Calc which just silently fails to work as expected ... Cheers, Wol ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: configure.ac
configure.ac |7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) New commits: commit 509bc5e5cf8129d07b5d8cf22d4bfe9c968303c6 Author: Wol <anth...@youngman.org.uk> Date: Tue Mar 1 21:08:03 2016 + Fix java home detection on gentoo On gentoo (and some other distros?) /usr/bin/javac points at a script that chooses the version of java to run. So when configure resolves the link it doesn't end up where it expects to be. This mod detects this situation, clears java_home, and lets it fall through to the next test which completes successfully. Change-Id: I7400ac06485475203abd584f60aed7eca81c7f90 Reviewed-on: https://gerrit.libreoffice.org/22847 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noelgran...@gmail.com> diff --git a/configure.ac b/configure.ac index b6c14a0..32ecfcc 100644 --- a/configure.ac +++ b/configure.ac @@ -7117,7 +7117,7 @@ if test "$ENABLE_JAVA" != ""; then add_warning "JAVA_HOME is set to /usr - this is very likely to be incorrect" add_warning "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home" fi -dnl now that we have the path to the real javac, make a JAVA_HOME out of it.. +dnl now that we probably have the path to the real javac, make a JAVA_HOME out of it.. if test "$JAVA_HOME" != "/usr"; then if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then dnl Leopard returns a non-suitable path with readlink - points to "Current" only @@ -7126,6 +7126,11 @@ if test "$ENABLE_JAVA" != ""; then JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,) else JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,) +dnl check that we have a directory as certain distros eg gentoo substitute javac for a script +dnl that checks which version to run +if test -f "$JAVA_HOME"; then +JAVA_HOME=""; # set JAVA_HOME to null if it's a file +fi fi fi fi ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/15/3615/1'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'refs/changes/16/3616/1'
___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: 2 commits - connectivity/source sw/source
connectivity/source/drivers/postgresql/pq_connection.cxx | 59 ++- sw/source/core/text/inftxt.cxx |8 +- sw/source/core/text/inftxt.hxx |4 - sw/source/core/text/itrcrsr.cxx |4 - sw/source/core/text/porglue.cxx |8 +- sw/source/core/text/txttab.cxx |2 6 files changed, 38 insertions(+), 47 deletions(-) New commits: commit 8ad743ca8d45e094e433627cf0cf70d11a56084e Author: Wol anth...@youngman.org.uk Date: Tue Apr 16 13:30:30 2013 +0100 pgsql-sdbc: conninfo keywords as static table instead of series of else if New keywords can now simply be added to a static array rather than adding a new else if blocks for each keyword. Change-Id: Ib581b3e834a57e0dfa9d139bcb4ae7a0a52a5472 diff --git a/connectivity/source/drivers/postgresql/pq_connection.cxx b/connectivity/source/drivers/postgresql/pq_connection.cxx index 4bc15e4..4f830a1 100644 --- a/connectivity/source/drivers/postgresql/pq_connection.cxx +++ b/connectivity/source/drivers/postgresql/pq_connection.cxx @@ -482,44 +482,30 @@ static void properties2arrays( const Sequence PropertyValue args, // I.e. they are prefiltered to have only relevant ones? // Else, at least support all keywords from // http://www.postgresql.org/docs/9.0/interactive/libpq-connect.html + +static const char* keyword_list[] = { +password, +user, +port, +dbname, +connect_timeout, +options, +requiressl +}; + for( int i = 0; i args.getLength() ; ++i ) { -bool append = true; -// TODO: rewrite this as a static table of keywords, and a loop over these keywords. -if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( password ) ) ) -{ -keywords.push_back( password, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( user ) ) ) -{ -keywords.push_back( user, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( port ) ) ) -{ -keywords.push_back( port, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( dbname ) ) ) -{ -keywords.push_back( dbname, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( connect_timeout ) ) ) -{ -keywords.push_back( connect_timeout, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( options ) ) ) -{ -keywords.push_back( options, SAL_NO_ACQUIRE ); -} -else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( requiressl ) ) ) +bool append = false; +for( size_t j = 0; j SAL_N_ELEMENTS( keyword_list ); j++) { -keywords.push_back( requiressl, SAL_NO_ACQUIRE ); -} -else -{ -append = false; -// ignore for now -OSL_TRACE(sdbc-postgresql: unknown argument '%s', OUStringToOString( args[i].Name, RTL_TEXTENCODING_UTF8 ).getStr() ); +if( args[i].Name.equalsIgnoreAsciiCaseAscii( keyword_list[j] )) +{ +keywords.push_back( keyword_list[j], SAL_NO_ACQUIRE ); +append = true; +break; +} } + if( append ) { OUString value; @@ -527,6 +513,11 @@ static void properties2arrays( const Sequence PropertyValue args, char *v = strdup(OUStringToOString(value, enc).getStr()); values.push_back ( v ); } +else +{ +// ignore for now +OSL_TRACE(sdbc-postgresql: unknown argument '%s', OUStringToOString( args[i].Name, RTL_TEXTENCODING_UTF8 ).getStr() ); +} } } commit 13a0477250793d1ab06329b244f26fffbebb0bab Author: Miklos Vajna vmik...@suse.cz Date: Mon Apr 29 10:02:24 2013 +0200 SwTxtSizeInfo ctor: take a pointer, not a reference The ctor later will turn that reference to a pointer anyway, but the old code made it easy to pass a String, get it implicitly converted to OUString, and then we took the address of the temporary OUString, later resulting in accessing already freed memory. Instead, take an OUString pointer, and then the compiler will warn about a String* - OUString* conversion. Adapt one remaining caller accordingly. Change-Id: I4084dea1d245f0c8919d6afe47c5f391729f6eaf diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx index 5adc1c5..b1ac0f2 100644 --- a/sw/source/core/text/inftxt.cxx +++ b/sw/source/core/text