Hi Paul.

Compact view is great. With it I can see sixteen topics on one screen instead of four.

What I would like to see is links instead of ajax buttons.

For example, I want to bookmark compact view of unanswered posts.

I've tried linking to https://community.intersystems.com/?filter=unanswered, but that is just a JSON content.

Thank you Jose-Tomas.

As I understand (please see last three paragraphs of "Cyrillic4, Cyrillic3, and umlauts" section), Spanish language has some specific collation rules and satisfying these rules require more general (and complex) algorithm than sorting two strings based on individual character codes. That is why Spanish collations are slower then Caché Standard.
https://en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conve...

The more processing you application does besides looping with $Order/$Query and inserting data into global the less impact has collation performance. Running ^%SYS.MONLBL with globals/locals with different collation settings should give you more accurate performance data.

As far as I know it is not possible to switch it on.

You might find function DESCENDANTS (http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...) helpful.

For time dimension, all members of the level are generated and available to queries that show empty. This means

SELECT DESCENDANTS([DateOfSale].[YearSold].&[2015],DateOfSale.DaySold) ON 1 FROM HoleFoods

will show all days from 2015 on rows, whether there are facts recorded for those days or not.

SQL Adapter does some metadata caching.

See, for example, doc for method EnsLib.SQL.Common:ExecuteProcedure
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...

"Appending a '#' to the pIO argument (or passing only '#') prevents the adapter from using cached DescribeColumns() results for the procedure call output, forcing a fresh call to ODBC DescribeColumns() every time the stored procedure is invoked. This can be necessary if the procedure is capable of returning different sequences of result types from consecutive invocations"

I'm not sure if this is what happened in this case, though.

By default %ToJSON method prints empty properties.

If you pass pFormat without "e" flags (that is passed by default), then empty properties are skipped:

USER>set p = ##class(%ZEN.proxyObject).%New()

USER>set p.a = 1

USER>set p.b = 2

USER>do p.%ToJSON()
{
        "a":1,
        "b":2
}
USER>set p.b = ""

USER>do p.%ToJSON()
{
        "a":1,
        "b":""
}
USER>do p.%ToJSON(,"alotw")
{
        "a":1
}

I encourage you to use Caché 2016.1 with native JSON support. Don't start with %ZEN.proxyObject.
See great article by Stefan Wittman about JSON support in 2016.1:
https://community.intersystems.com/post/introducing-new-json-capabilitie...