16:00:23 <rainemak> #startmeeting Sailfish OS, open source, collaboration -- 3rd July 2025 16:00:23 <sailbot> Meeting started Thu Jul 3 16:00:23 2025 UTC. The chair is rainemak. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:23 <sailbot> Useful Commands: #action #agreed #help #info #idea #link #topic. 16:00:36 <rainemak> #info Meeting information and agenda can be found here: 16:00:36 <rainemak> #link https://forum.sailfishos.org/t/community-meeting-on-3rd-july-2025-new-time-slot/23565 16:00:36 <rainemak> I am the meeting's chairperson today, and will be doing my best to keep time and order. Please respect the timings and bee-hive. 16:00:36 <rainemak> #topic Brief introduction (5 min). Please prefix your name/handle with #info 16:01:20 <AffeNull[m]> #info Affe Null, community 16:01:53 <jojomen> #info jojomen, community 16:02:13 <jojomen> good evening! 16:02:29 <rainemak> #info Raine Mäkeläinen, Jolla 16:02:55 <jojomen> Thanks for yesterday's event and for dealing with all the häslinki 16:03:20 <rainemak> at the end it was a great one 16:03:45 <rainemak> We have three topics today. 16:04:41 <nephros> #info nephros, community 16:04:46 <CLMA31[m]> #info CLMA31, community 16:04:47 <nephros> hello! 16:04:52 <rainemak> hello 16:04:57 <CLMA31[m]> Hello! 16:05:14 <rainemak> let's start with the first one 16:05:15 <rainemak> #topic [C2] System update: Very low backlight when prompted for encryption code (5 mins -- jojomen) 16:05:21 <rainemak> #link https://forum.sailfishos.org/t/c2-system-update-very-low-backlight-when-prompted-for-encryption-code/23528 16:05:37 <rainemak> #info <jojomen> On first boot into the update process, the keypad for entering 16:05:37 <rainemak> #info <jojomen> the passcode is barely visible since backlight is very low. 16:05:37 <rainemak> #info <jojomen> Second boot back into the updated system happens with reasonable 16:05:37 <rainemak> #info <jojomen> backlight level. Others have mentioned the same happening on 16:05:37 <rainemak> #info <jojomen> other devices and releases than the C2 with 5.0.0. 16:05:38 <rainemak> #info <jojomen> 16:05:40 <rainemak> #info <jojomen> @nephros commented: 16:05:42 <rainemak> #info <jojomen> I believe it’s common to see this when the device went down with 16:05:44 <rainemak> #info <jojomen> empty battery, probably because Power Saver Mode set the display 16:05:46 <rainemak> #info <jojomen> to low brightness, and that sticks. 16:05:48 <rainemak> #info <jojomen> 16:05:52 <rainemak> #info <jojomen> Q: Preparing for the next update, is there a way we could check 16:05:54 <rainemak> #info <jojomen> this theory? Like a file where this is persisted across boots 16:05:56 <rainemak> #info <jojomen> that one could look at, and maybe poke a little? Or anything #info <jojomen> else one could try to diagnose this problem? 16:05:59 <rainemak> #info <Jolla> There are different conditions that are affecting to the backlight 16:06:01 <rainemak> #info <Jolla> strength. One may have adaptive display dimming enabled (and als), 16:06:03 <rainemak> #info <Jolla> shorter display dimming time out or just manually adjusted lower 16:06:05 <rainemak> #info <Jolla> brightness to name few. 16:06:07 <rainemak> #info <Jolla> 16:06:09 <rainemak> #info <Jolla> You could also try to reset default values for mce. 16:06:11 <rainemak> #info <Jolla> > ssh to device 16:06:13 <rainemak> #info <Jolla> > devel-su mcetool --reset-settings 16:06:15 <rainemak> #info <Jolla> 16:06:17 <rainemak> #info <Jolla> Values that are adjusted via mce are persisted across boots. 16:06:42 <jojomen> ok, will have to look into those. 16:07:07 <jojomen> in my case, I definitely had a good level of background light when I started the update 16:07:17 <rainemak> I rebooted my device few times with different configuration values and didn't see dimmed unlock screen (the black one) 16:07:20 <jojomen> it was only on first reboot that backlight went way down 16:07:37 <nephros> Hm. Maybe the decryption key prompt screen should set a brightness always? Say, 80%? 16:07:53 <jojomen> sounds good? i think 16:08:15 <jojomen> except maybe when device is forgotten and linger on the encryption prompt, that could be bad 16:08:17 <rainemak> nephros, personally I don't like idea that software (even system sw) changes user configurations 16:08:30 <jojomen> otoh, wasnät that fixed by setting a timeout? 16:09:18 <rainemak> jojomen, you can also play with mcetool directly 16:09:24 <nephros> rainemak: true in general, but this is the first interactive UI after the device was (usually) off, so it's bound to not match the users environment... 16:09:32 <CLMA31[m]> Could it changes the user configurations only until let's say person unlock phone or something similar? 16:09:43 <jojomen> @rainemak, in my case the _impression_ is that the device sets a very low value. It doesn't respect the user setting... 16:10:25 <rainemak> it comes from mce-tools package 16:10:59 <jojomen> ok, mcetool it is :) will check and poke values the next time 16:11:29 <rainemak> nephros, what do you mean? mce is up and running and it controls the display dimming etc 16:11:44 <jojomen> problem is, of course, knowing if I have fixed the problem or have just been lucky - at least one update went well = good backlight 16:12:09 <rainemak> jojomen, you mean that it only happened after an update 16:12:28 <jojomen> also, in the forum thread it seemed like people have experienced this for a long time and with various devices 16:12:40 <rainemak> jojomen, now out of my head, I cannot recall whether there were some mce configuration related changes 16:12:57 <rainemak> point taken 16:13:17 <rainemak> This sounds like a covered topic 16:13:32 <jojomen> @rainemak, yes I have only seen it happen on update (1st reboot) on the C2. And only occasionally 16:13:48 <jojomen> yes, covered 16:13:54 <nephros> In my case, I think, it's actually power saving mode thats persisted, and that lowers the brightness on lock screen. 16:13:57 <rainemak> jojomen, let's keep an eye on it 16:14:09 <jojomen> will look into this on next update and revive topic as needed ;) 16:14:13 <nephros> ok 16:14:17 <rainemak> #topic ETA regarding Xperia 10V support (5 mins -- louisdk) 16:14:26 <rainemak> #info <louisdk> Is “full” Xperia 10V support in sight for SailfishOS 5.1 or do 16:14:26 <rainemak> #info <louisdk> you have any ETA in sight for it? 16:15:00 <rainemak> #info <Jolla> It sounds that you're seeking for an update for VoLTE, GPS, NFC, 16:15:00 <rainemak> #info <Jolla> sensors status. We are happy to report some progress on HIDL -> 16:15:00 <rainemak> #info <Jolla> AIDL changes. One remaining to fix is the VoLTE HIDL -> AIDL 16:15:00 <rainemak> #info <Jolla> changes. To be noted that AppSupport is already available for 16:15:00 <rainemak> #info <Jolla> Xperia 10 IV and 10 V. We have not yet branched 5.1 and branching 16:15:00 <rainemak> #info <Jolla> shall take place after summer vacation period. It's yet to be seen 16:15:02 <rainemak> #info <Jolla> whether we have VoLTE fixed by Sailfish OS 5.1 release. It should 16:15:04 <rainemak> #info <Jolla> not be an issue to have fixes integrated for 5.1 update release 16:15:06 <rainemak> #info <Jolla> after the first release. 16:15:19 <rainemak> #link https://forum.sailfishos.org/t/enabling-appsupport-for-sony-xperia-10-iv-and-10-v/22541 16:16:30 <rainemak> and the battery status reporting was fixed already earlier 16:18:01 <jojomen> good to hear that you are making progress 16:18:40 <jojomen> what implications do these HIDL -> AIDL changes have for the AAS level on other devices? 16:18:52 <nephros> See also: https://irclogs.sailfishos.org/logs/%23sailfishos-porters/2025/%23sailfishos-porters.2025-07-01.log.html 16:18:58 <rainemak> For AAS nothing 16:19:17 <jojomen> i.e. is that something that might benefit older, still supported devices? 16:19:39 <rainemak> #link https://irclogs.sailfishos.org/logs/%23sailfishos-porters/2025/%23sailfishos-porters.2025-07-01.log.html 16:19:39 <jojomen> ah, ok, on of the other androids in my phone :D 16:19:50 <jojomen> on -> one 16:20:40 <rainemak> In newer Android BSP versions more and more are AIDL interfaces 16:20:45 <jojomen> any potential benefit to devices that could be install over, or use binaries from, a newer android? 16:20:58 <rainemak> it doesn't mean that 16:22:21 <jojomen> ok 16:22:48 <rainemak> with a newer devices that has newer Android BSP version against which Sailfish adaptation is built... that process can be simpler as work has now been done in context of Xperia 10 IV and 10 V (at least partially). 16:23:09 <jojomen> nice! 16:24:07 <rainemak> future will tell... adaptation work takes always time still. 16:24:46 <rainemak> let's move on 16:24:46 <jojomen> yeah, phones seem more like embedded systems than "real computers"... 16:25:06 <rainemak> #topic Summary of announcements from the Community Meeting on 2nd July. (10 mins -- David Llewellyn-Jones/@flypig) 16:25:13 <rainemak> #info <flypig> After joining the meeting late I unfortunately missed the 16:25:13 <rainemak> #info <flypig> presentation at the start. The following discussion was really 16:25:13 <rainemak> #info <flypig> interesting and enjoyable to hear, but I’m keen to know what 16:25:13 <rainemak> #info <flypig> topics were covered during the presentation. Would it be possible 16:25:13 <rainemak> #info <flypig> to have a brief recap of the main announcements around Jolla, 16:25:14 <rainemak> #info <flypig> Sailfish OS, C2 and M2 from the meeting? 16:25:27 <rainemak> #link https://forum.sailfishos.org/t/jolla-community-meeting-live-stream-2nd-july-from-tampere/23493 16:25:39 <CLMA31[m]> Side question as AAS was mentioned: is it planned that Android version and API level will at some point catch up and use the latest available version? Is there timetable? 16:26:16 <rainemak> CLMA31[m], I don't have such time table 16:26:40 <rainemak> frankly I believe AAS is easily version or two versions behind 16:26:50 <rainemak> Let's have an open discussion here. 16:26:55 <rainemak> First of all, thank you for all attendees. Plevna worked perfectly as a venue and it was very nice to see and hear vivid and lively discussions. We should defenitely organize community events every now and then. 16:27:15 <Nico> Oh, summary sounds good! 16:27:29 <jojomen> walked by Plevna a couple of years ago, seemed like a nice enough place 16:27:36 <rainemak> We're working on a recording from the event. 16:27:41 <CLMA31[m]> Definitely! It was amazing opportunity to participate in person and it was great to see so many others :) 16:27:52 <Nico> rainemak, even better! 16:27:56 <flypig> I was really sad I couldn't attend... seeing Plevna brought back memories. 16:28:07 <jojomen> would have loved to be able to join in person 16:28:16 <CLMA31[m]> Hopefully these kind of event will be organized more often 16:28:24 <Nico> Yeah, I got stuck tearing up a ceiling and noticed the time only way too late 16:28:39 <rainemak> We said that it takes a day to prepare but it could well be that it slips to tomorrow 16:28:42 <Nico> CLMA31, there is always FOSDEM dinner 16:28:50 <CLMA31[m]> The hassle didn't bother at all with the cold beer in hand 16:28:58 <rainemak> CLMA31[m], I think we should offer more frequently 16:29:07 <Nico> I can wait for the recording until the weekend :) 16:29:26 <CLMA31[m]> FOSDEM is hosted somewhere in Europe if I am not mistaken? 16:29:38 <jojomen> i realize there's quite a bit of prep and adm time before and after, but a couple such events per year would be nice 16:29:51 <flypig> CLMA31[m]: Yes, Brussels. 16:30:07 <jojomen> CLMA31[m]: yes, Brussels early February each year 16:31:07 <jojomen> sorry, got to go, other things happening 16:31:10 <jojomen> thanks everyone! 16:31:16 <nephros> Attending remotely also worked fine enough (after a while). But many community members would prefer a different platform than Zoom (and Youtube) in the future. 16:31:23 <CLMA31[m]> <rainemak> "CLMA31, I don't have such time..." <- Thank you for the honesty! I understand that it is quite resource intensive trying to keep up with the latest releases. Only one aspect that would make the AAS even better. One release behind isn't that bad tho 16:32:14 <CLMA31[m]> I have never been in Brussels, have to take look of that! Thank you for the tip <3 16:32:53 <jojomen> i agree with nephros on that, at least I would like to see videos etc available on betterplatforms even if yt or zoom is necessary for the event 16:35:14 <rainemak> Super brief recap 16:35:14 <rainemak> - Antti discussed about route to Mind2 Beta & showed a demo 16:35:14 <rainemak> - A Sailfish mobile app will be created as an activity together with the community 16:35:14 <rainemak> - Open sourcing plan first steps - approval from the board 16:35:48 <rainemak> That Sailfish mobile app would be an app to access Mind2 16:36:39 <Nico> Ohhhh! 16:36:45 <Nico> Sounds all pretty exciting 16:36:52 <Nico> I really missed out! 16:36:55 <flypig> This is a great recap; thank you rainemak! 16:37:15 <rainemak> flypig, I guess this covers also this topic then 16:37:19 <flypig> I feel the same way Nico :) 16:37:28 <CLMA31[m]> One thing I don't remember hearing yesterday, will there also be app for Android/IOS? I assume that first app will be native SFOS 16:37:33 <Nico> It is a recap that makes me even more curious though :3 16:37:35 <flypig> rainemak, it does, thank you. 16:38:11 <nephros> I like the "accounts" thing on the Open-sourcing components list. Hopefully Nextcloud can be extended, and other libsocial things added. 16:38:15 <rainemak> Yeah, there's an electron based mobile app coming for multiple platforms 16:38:28 <nephros> I also have some ideas about Gallery. 16:38:31 <flypig> nephros, which list is that? 16:38:44 <nephros> flypig: it's in the presentation. 16:38:55 <flypig> Thanks nephros... I'll await the video! 16:38:59 <rainemak> let me sum up that as well 16:39:27 <nephros> I have this telegram link for now: https://t.me/c/1094603738/257325 16:39:41 <rainemak> Phase 1 - Q3/25 16:39:41 <rainemak> - Selected components to help device porting 16:39:41 <rainemak> - Device encryption components 16:39:41 <rainemak> - Accounts plug-ins, excluding Microsoft 365 16:39:41 <rainemak> - Device side MDM API 16:39:42 <rainemak> - Camera & Gallery apps 16:39:44 <rainemak> - The (in)famous Weather app 16:39:46 <rainemak> - Notes app 16:39:48 <rainemak> Phase 2 - Q4/25 and forward 16:39:52 <rainemak> - Based on phase 1, feedback and areas of interest & activity 16:40:03 <nephros> Ah yea, there is is. Thanks Raine! 16:40:19 <rainemak> The input from 1st phase is used for steering phase 2. Also interest and activity matters. 16:41:11 <flypig> Thanks again rainemak. So the message is: build on the open source, and that'll encourage you to open source even more? 16:41:24 <rainemak> nephros, and Weather has been requested and worked by community already 16:41:51 <flypig> Or maybe I should put it another way: the things that get the most interest will inform which other parts may be opened up. 16:42:06 <Nico> My dad always bugs me about the weather widget not working, maybe now I can fix that... 16:42:29 <rainemak> flypig, something like that and to be able selected the right components for the 2nd phase. Surely, we have already ideas of them 16:42:46 <rainemak> flypig, correct 16:42:54 <flypig> Got it; thanks rainemak! 16:43:10 <rainemak> let's continue this in general topic a bit later... if still needed. 16:43:11 <flypig> I agree with you nephros, the Accounts plug-in would be great to do some work with. I'm interested in the MDM part too. 16:43:34 <flypig> This is very exciting; thanks rainemak. 16:43:51 <rainemak> let's steal 5min more for this 16:43:57 <rainemak> 5mins 16:45:28 <nephros> About the Mind2 app: So I guess there will be some public API spec? 16:45:36 <rainemak> flypig, accounts plugins is fine one... also something that we could do together owncloud plugin or have owncloud as part of nextcloud plugin 16:45:57 <rainemak> nephros, yes, API is needed indeed 16:46:10 <flypig> rainemak, yes, plus nextcloud has so much functionality, it would be great to extend the plugin further. 16:46:27 <nephros> I have a "Show Github notifications on Event View" hack, but the acounts part was missing until now so I couldn't release it. 16:46:44 <rainemak> if I have understood it right nextcloud and owncloud are pretty similar 16:47:30 <flypig> Yes, at one point they were "identical" and I upgraded my owncloud instance to nextcloud, but that was a while ago and maybe they diverged since. 16:47:30 <nephros> nextcloud: in the core both just do DAV. But with the different apps come additional APIs. 16:47:50 <rainemak> also this camera and gallery combo and if you put that into context of advanced camera and camera api2 => let's built together a great camera app 16:48:13 <nephros> ... with image enhancement through Mind2! 16:48:15 <flypig> There's already plenty of expertise in the community for the camera app :) 16:48:28 <rainemak> nephros, :-) 16:48:30 <rainemak> flypig, indeed 16:48:30 <mal> about camera, the qt camera api is in some ways a bit limited so maybe we could consider a new wrapper api 16:48:56 <rainemak> mal, that could even simply the implementation in general 16:49:16 <mal> yes, probably would be easier to handle everything 16:49:22 <rainemak> those qt mobility like apis (APIs from that era) are not that good 16:49:28 <nephros> mal: choose whatever Pipewire needs to support cameras on SFOS! :) 16:49:37 <mal> and support different low level camera things like gst-droid vs libcamera 16:49:53 <AffeNull[m]> yes, it would be great if we could integrate libcamera 16:50:25 <mal> I have some mainline kernel based test builds which I can use for testing 16:50:51 <mal> piggz already uses libcamera on some devices 16:51:22 <flypig> What does Advanced Camera do? 16:51:42 <rainemak> that's also from piggz I think 16:51:52 <rainemak> I think all sort of things 16:51:54 <rainemak> :-) 16:51:57 <piggz[m]> advanced camera is using the normal camera stack, but exposes all controls to the user 16:51:58 <flypig> https://openrepos.net/content/piggz/advanced-camera 16:52:26 <mal> I think it uses regular things, shutter app uses libcamera https://github.com/piggz/harbour-shutter 16:52:48 <flypig> https://github.com/piggz/harbour-shutter 16:53:03 <flypig> (just putting it on its own line) 16:53:12 <piggz[m]> shutter is very much WIP, uses libcamera, exposing those controls to the user depending on how libcamera handles the actual camera sensor 16:53:15 <flypig> (old habits...) 16:53:35 <rainemak> let's move on to PR discussion 16:53:44 <rainemak> #topic Open PR discussion (5 mins -- asked by Jolla) 16:54:05 <rainemak> I don't have any 16:54:21 <nephros> not a PR yet, but have you had time to look at this? Shall I make a PR? 16:54:27 <nephros> https://forum.sailfishos.org/t/webview-webengine-cors-headers-and-file-loading-in-sfos-4-4/10742/21?u=nephros 16:54:56 <rainemak> nephros, sorry... I was on my mind other weekend but then something else popped up 16:55:13 <nephros> No worries at all. It's not important. 16:56:19 <rainemak> thanks for reminding 16:56:23 <flypig> Could you summarise the purpose nephros? I couldn't quite get it from skimming the forum thread. 16:57:10 <flypig> Is it about correctly setting CORS headers with the WebView? 16:58:14 <rainemak> we're going a bit over time... not an issue for me 16:58:50 <CLMA31[m]> https://forum.sailfishos.org/t/community-meeting-on-3rd-july-2025-new-time-slot/23565/5?u=clma31 16:59:25 <CLMA31[m]> Was this topic already covered and I just missed it? Could very well be and I want to apologize in advance if that is the case 16:59:58 <mal> let's talk about beacondb in general discussion 17:00:05 <rainemak> CLMA31[m], sorry missed that... 17:00:10 <rainemak> mal, +1 17:00:39 <CLMA31[m]> Mal, +1 17:00:40 <nephros> flypig: I load a HTML file (not an URL) into WebView. That HTML has images (either file:// ot just relative URLs). Those images can not be loaded, no matter what kind of CORD things you enable or disable. 17:00:46 <rainemak> nephros, flypig : I guess we have covered this cors - need to give a look to that example 17:01:13 <nephros> Yeah, the example should show it nicely. 17:01:26 <CLMA31[m]> [@rainemak:matrix.org](https://matrix.to/#/@rainemak:matrix.org) no worries! I placed the topic very late 17:02:03 <rainemak> moving to general 17:02:04 <rainemak> #topic General discussion (10 mins) 17:02:32 <rainemak> #info BeaconDB usage in Sailfish 17:02:44 <rainemak> mal, floor is yours 17:02:46 <flypig> nephros, rainemak, thanks, yes, I understand now from that. Thank you! 17:03:38 <rainemak> CLMA31[m], that app was for collecting afair 17:04:37 <mal> the change to allow configuring api location and key doesn't seem to be yet in 5.0 so to use beacondb one package needs to be built and then a suitable configuration file added 17:04:42 <rainemak> for enabling BeaconDB as an A-GPS option we should at least have a greeting somewhere in the Settings -> About product 17:05:20 <rainemak> mal, but having those changes in 5.0 could be an option I think 17:05:28 <mal> rainemak: I think for 5.1 we should change beacondb to be the default 17:05:44 <rainemak> mal, that's true 17:05:46 <mal> I understood it should be fine 17:06:21 <mal> I can make a PR for that already 17:06:26 <rainemak> that's nice 17:06:39 <CLMA31[m]> [@rainemak:matrix.org](https://matrix.to/#/@rainemak:matrix.org) yes to my understanding also the app is for collecting data 17:06:57 <rainemak> I think that we do still one 5.0 update 17:07:00 <rainemak> before 5.1 17:07:19 <mal> for testing beacondb in 5.0 at the moment this needs to be built https://github.com/mer-hybris/geoclue-providers-mlsdb 17:07:34 <mal> and need to find where the configuration file instructions were 17:08:21 <nephros> For collecting & submitting to BeaconDB, it would be nice to have a background service you can toggle. 17:08:27 <CLMA31[m]> Thank you for the information! If someone had missed it, I have zero software understanding and I just wanted to raise this question as better GPS would be amazing. For me personally it doesn't matter how it is achieved 17:08:59 <nephros> CLMA31[m]: Have a look at https://forum.sailfishos.org/t/use-beacondb-as-online-positioning-service/22761/24?u=nephros 17:08:59 <mal> https://forum.sailfishos.org/t/use-beacondb-as-online-positioning-service/22761/4 17:09:25 <nephros> ^^ :D 17:09:35 <rainemak> nephros, if we do it as a background service then we would not need to worry about store things either 17:09:47 <CLMA31[m]> Yes I have read the thread. But understood like 50% 17:10:15 <nephros> rainemak: there's ready-to-backport code in some examples of - I think - geoclue2 17:10:21 <mal> nephros: I did investigate how to get the needed info in sfos but had some issues with telephone side that it only gave needed info for the actively used cell tower which seem not good 17:10:31 <rainemak> but good CLMA31[m] that you're bringing your input to the discussion 17:10:37 <nephros> mal: I have found the same in LiveTrac, yes. 17:11:12 <nephros> mal: That seems to be a regression though, on my 4.4 device it works. 17:12:23 <rainemak> It sounds that beacondb is covered 17:12:35 <rainemak> let's schedule a next meeting 17:12:44 <CLMA31[m]> Yes, thank you for the info! 17:12:49 <rainemak> #topic Next meeting time and date (5 mins) 17:13:18 <rainemak> We're heading to summer vacation break and the next newsletter would go out 7th August. So, proposing that the next IRC meeting whould take place after that. 17:14:15 <rainemak> how does that sound like? 17:14:26 <rainemak> Proposing Thursday 14th August at 04:00 PM UTC ? 17:14:48 <flypig> That sounds good to me. You all deserve a good summer break! 17:14:52 <CLMA31[m]> Sounds good, you all have deserved good summer vacation! 17:15:09 <rainemak> let that be settled then 17:15:14 <rainemak> #info Next meeting will be held on Thursday 14th August 2025 at 04:00pm UTC: 2025-08-14T1600Z 17:15:26 <rainemak> thank you all and enjoy the summer! 17:15:41 <rainemak> see you in August 17:15:43 <flypig> Thank you rainemak and everyone! Enjoy your summer too :) 17:15:53 <CLMA31[m]> One more time, thank you of yesterday and thank you for information provided today 17:16:05 <rainemak> Welcome 17:16:06 <CLMA31[m]> I hope everyone have a great summer! 17:16:36 <rainemak> #endmeeting