Re: [libreoffice-design] Re: behavior of new functions XLOOKUP and XMATCH

2024-05-15 Thread Wol

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?

2022-12-11 Thread Wol

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

2022-02-04 Thread Wol

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

2022-01-17 Thread Wol

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

2019-12-10 Thread Wol

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

2019-02-07 Thread Wol

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

2016-03-03 Thread Wol
 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'

2014-09-29 Thread Wol

___
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'

2014-09-29 Thread Wol

___
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

2013-04-29 Thread Wol
 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