#Bobby, a new voice assistant and Snowy successor

1 messages ยท Page 2 of 1

finite night
#

I love that

#

and then it comes back louder/vibrates even harder

karmic lion
#

Snoozing is an anti-feature that alarms should not have in the first place.

finite night
#

pop off ๐Ÿ‘

#

in these situations i find it's important to ask "what would the little horse want"

#

"how help"

wooden wedge
#

hm, I was going to see if my generated pdcs works, but I first need to figure out how to draw sequences

karmic lion
#

oh I see why the lie detector is failing

#

wait never mind no I don't

#

oh

#

yes I do

covert ingot
#

are you lying?

#

How would we know?

karmic lion
#
switch action {
case "alarm":
case "timer":
    if _, ok := functionsCalled["set_alarm"]; !ok {
        lies = append(lies, action)
    }
case "reminder":
    if _, ok := functionsCalled["set_reminder"]; !ok {
        lies = append(lies, action)
    }
}
#

pop quiz: what happens when the action is "alarm"?

#

as you may infer from context even if you do not know Go, the answer is "nothing at all"

wooden wedge
#

no help

karmic lion
#

bobby on cobble is a particularly dumb horse

wooden wedge
#

well, even if it wasn't on cobble, I'm fairly sure it wouldn't know

karmic lion
#

true

#

but it would construct a correct sentence!

wooden wedge
#

it's less helpful because it says it knows something because the negation was dropped somewhere

karmic lion
#

I also managed to reproduce it not setting an alarm, though it didn't fail until the fourth one

covert ingot
#

I was organised this time and sorted the stickers before the hackathon started, but I'm a bit sad about that because if I hadn't this definitely could've been a 144x168 sticker:

wooden wedge
#

pebble documentation could be an information source for bobby, though idk how useful that would be

karmic lion
#

that speech bubble on the home screen should randomly just say "How help you" instead of the greeting

#

I have found that gemini is actually quite good at generating pebble code so it probably already knows the things that have well-documented answers

karmic lion
#

(although again the wikipedia grounding might be causing it to refuse to use that knowledge)

wooden wedge
#

I assume pebble never made a repo for animated pdcs, did they?

#

I could steal the code from the firmware repo

#

I know how I would theoretically do it, I just really don't wanna actually do it right now

karmic lion
#

I don't think so. We just generally dropped the ball on PDC as a concept.

wooden wedge
#

it's so cool though

karmic lion
#

the firmware's pdc_gen has documentation claiming that it will convert a sequence of SVGs into a PDC sequence

wooden wedge
#

I generated it!

#

using that tool

#

though it was broken

#

but I fixed it

karmic lion
#

what isn't broken in pebble land?

wooden wedge
#

it's only 250B in size or thereabouts

karmic lion
#

If you have a PDCS already, what are you looking for?

wooden wedge
#

draw it on the watch

karmic lion
#

ah

#

tediously

wooden wedge
#

yeeah

karmic lion
#

or steal the entire kinolayer and make it a pebble package.

#

which I probably can't do for legal reasons.

wooden wedge
#

I'm really glad my company isn't as stringent about doing open source stuff

#

I essentially got told: use your own private email address in commits you do in your private time, we don't care otherwise

karmic lion
#

I get told the opposite

#

I must use my @google.com email for any open source work I do. And put "copyright google" headers on it.

#

I can broadly contribute to anything I like without approval, but I can't start my own projects without approval.

#

Making kinolayer a thing would be starting a project, so

#

(although it'd be using code google already approved)

wooden wedge
#

I think that might be illegal in europe

karmic lion
#

It would probably not be hard to get approval for kinolayer but it would require more paperwork than I care for.

wooden wedge
#

but I never got a solid answer about the practice

karmic lion
#

In Europe I am fairly sure employers don't generally get to claim all IP you invent off the clock, while in the US they can (but in California they can only do so as it relates to their line of business - which, in Google's case, is literally everything)

#

Apple has an interesting pair of policies on OSS work where not only do they own your IP but also they consider all OSS work to be a conflict of interest and therefore in violation of your employment agreement regardless of the IP considerations

#

This is actually the specific reason I do not work at Apple.

wooden wedge
#

oh

#

that explains a lot about apple

#

I was surprised how little contributions I saw from apple employees in the wild

karmic lion
#

time to discover whether yelling at bobby about lying will make it lie less

#

I love computers in 2025

#

I would love to know how Cobble is dropping appmessages to bobby

wooden wedge
#

I don't know how appmessage transport looks between the two

#

does the app/watch ack when receiving them?

karmic lion
#

there is an automatic ACK sent

#

or NACK, depending on the state of the watch

#

but bobby shows some UI if there was a NACK, so the watch is presumably just never seeing them

coarse cedar
#

Run Cobble traffic through Wireshark

wooden wedge
#

yeah, sounds like ack/nack mechanism is not implemented right in cobble

karmic lion
#

hmpf

#

it lied again

#

though at least the lie detector caught it this time.

#

though after saying "try again" it did actually set it

#

I wonder whether it's more inclined to lie because it doesn't get the historical log of tool uses, so from its perspective it just claimed to do something without actually doing it.

sick apex
#

woah this project looks really cool! would there be any way to set a custom accent color for the UI?

for example if I'd want the old Snowy teal color rather than this light purple

karmic lion
#

it's shocking pink!

#

as shocking as pebble screens get, anyway

#

I don't think so, I think I intend to stick with the Brand Colour. Which is bright pink, apparently.

sick apex
#

"hey Bobby, what do you know about Pepto-Bismol"

wooden wedge
#

I made that decision based on nothing in particular and nobody complained

sick apex
#

oh don't get me wrong it's not a complaint, I just think alternative colors would be neat

#

personally I would've loved like a pale red/burgundy, or a light blue similar to the blue that's used in the Pebble settings menus

karmic lion
#

okay I can't get it to lie about setting alarms any more.

#

I told it that lying was bad.

wooden wedge
#

it was never mentioned in the training data

karmic lion
#

also I told the verifier that telling you when your existing alarms are set for does not count as lying about setting an alarm.

#

programming is in english now

#

also I have verified that the lie detector understands German

#

those are all server-side fixes that will roll out shortly.

wooden wedge
karmic lion
#

cool

#

I look forward to figuring out how to do anything with that

wooden wedge
#

I have no clue if it works, but I did generate it

#

worth noting, it's very small, surprisingly

karmic lion
#

it does seem surprisingly small, given the is no inter-frame compression and previous single-image PDCs were larger

wooden wedge
#

it is like a total of 5 images, but I didn't expect it to be able to figure that out and adjust timings of it

#

because I just copied 60 images

karmic lion
#

hm.

wooden wedge
#

and it is not big enough for all of those

karmic lion
#

I'm not entirely convinced it's big enough for two of them

#

how large is a single image?

wooden wedge
#

I have to figure that out

#

well, inkscape crashed

#

it is smaller than that image by a few bytes

#

well, time for me to figure out wtf it actually encoded then

#
00000000: 5044 4353 fa00 0000 0100 3200 3200 0000  PDCS......2.2...
00000010: 3c00 2100 0000 2100 0000 2100 0000 2100  <.!...!...!...!.
00000020: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000030: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000040: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000050: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000060: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000070: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000080: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000090: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000a0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000b0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000c0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000d0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000e0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
000000f0: 0000 2100 0000 2100 0000 2100 0000 2100  ..!...!...!...!.
00000100: 0000 0a                                  ...

ah, nothing

#

what even

karmic lion
wooden wedge
#

well, time to use that then

#

might be less broken than what is in the firmware

karmic lion
#

It does not actually provide a way to generate them.

wooden wedge
#

excellent

karmic lion
#

and I am pretty sure the logic for running the animation is also wrong.

wooden wedge
#

well, cards example's script can generate sequences too

#

might be better to use that with python2 instead of the broken one with python3

#

it's a good thing I still have a working python2 setup

karmic lion
#

it looks like the format does in fact have an allowance for encoding variable-duration frames

wooden wedge
#

yeah, I can tell

karmic lion
#

so while I doubt the script will handle this, it is probably worth doing.

wooden wedge
#

I agree

#

there's a tool in the firmware to do it via a json

#

which sounds hellish to encode

karmic lion
#

the demo PDCS player does not handle this at all and will just play one frame every 33 milliseconds.

wooden wedge
#

amazing

karmic lion
#

I assume the JSON is coming from aftereffects somehow

wooden wedge
#

there might be a way to encode svgs to the json in there too

karmic lion
#

honestly I'd probably take the easy way out and just make my own script to assemble a PDCS out of a bunch of PDCIs and some external timing information.

#

that wouldn't be hard.

#

not very usable, but easy to write

wooden wedge
#

hm, true

#

I will just zip up the file for now and figure this at a later date

#

it doesn't seem difficult, but not for now

#

(anim1 is the walking animation)

karmic lion
#

Can you zip up one that has the corresponding sixty PDCs?

wooden wedge
#

yes I can

karmic lion
#

I am too lazy to figure out PDC conversion

wooden wedge
#

fair

karmic lion
#

but possibly not too lazy to make the PDCS scribbler

wooden wedge
#

bash script time!!!

tired pike
karmic lion
#

I don't even actually know whether it is enforceable.

tired pike
#

I think here (in the UK) it actually is, if it's in your contract and you agreed to it.

karmic lion
#

or legal, rather

#

I'd sort of assume that anything put in the contracts is at least plausibly legal

wooden wedge
#

now with svg AND pdc

karmic lion
#

excellent, thanks

#

the identical PDCs are in fact identical files, which makes life easier.

wooden wedge
#

yeah, that's good

#

I don't remember if the timing was 33ms or 66ms by design, but I'm sure we will figure it out when we see how it looks once rendered

finite night
#

It makes me unreasonably happy ๐Ÿ˜†

barren raptor
#

Proposal: Make the greeting for those hours "shouldn't you be asleep?" /j

covert ingot
#

Does bobby explain that you need a subscription if you don't have one?

karmic lion
#

No, it doesn't really get a chance to

covert ingot
#

Obviously people will have a hard time talking to it without one

karmic lion
#

The point where it checks is after the point where dictation fails

coarse cedar
#

i mean it can if someone is selfhosting a asr server without a subscription

karmic lion
#

This is true but so far off in the weeds that I don't really care

#

You'll get some sort of error back when you try using it. I forget what the wording is.

coarse cedar
#

there are barely any people that do selfhost an asr server
-# I do but I also subscribe

edgy flame
#

hey this is really freaking good. i love the way this looks, i love the little cut-ins for confirmation now

#

came out wonderfully

wooden wedge
#

it can still be better I'm sure

#

we just need more bobbies

karmic lion
#

there is a distinct shortage of horses on that screen

#

I don't know why it would have horses

#

but it currently has no horses

wooden wedge
#

time for the running horse

#

if I make a running horse, it will be more than 2 frames tho

karmic lion
#

well that's not going to be worth billions

#

or maybe it's worth more billions

#

I don't know whether the money is increased by frames or space efficiency.

wooden wedge
#

half a billion per horse ipo

barren raptor
wooden wedge
#

I think I can write a bobby image generator that creates unique bobbies to sell on the crypto marketplace

wooden wedge
#

each bobby will be worth 2 ftx tokens

#

the tool will also be open source so you can create your own bobby if you like the environment

#

I can replace nfts with a picrew

whole bone
#

Is that not a released version? It doesn't look like that on mine.

karmic lion
#

That is the upcoming version

#

I don't want to keep shipping small updates so I'm sending them out to the store as bigger chunks of work

#

although currently I'm being sidetracked by wildly overengineering a simple script

#

(and also my actual job)

whole bone
#

I was wondering if you had time to do an actual job, since you've spent so much time on Bobby.

edgy flame
#

i figured we were batching all the ui prettification so you could push it all at once and go "it's pretty now! look!"

karmic lion
#

pretty much

#

though at some point I am going to get bored and do it anyway

thin forge
#

hippo in latin is hippopotamus which means river horse

wooden wedge
#

it's hip to be a horse

karmic lion
#

my IDE has a remarkably detailed opinion on how one might parse a PDC sequence

#

it is not correct.

karmic lion
#

overkill script achieved.

#
Result sequence:
  View box: 50 x 50
  Play count: 65535
  Frame 00: 33 ms
  Frame 01: 33 ms
  Frame 02: 132 ms
  Frame 03: 396 ms
  Frame 04: 33 ms
  Frame 05: 396 ms
  Frame 06: 66 ms
  Frame 07: 33 ms
  Frame 08: 858 ms
#

if I skip the first frame I get a savings because it is the same as the last one.

#

now I guess I have to write something that can actually play this.

karmic lion
#

was that worth all the effort? unclear.

#

20 files changed, 928 insertions(+), 6 deletions(-)

barren raptor
karmic lion
finite night
#

Hooray!

#

I'm enjoying wearing my PTR again but Bobby is afraid of round screens so I'm probably switching back tomorrow to see my ~~boy ~~ smol horse friend

#

You would think horses would like the round screen because it's like a big O and O is for Oats

edgy flame
#

you are critical levels of down with this branding

thin forge
karmic lion
#

take many pdc images, emit one pdc sequence.

#

usage is like ./pdc-sequencer --pattern '~/Downloads/tired-pony/*.pdc' --output ~/Downloads/tired.pdc --delay 66 --playcount forever

#

shitty playback layer is vector_sequence_layer in https://github.com/pebble-dev/bobby-assistant/tree/main/app/src/c/util - better than Pebble's public example (it doesn't completely disregard timing information), but not great (it will run slightly slower than it should due to timer rescheduling - it should probably really use an Animation)

GitHub

A smiley AI assistant for the Pebble. Contribute to pebble-dev/bobby-assistant development by creating an account on GitHub.

#

on the plus side it doesn't do any work mid-frame for long frames, so there's that.

karmic lion
azure goblet
#

Didnโ€™t open your ZIP, @wooden wedge , but can I assume that you export individual SVGs and continue to use pdc_tool in your workflow? Time to add PDCS support to pdc_tool at last? Besides producing that and an animated GIF/APNG what else is critical?

clever lagoon
#

Is there any way to get Bobby to send messages or make calls? Or is that not in the cards? I recall setting up snowy to do something like that but was with iftt as the one actually executing

karmic lion
#

What something is, exactly, I don't know. I'd generally like bobby to be fairly plug and play.

#

(which is also helpful because it means the underlying LLM configuration is well-bounded)

wooden wedge
azure goblet
#

As previously discussed, my plan would be to do pdc_tool <filename_or_glob_pattern> png|pdc --playcount 1 --frame_duration 33 output.png where the set of files will be the result of the glob pattern in natural order. So pretty much, what we originally had in the firmware repository. Depending on the input parameter (static string vs. pattern), the output is either a static PNG or an animated PNG or a PDCI vs. PDCS respectively.

#

If input is a PDCS, the defaults for playcount and frame_count won't be 1 or 33 but just the values from the input.

That way, you can convert a PDCS to an APNG via pdc_tool sloth.pdc png sloth.png and convert a one-shot animation to an infinite loop via pdc_tool shredder.pdc pdc --playcount -1 shredder_loop.pdc

wooden wedge
#

I would hope it would detect the same frames in sequence and adjust the timing to multiply it instesd of inserting the same frame so that the animations don't become gigantic when you just need a couple of frames with different timing between each kind of frame

gilded maple
#

In the absence of replacement buttons, chunks of eraser work well.

wooden wedge
#

I think this would probably look better with higher framerate

#

it looks a tad slow motion-y

finite night
#

oh lawd he runnin

wooden wedge
#

idk, there's very little head movement and it annoys me

finite night
#

yeah, head movement would help i bet, or bobbing slightly up and down (if possible?)

#

bobbing bobby

wooden wedge
#

yeah, it should be possible

#

I mean, that butt go up and down

finite night
#

i think all the legs look great except possibly the back one? that one feels like maybe it's going too far back

wooden wedge
#

it's possible

finite night
#

like it would maybe do that but less, or would instead be more bent?

wooden wedge
#

yeah

finite night
#

also i just realized bobby has no tail! shoot!

wooden wedge
#

yeah, I was planning to add it later

finite night
#

ahh, word

#

that would help sell the motion too i bet

wooden wedge
#

just wanted to get some feedback

finite night
#

that makes sense ๐Ÿ™‚ i think so far so good!

#

some movement from tail and mane i bet would go a long way. but maybe bobby uses Product and that's why their mane is always on point

#

๐Ÿ’…

finite night
wooden wedge
#

that is an important motion too

#

since bobby needs to move those legs up

finite night
#

Just remembered this little piece of history - maybe useful for reference/inspo?
https://www.youtube.com/watch?v=IEqccPhsqgA

This Race Horse was the first Film ever, filmed in 1878 by Edward Muybridge.

Eadweard J. Muybridge (pronounced /หŒษ›dwษ™rd หˆmaษชbrษชdส’/; 9 April 1830 -- 8 May 1904) was an English photographer who spent much of his life in the United States. He is known for his pioneering work on animal locomotion which used multiple cameras to capture motion, and...

โ–ถ Play video
#

so actually the back legs do go pretty far back

#

and the head kinda nods

wooden wedge
#

yeah, I need to move the head a bit and the mane needs to move a bit

#

also, I already used some reference, that would have been kinda impossible without one

#

I did draw a walk cycle before with no reference and it didn't look all that good

#

this one

#

this was like 2 years ago I think?

finite night
#

nooo wait i love it

#

look at this cantering gentlehorse

edgy flame
#

what's this for?

finite night
#

FUN

#

lol

#

bobby needs exercise

#

it's going to be like bonzaibuddy where bobby will just casually canter through your watchface periodically regardless of what app you're using

wooden wedge
azure goblet
#

How does your process look like? Are you drawing individual frames in Inkscape? How do you look at the sequence? How to you flick between frames and compare?

wooden wedge
#

I overlay half transparency frames over each other

#

my process is very labour intensive and annoying really

#

this is the inkscape file, which means I have to export the frames manually after the fact

#

which is not that difficult, since the export window in inkscape is very customizable

#

if I was smart, I would use layers to my advantage

finite night
#

oh jeez, yeah, feel like layers would help a lot

#

but changing up workflow can be easier said than done

azure goblet
#

Looking at this, I wonder if a sprite sheet-like representation as input to pdc_tool makes sense. I question that many designers do have animation tools at their disposal that emit suitable SVGs.

wooden wedge
wooden wedge
edgy flame
karmic lion
#

now I just need to figure out where a running horse goes

wooden wedge
#

yeah, I need to clean up this animation still, since a lot of it is fragmented paths

#

so if it ends up being useful anywhere, I can get it prepared for it

karmic lion
#

have you seen what your alarm animation looks like in context? I still don't have a working emulator so I don't have a great way to take a video of it.

#

I guess I could just record a watch

wooden wedge
#

I have not, cobble has been much more buggy for some reason

#

I got a lot of red skulls when trying it out

#

I could try again

karmic lion
wooden wedge
#

I like that a lot

#

my watch is now soft locked :/

#

oh well

karmic lion
#

oh

wooden wedge
#

it's the dictation load screen

karmic lion
#

ah

wooden wedge
#

I can't go back from it without it actually loading

#

and cobble manages to not respond sometimes

karmic lion
#

holding back for a couple of seconds should get you out of it

wooden wedge
#

ah yes

#

that does work

#

that's a really annoying thing, which I assume is solely because of the os not considering cobble would be like this

karmic lion
#

Probably

#

I have hit that state once or twice with the official app.

#

But it is not very common.

edgy flame
#

press and hold Back will kill the current app. very useful

#

except in a game or something where that's a key you'd like to use

karmic lion
#

gotta have a bail out option somehow

edgy flame
#

yup

karmic lion
#

we have officially passed the point of not remotely fitting on a classic pebble (even before we actually try doing anything)

-------------------------------------------------------
DIORITE APP MEMORY USAGE
Total size of resources:        8253 bytes / 256KB
Total footprint in RAM:         25355 bytes / 64KB
Free RAM available (heap):      40181 bytes
------------------------------------------------------- 
whole bone
#

Just asking if it's going to rain today. It keeps saying it has trouble getting hourly weather. It will tell me the current temp, but nothing more.

karmic lion
#

that does seem to be broken.

#

I will have to look into that.

#

it'll happily tell you if it'll rain tomorrow, but not later today

#

I guess the hourly weather lookup is broken somehow.

#

hm, I need a 50x50 error icon I guess, for result panes where something didn't work.

#

clearly it should be the car driving into the water, except it's a horse instead.

wooden wedge
#

horses don't drive

#

oh you mean horse being the car replacement

karmic lion
#

yes

#

incidentally I can't figure out how to pdc_tool and my attempt to steal the car from the firmware just gets me "Error: Invalid PDC data"

azure goblet
#

canโ€™t figure out how to pdc_tool

How can I help?

covert ingot
karmic lion
azure goblet
#

No idea ๐Ÿ˜‚ I guess I will need to get to my computer. Making a tea now and will be there in 5. Can you share the file and your command line meanwhile?

karmic lion
#

this file (taken from tintin)

#

the command was ./pdc_tool Pebble_50x50_Generic_failed.svg pdc failed.pdc

azure goblet
#

I can reproduce it and it's caused by the implemented self-check. After producing a PDC, pdc_tool attempts to read it back immediately. (At least) one of the two steps has a bug.

Will fix now and publish a fixed release once done. Also, I should probably add the entire tintin collection to the test suiteโ€ฆ

karmic lion
#

by popular demand

#

it occurs to me that the status bar is supposed to account for the action bar

#

incidentally this is where error horse goes.

wooden wedge
karmic lion
#

amazing

wooden wedge
#

yeah, for some reason I already had a resource of a horse running

azure goblet
#

It seems that technically, these SVGs shouldn't be renderedโ€ฆ My quickfix recommendation to you, @karmic lion : Remove the attribute from the XML. After that, things should proceed as expected.

And I need to figure out how I want to handle thisโ€ฆ

karmic lion
#

ah yes, this again

wooden wedge
#

yeah, pebble svgs are weird

#

I had to mess with that myself

karmic lion
wooden wedge
#

hmm, I shouldn't have included the hind leg really

#

the thick lines make this worse really

#

I meant to say front leg

#

or

karmic lion
#

I spent a while pondering this and decided you meant the left foreleg

wooden wedge
#

I meant front leg, but the one on the back

#

you know

#

the one behind the other one

#

the hind leg, I swear that made sense in the moment

karmic lion
#

We are back into "technically fits on a classic watch" (but then immediately OOMs):

-------------------------------------------------------
DIORITE APP MEMORY USAGE
Total size of resources:        10562 bytes / 256KB
Total footprint in RAM:         23970 bytes / 64KB
Free RAM available (heap):      41566 bytes
------------------------------------------------------- 
#

okay, I guess I'll send this to the appstore now

azure goblet
#

Which "classic watch" with 24K RAM that also has a mic are you referring to?

karmic lion
#

The fact that it would not work on a classic watch no matter what I did is a key reason I don't care that it doesn't fit

wooden wedge
#

hm, I wonder why pdc-sequencer doesn't like relative paths

#

it works otherwise it seems

karmic lion
#

oh?

#

I guess I never did actually try that

wooden wedge
#

with a relative path it only detects 1 image and creates a tiny sequence of 1 image

#

which is not very useful

karmic lion
#

not really

#

what's the command you're using?

wooden wedge
#
> pdc-sequencer -output anim3.pdc -playcount forever -pattern *
Input images:
00) Bobby01.svg.pdc
Result sequence:
  View box: 45 x 25
  Play count: 65535
  Frame 00: 33 ms
karmic lion
#

did you try quoting the *?

wooden wedge
#

oh yeah

#

that's my inability to use the shell correctly

#

I forgot that my shell will just auto expand it

#

so it seems it work correctly

weary ether
#

man this app just keeps getting better and better

wooden wedge
#

this is a lot of fun

karmic lion
#

edge case: you asked it to set two timers at once

wooden wedge
#

running bobby for any use

azure goblet
#

once you're sufficienty happy with your sequence, I'd love to take the most-recent SVGs and PDCS to start working on PDCS support (likely not tonight though)

wooden wedge
#

oh, I can send that to you rn

azure goblet
#

really? "sufficiently happy"? no v2? or v2 final bak even?

wooden wedge
#

if I have to revisit, I will

azure goblet
#

Ahโ€ฆ LOL, it reads "3" already

wooden wedge
#

oh, the 2 was the sleeping bobby looking around

#

the 1 was walking

#

or well, it didn't have 1, it was just anim

azure goblet
#

bright side: sufficiently patched the SVG crate to process SVG display="none">. Need to write tests to make the original error message more pretty, but after that, I will push a new version of pdc_tool

wooden wedge
#

cool

karmic lion
#

appstore updated to v0.17, hurrah

wooden wedge
#

yay

#

actually, cobble doesn't have functional app updates

karmic lion
wooden wedge
#

I can however manually update by just downloading a pbw

#

well, that works

karmic lion
#

third person for some reason

wooden wedge
#

oh wow, I managed to get an alarm set with cobble

#

surprising

#

the alarms are very cool

barren raptor
#

okay, another case where the LLM lies discovered

#

I told it "set an alarm for 1 minute in the future", it used a calculator, responded "OK, I will set an alarm for 23:02" (the correct time) and then the lie detector triggered

karmic lion
#

now with new screenshots!

azure goblet
#

Pretty much on brand โ€“ app icon seems to be missing

karmic lion
#

Yeah, I don't know what's up with that.

#

@covert ingot said he was going to fix it at some point

covert ingot
karmic lion
#

wow I forgot that this used kind. Or existed.

covert ingot
#

I am in the process of getting local rws setup as we speak

#

I dug through the depths of the server history to find out what I did last time

wooden wedge
#

hmmm

karmic lion
#

hmm.

wooden wedge
#

does that mean it did set the reminder or not

#

I guess we will know tomorrow at 12

karmic lion
#

(it means it did, the confirmation appears after it's happened.)

wooden wedge
#

cool

karmic lion
#

though bobby never found out about it

#
2025/03/08 21:18:13 calling function set_reminder
2025/03/08 21:18:13 Asking watch to set reminder...
2025/03/08 21:18:13 Sending request to watch...
2025/03/08 21:18:13 Reading response from watch...
2025/03/08 21:18:13 Waiting for confirmation...
2025/03/08 21:18:23 response read: 
2025/03/08 21:18:23 unable to read response: failed to get reader: context deadline exceeded
2025/03/08 21:18:23 Going around again
2025/03/08 21:18:23 write to websocket failed: failed to write msg: use of closed network connection
2025/03/08 21:18:23 Stopping
2025/03/08 21:18:23 write to websocket failed: failed to write msg: use of closed network connection
wooden wedge
#

yeah, it's cobble yet again

#

I'm glad it at least did the thing though

karmic lion
#

fun fact: the alarms use six kilobytes of code space.

#

not much space to add more features like that.

wooden wedge
#

hmm

azure goblet
#

For my intrinsic gravelty and rocky reality, I implemented overlays to dynamically load and unload functionality. All I am saying is: There is a way ๐Ÿ˜‰

karmic lion
#

We'll see if things get that far!

azure goblet
karmic lion
# wooden wedge

I wonder whether this'd make sense to replace the loading indicator for the quota screen

#

Feels like a bit much in the main conversation screen but I think it could work in isolation

karmic lion
#

Well it'd look exactly like it does in your clips there so it's not very mysterious ๐Ÿ˜„

wooden wedge
#

true

karmic lion
#

well aside from the part where it usually only takes a few milliseconds to load, it's great

#

shipping it anyway

#

Sometimes I question Bobby's intelligence:

2025/03/08 21:51:15 calling function lua
2025/03/08 21:51:15 Running script: return "Quelle heure est-il?"
covert ingot
#

My 'unit preference' is UK, but bobby is telling me the weather in F

karmic lion
#

that's rude of it

wooden wedge
karmic lion
#

I set that, asked it the temperature and got it in celsius

#

I cannot reproduce getting a temperature in the wrong units..

covert ingot
karmic lion
#

hm.

#

was there any context before you asked?

covert ingot
#

There was not

karmic lion
#

oh interesting

#

if I ask for the weather tomorrow it does the wrong thing

#

but if I ask for the weather now it does the right thing

covert ingot
#

So it does

karmic lion
#

what.

wooden wedge
#

uk hybrid means you get today's temperature in celcius and tomorrow's in farenheit

karmic lion
#

surely it should be the other way around.

#

okay this is extra annoying

#

It is making the requests to the weather API with the correct unit preference

#

Then translating them back to fahrenheit after.

covert ingot
#

Hahaha

karmic lion
#

maybe I should just tell it

#

"UK hybrid temperature is in celsius."

#

this does in fact fix it.

covert ingot
#

Aren't LLMs fun

karmic lion
#

ah, the uk hyrbid

#

while I'm here I should figure out why the hourly forecast is busted.

#

really ought to actually have unit tests. for anything.

wooden wedge
karmic lion
#

also I realised pebble actually does have one indeterminate loading indicator

#

it's a pulsing circle

#

the microphone window has it

wooden wedge
#

that's true

karmic lion
#

given this I feel my pulsing circles are arguably sufficiently pebbly after all.

#

though granted I don't have any cool folding animations into that circle

#

okay, fixed the weather thing.

#

the move from Open AI to Gemini broke it because the Gemini API can't handle the reponse format I was generating.

wooden wedge
#

time to unfold a response from the loading circle

karmic lion
#

I'm just watching the logs and really wondering how someone managed to trigger lies detected: [reminder alarm timer]

#

just lying about everything in one message.

covert ingot
#

I don't know what I expected ๐Ÿ˜†

wooden wedge
#

lmao, I love that

karmic lion
#

fact checking!

#

that's how I've been testing it actually

#

telling it to lie

fierce plinth
#

Just found out about Bobby. This is, in fact, awesome.
I don't think /r/pebble has found out about this yet.

They might lose their minds. bobby

karmic lion
#

I'm going to make more noise about it soonish, I think

#

for now it's still a work in progress ๐Ÿ˜„

wooden wedge
#

it's become much more of a product over the week, which is really cool

karmic lion
#

your icons and designs have certainly been a key part of that

#

I'm now trying an adventure in just dumping entire wikipedia articles into it instead of only the summaries.

wooden wedge
#

I'm happy to help with that

karmic lion
#

take advantage of being 70 times cheaper or something.

wooden wedge
#

that means the feature doesn't work at all there

karmic lion
#

I am beginning to feel like Bobby should detect Cobble and warn the user.

wooden wedge
karmic lion
#

from the screenshot merging I assume

covert ingot
#

I knew someone would say something

#

Yeah, it's just me misaligning when stiching

wooden wedge
#

yeah, it's a tall pebble

#

robert in the wild

covert ingot
#

Earlier I sent 3 screenshots and Discord managed to put them in the least desirable order possible

wooden wedge
#

yeah, that's discord

karmic lion
#

this doesn't seem right.

#

also I have to say, dumping entire wikipedia articles in is a really quick way to use your quota.

#

ah, overflow in the calculation for that bar.

wooden wedge
#

ah, I just remembered I was intending to put sparkles behind bobby in the running animation

#

oh well

azure goblet
#

(bobby3-final2 ;P )

wooden wedge
#

indeed

#

well, it's not going to be too hard to do that at some point

#

tomorrow I really want to focus on getting the app config page into cobble though

sick apex
#

I was fiddling with it yesterday and went down a random rabbit hole

#

asked it about Grover Cleveland, it answered that correctly

#

but then it said it couldn't tell me any details on the causes of the Panic of 1893

#

it just had like a surface level thing about how it was an economic depression

#

I didn't realize that the LLM this is using has a limited knowledgebase, I thought it was similar to full Gemini

karmic lion
#

well it does have a full gemini, and in fact probably could've answered the question if it didn't try to look up information.

#

though unlike Google's Gemini, it can't search the whole internet

sick apex
#

ohhhhh

karmic lion
#

But if it didn't try to look up information it would a) be somewhat more inclined to hallucinate, and also b) not be aware of any changes in the world since last year

sick apex
#

right, that makes sense

sick apex
#

huh

karmic lion
#

It looked up the panic of 1893 and got back the summary

#

so it told you things that were in the summary

sick apex
#

right, then I asked for more detail and it was like "I can't tell you that right now" or something

#

(I don't remember the exact phrasing)

karmic lion
#

the version on my machine is slightly smarter(?) and when asked for the causes goes back and looks up the whole thing and provides an awful lot more information than I care for on my watch screen

sick apex
#

okay, so this is something that future versions of Bobby will be better about; that's cool

karmic lion
#

(it blames: Argentine economic problems, European investor concerns, overexpanion and speculation, silver oversupply, failure of the Philadelphia and Reading railroad, bank runs and credit crunch, repeal of the Sherman Silver Purchase Act, and financial panic in London)

#

(but with more detail about each of those things)

karmic lion
#

If I did that you'd hit your monthly quota pretty quickly

#

so something smarter needs to happen

#

I have something smarter but tbd whether it's smart enough.

sick apex
#

something in between "I'm sorry I can't tell you" and full infodump?

#

is there a way to tell the LLM to keep all responses under a certain length?

karmic lion
#

no, something in between giving it a three sentence wikipedia summary and giving it a 10,000 word wikipedia article.

#

the length of the response is not the problem

#

the length of the information used to generate it is.

sick apex
#

ohhhh

#

so it's fine if it gives a long response as long as that response was retrieved in a simple manner?

vs if it was scouring the internet and searching multiple places, that's computationally expensive

karmic lion
#

Yes. Though it not so much how much searching is done as how much information is retrieved.

sick apex
#

interesting

karmic lion
#

given an unlimited budget it would be quite easy to make it do whatever.

#

But the budget is $3/user/month.

#

and some of those dollars are already reserved for other things.

sick apex
#

is this thing being subsidized by Rebble in some way?

karmic lion
#

it is a rebble product, the costs are funded by rebble subscriptions.

#

This is why it only works for Rebble subscribers (even if a non-subscriber has working dictation for some reason)

sick apex
#

huh, I didn't know that

#

I just assumed the subscription requirement had to do with the dictation

karmic lion
#

it is both!

#

If you go to the "quota" entry in the menu you can see how much of your quota you have used.

#

that's tied to your rebble account

sick apex
#

oh, interesting

#

I did see the quota thing, I'm at like 1% right now

karmic lion
#

I was at 5%

#

I am now at 46% after some time trying to improve the summary problem

#

though currently I am on a different adventure trying to sort out memory leaks

#

it's not going great.

karmic lion
#

I have significantly improved the situation! I think.

#

also I have pushed out that change to information retrieval

#

let me know whether it's better. also let me know whether you hit your quota.

#

it also now seems to be more inclined to say "I can't find that information. Let me try something else." and then immediately try something else and tell you how it went.

#

I'm not sure how I feel about this.

#

it also now seems more inclined to work though things, like this:

#

Me: Which countries have a higher GDP than California?

Bobby: I need to know California's GDP to answer this question. I will look that up on Wikipedia.
[thinking]

Bobby: California has a GDP of $4.132 trillion. Now I will check the list of countries by GDP to see which have a higher GDP.
[thinking]

Bobby: Based on the IMF's October 2024 forecast, the countries with a higher GDP than California's $4.132 trillion are:

  • United States: $30.33 trillion
  • China: $19.53 trillion
  • Germany: $4.92 trillion
  • Japan: $4.38 trillion
#

I'm not sure I really needed the earlier steps stated, but it's nice that it figured it out.

finite night
#

Dang, Bobby's a real bookworm. bookhorse?

#

Awesome updates today ๐Ÿ˜„

sick apex
#

My same old test of Grover Cleveland and the Panic of 1893 went better this time

#

But I had to ask it three times before it actually gave me the causes

#

"What caused the Panic of 1893?" returned a summary

"What caused it?" also returned the same summary (still not stating causes)

#

But "Could you tell me more about it's cause" got me there in the end

#

and I'm still at 1% of quota which is cool

#

...ooo, on another run of it

#

1st time asking "What caused the Panic of 1893" got a summary

Second time, "but what caused it?", Bobby said "I'm sorry, the summary of the Wikipedia article doesn't mention the cause of the Panic of 1893. Should I get the full article?"

karmic lion
#

yeah, sometimes it asks, despite my best efforts to make it just do it itself

#

if you say yes it will actually go and fetch it.

sick apex
#

I said "Yes, please get the full article and tell me the cause" and it did it

#

I got the bulleted list of causes

#

Kinda neat

wooden wedge
#

I wish it could fetch individual sections or something, to maybe avoid fetching this much info

#

I wonder if including just the info box would help with it knowing more stuff right away

karmic lion
#

It could presumably do that if I were so inclined.

#

It always gets the infobox anyway because that is part of the summary

wooden wedge
#

oh

#

that's helpful

karmic lion
#

It is

karmic lion
#

I have gone down a path about which I have regrets.

covert ingot
#

Looks great though!

karmic lion
wooden wedge
#

that's really cool

harsh brook
#

Very nice looking!

Speaking of "tomorrow", dunno if its something to be considered, but I had told bobby to set a reminder tomorrow afternoon some time after midnight just before sleeping. It did indeed do it the next day, rather than on the day that just started. Of course this is technically correct but in my case I intended it to be today as my "tomorrow" starts after sleeping. Unsure this is something bobby could ask clarification about or maybe showing the date & time in ui when the reminder has been set relatively from now or something could have helped.

karmic lion
#

"tomorrow" here is really exciting because the interpretation of "tomorrow" when rendering the weather card and when generating the text response are not necessarily the same.

#

I could probably tell Bobby that "tomorrow" doesn't start at exactly midnight, or something. Or make the confirmations not use "tomorrow" too close to midnight. I dunno.

#

also adding these cards appears to have introduced a really cool new behaviour where bobby sometimes just doesn't bother to generate any response at all.

#

don't know what's up with that.

#

it's kind of a disaster right now.

#

but it looks nice in screenshots, so there's that

#

oh, it is generating text, but the widget construction is malformed such that it's hidden. fun.

#

oh, it's not technically malformed, I made a typo in the definition and it's obeying it. fun.

karmic lion
#

well that was exciting.

#

I will pick this up tomorrow. by which I mean later today.

#

also not visible in these screenshots: sometimes the text in the lower right runs into the temperature.

#

so that's also fun.

#

Also I am somewhat disappointed to learn that the Pebble weather app only has icons for eight weather conditions

#

One of which is "partly cloudy and raining and sunny"

wooden wedge
#

how many weather conditions are there?

karmic lion
#

About fifty, according to the weather API

wooden wedge
#

that is a lot of resources

karmic lion
#

Some of them are obscure

#

Some of them are less so, like "windy"

wooden wedge
#

windy seems particularly easy to draw

karmic lion
#

Yes, probably even I could do it (eventually)

wooden wedge
#

it's important to differentiate from foggy

#

but otherwise rather easy

karmic lion
#

Another one it doesn't have!

wooden wedge
#

I'm sure whoever was drawing this didn't know how to differentiate and just gave up on it entirely

karmic lion
#

Don't forget smoky

wooden wedge
#

as in smog kind or?

karmic lion
#

As in nearby wildfires

wooden wedge
#

right

karmic lion
#

The weather apps all show "smoke" for that

wooden wedge
#

that seems useful for california

karmic lion
#

I don't actually know what the weather types are

#

I just have integers

#

And no documentation

wooden wedge
#

that's not very helpful

karmic lion
#

I stole pebble's map of integers to the eight pebble conditions

#

But I don't know how to put in any others

wooden wedge
#

hm, did the og api that pebble use just not have that many conditions or something

#

what's the fallback?

karmic lion
#

No it was the same one

#

They just mapped all of conditions individually to one of the eight options

wooden wedge
#

oh

#

are there different night conditions in the api?

karmic lion
#

I'd assume so

#

I do not actually know what the integers mean

#

Anyway it is very late because DST has stolen an hour from me

wooden wedge
#

yeah, I would love to be able to draw this if there was some documentation of what is what

#

but that would require documentation

karmic lion
#

Aha

wooden wedge
#

I can work with this

finite night
#

the weather cards look so good! sorry they're a headache

finite night
#

weather horse would be incredible bobby

#

bobby in sunglasses; bobby with a little umbrella; bobby next to a snowman; bobby flying a kite in the wind ๐Ÿฅฐ

#

bobby mostly obscured by fog

wooden wedge
#

meh, I want these to be relatively informative

finite night
#

mostly joking, hahah. no worries

#

they are accompanied by text, of course

sullen coyote
#

It just happened to cross my mind. If Bobby is Google AI assistant in 2025, how much advance back then for Snowy exist to assist us in 10 years ago...

#

You are all ahead of the time...

edgy flame
#

oooh the weather cards are amazing

coarse cedar
edgy flame
#

i do like making things the size of the whole screen for Pebble reasons, but that gets annoyingly tall very quickly when it's an LLM conversation

#

it's gonna have to happen anyway if this comes to chalk, but rect screens can stay as is

wooden wedge
#

it's only 10 icons granted

edgy flame
#

I think they're the small size but yeah

wooden wedge
karmic lion
#

I probably need small and middle. I'm thinking a three-day view for questions about upcoming weather, which will presumably use small ones. If they're small enough for that.

#

Also a current conditions view which will presumably use the same medium size icons

wooden wedge
#

yeah, there's some remaining things that probably require icons

#

like wind

#

does hurricane count as wind?

karmic lion
#

Incidentally I note that the Official Icons don't bother distinguishing fog/haze/smoke

#

Hurricanes are just wind but extra

#

Also rain.

wooden wedge
#

smoke would be a nice addition probably

karmic lion
#

Pretty rare though

wooden wedge
#

that's optimistic

karmic lion
#

Dubiously worth the effort to distinguish from fog/haze

wooden wedge
#

yeah

karmic lion
#

time to look at this 2am code and discover how terrible it is

coarse cedar
#

real!

karmic lion
#

My real problem is that sometimes the text generated directly contradicts the widget.

wooden wedge
#

fact checking widget

karmic lion
#

I think but am not confident that the widget is correct

wooden wedge
#

that's concerning

karmic lion
#

The weather API is very confusing.

#

Also the weather icons don't align with a day

#

They are done in 7 to 7 chunks

#

Twelve hours long each

#

The LLM is fed the "narrative" for the entire day, but that's in English and not useful to the widget

#

I could pivot and have the LLM pick the numbers that go in the widget, which one might hope would make them agree

karmic lion
#

well

#

I checked

#

actually no, I still don't understand what's going on here.

#

okay I do understand what's going on here, it's. not bothering to check the weather at all.

#

it's deciding that putting in the widget is good enough and then making something up

#

yay, LLMs.

#

perhaps letting it have any control over the widgets at all is a mistake and I should've just automatically put one in when it checks the weather.

karmic lion
#

current conditions widget

#

the complete experience.

covert ingot
#

Does the view scroll down to the follow the text or stay at the card initially?

karmic lion
#

it sticks at the card

covert ingot
#

Ah great. Looks amazing

#

pebble tool could really use a screenshot-and-scroll feature like modern android has (or is that just a samsung thing)

karmic lion
#

My Pixel has this but it does not work well.

#

Apple has it but only for webpages and it can also generate a PDF.

#

that one does work well.

#

but yes, the rule on scrolling in bobby is that it will auto-scroll past your prompt, but no further.

#

so it actually looks like this:

covert ingot
#

Suitably grey for London

karmic lion
#

the background colour is derived from the icon. ๐Ÿ˜„

upbeat garden
#

I think ive fixed the major problem making bobby unstable on cobble which is nice

karmic lion
#

hurrah

upbeat garden
#

it was never telling the queuing code that appmessages got ack'd soo it just got stuck

karmic lion
#

that would not work out very well

upbeat garden
#

yep

karmic lion
#

that's the last of the weather widgets

covert ingot
#

That looks great

karmic lion
#

british weather.

#

interesting that it still gives a forecast for Sunday in London.

#

though I guess not that surprising given that apparently a Weather Day runs from 7am to 7am

finite night
#

ooh, 3 day forecast looks slick!

karmic lion
#

[00:30:32] ocess_manager.c:470> Heap Usage for App <Bobby>: Total Size <35080B> Used <14820B> Still allocated <708B>

#

I wonder where my memory is leaking.

#

I also probably ought to do something cleverer than loading multiple copies of the same icons into memory.

tight breach
#

Hi, is there a preferred order of operations to get a reminder pinned to your timeline? Iโ€™ve tried quite a few times since launch and Iโ€™ve not had one success yet. I am setting reminders that are at 1 hour in advance at minimum.

karmic lion
#

how long have you waited for them to show up? The timeline is not very fast.

tight breach
#

I set one over 40 minutes ago to remind me at 10pm to fix the date button (clay settings).

karmic lion
#

if you see a box like this appear it should certainly show up.

tight breach
#

Sadly, yes, I did get that but no go.

karmic lion
#

though the pebble timeline is not in general the most reliable thing.

#

unfortunately I have no possible way to debug this.

#

I guess I could dig around in the database and see whether you actually have a timeline pin.

tight breach
#

Iโ€™ve tried using note to self and that one pushes, slate too, just not Bobby.

#

I can try right now if that helps at all

karmic lion
#

it does not.

#

If you look at the applogs while setting a reminder, you should see a line to the effect of timeline: response received: OK

#

if the response is not "OK" that may be enlightening.

#

(you will also see a lot of other things. bobby is quite chatty.)

tight breach
#

Where would I find those logs?

karmic lion
#

pebble logs

#

given that when I scroll through my timeline it thinks tomorrow is Saturday, I do not have a lot of faith in the entire concept

tight breach
#

Iโ€™m on a side loaded iOS

karmic lion
#

You were looking at the logs from your pebble app just now

#

you do the same thing

tight breach
#

Let me keep looking, sorry I was looking for an actual folder in the files app where newer apps store files. I forgot to check the actual app.

karmic lion
#

It's not logged to a file, you'll have to get the logs from a computer the same way you do when you are developing your own apps.

tight breach
#

Gotcha

#

My lappy is downstairs. Iโ€™ll give it a go soon and see whatโ€™s going on.

karmic lion
#

the one I just set worked fine, incidentally.

tight breach
#

Argh, thatโ€™s the screen I donโ€™t get with Bobby for some reason. Headed to my lappy to see these logs now.

#

this is all i get: 21:13:29] pkjs> JS: stopping app: 20C69764-1E2B-4ACF-BB27-E6127472B57E dkTime25
[21:13:29] pkjs> JS: starting app: 1D272BB4-CF00-4E3E-A7F3-7394309E0341 Bobby
[21:13:29] pkjs> JS: Bobby: Cached location restored: (40.957027443267435, -72.80652520407273)
[21:13:29] pkjs> JS: Bobby: position updated: (40.95701193612777, -72.80654043322262)

karmic lion
#

You should get a lot more when you use it

tight breach
#

i create a reminder and it just sits there. I back out and nothing shows up in logs. I click the center button again and it goes to dictation.

#

darn, my ip changed

#

let me try that agian

#

[21:19:01] ation_manager.c:130> Received function: "Setting a reminder".
[21:19:01] conversation.c:168> Trying to complete a response, but couldn't find any.
[21:19:01] pkjs> JS: Bobby: sent successfully
[21:19:01] pkjs> JS: Bobby: done
[21:19:02] pkjs> JS: Bobby: timeline: response received: OK
[21:19:02] pkjs> JS: Bobby: sending immediately, messages in flight: 0
[21:19:02] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:02] pkjs> JS: Bobby: Sending websocket response...
[21:19:02] pkjs> JS: Bobby: Send
[21:19:02] pkjs> JS: Bobby: Done.

#

wow there is a lot

#

[21:19:03] conversation.c:130> Expanding buffer to 16 bytes. New buffer: 0x2001f2a8. Old buffer: 0x2001e750.
[21:19:03] pkjs> JS: Bobby: cset
[21:19:03] pkjs> JS: Bobby: sending immediately, messages in flight: 1
[21:19:03] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:03] conversation.c:132> Copied 5 bytes.
[21:19:03] pkjs> JS: Bobby: sent successfully
[21:19:03] pkjs> JS: Bobby: done
[21:19:03] pkjs> JS: Bobby: ca
[21:19:03] pkjs> JS: Bobby: sending immediately, messages in flight: 1
[21:19:03] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:03] pkjs> JS: Bobby: sent successfully

karmic lion
#

well seems like it thinks it's working

tight breach
#

yep, and now i wait...

karmic lion
#

(told you the logs were chatty)

tight breach
#

๐Ÿ˜„

#

thanks for your help. I'll ping back if i don't get a pin posted. Additionally, if I could add a feature request: enable auto-exit when setting reminders or taking notes. I quite like that feature in NoteToSelf, just wish it understood setting reminders in the AM.

karmic lion
#

I guess I'll ship this weather widget extravaganza

#

see what happens

#

at some point I am going to have to chase down the problem where it seems to launch slowly on my watch.

tight breach
#

Ooc, does Bobby not need this toggle for timeline pins?

karmic lion
#

probably.

tight breach
#

and yes, the pins did not set D:

#

they're not available for me. Let me try to delete and install. Not sure if you've rolled out any updates since the initial launch.

karmic lion
#

I might guess that the reason they don't show up is because those toggles aren't there.

tight breach
#

i've reinstalled, crossing fingers this fixes it. as a believer of magic, i think it will.

#

toggle still not there, but i'll try again with the reminder request

karmic lion
#

presumably it will still not work.

harsh brook
#

Oh yeah the toggles are not there either for me, but I think it set the reminder previously for me correctly though. Can't check right now

karmic lion
#

I have a sneaking suspicion that it's actually not possible to create a new app that uses timeline.

#

and hasn't been since 2016

#

they pretend to work because they work if they're sideloaded

#

but on the store they are broken

tight breach
#

well, note to self "worked." I mean it set the reminder for saturday, but it pinned something. Lets see if this 11:30 reminder for bobby works. If it does, I'll just make sure not to touch anything moving forward.

karmic lion
#

note to self was published ten years ago.

#

it does not meet the "since 2016" qualifier.

coarse cedar
#

I have a reminder set using Bobby

#

It does appear on my timeline

karmic lion
#

did you ever sideload it?

tight breach
#

i'm just waiting, i htink this will work.

coarse cedar
#

No!

karmic lion
#

in any case, I have used my magical database powers to flip the bit so that the app is marked as timeline enabled

#

which I think is what controls those toggles

#

though I have no idea when phones might notice it's changed.

coarse cedar
#

I also do not have the toggles though

tight breach
#

interstingly, Slate would send a notification that a reminder was just added to the timeline. I think thats what i was waiting for. Aside from NoteToSelf's stale pins, I don't have any new ones yet. STill have a few min to go.

karmic lion
#

It's possible iOS checks and android doesn't.

harsh brook
# karmic lion

I do recall seeing it in the timeline, but not this screen

karmic lion
#

That's just the screen you get when you click in from the timeline.

harsh brook
#

Ah ok

tight breach
#

well, the Reminders app on iOS just pushed a pin to go to bed yesterday at 11pm. ๐Ÿ˜†

#

wait, it set it for tomorrow

karmic lion
#

version 0.18 with cool weather widgets now on the appstore.

tight breach
#

installing

#

oh, timeline pins toggle is there

karmic lion
#

why is the icon missing

#

I guess the broken icon isn't just in the appstore web view

tight breach
#

i dont know, it was there when it didn't have toggles

#

interesting, you can't ask gemini who the president of the US is, but the api will answer. Joe Biden ๐Ÿ˜„

karmic lion
#

usually it does not get that wrong

tight breach
#

in a browser gemini will say it cant answer

karmic lion
#

nope, can't get it to say Joe Biden

#

you win the bad answer lottery

tight breach
#

welp, i just got a mountain of timeline pins. I think my install was just borked. Seems reinstalling fixed it. Not sure about this latest install, but we'll see.

karmic lion
#

It may also be related to me changing the database so it's timeline enabled.

#

for reference, almost every time you ask who the president is, you will get a response like this:

tight breach
#

i tried again and it JUST said that now.

karmic lion
#

sometimes it's overconfident and thinks it can answer without checking.

#

it is wrong.

#

Though still not as bad as Perplexity, when asked who the president is, insisted it was Joe Biden, but that there was clearly a large-scale conspiracy because every website it checked incorrectly said Donald Trump.

tight breach
#

pebble ai still shows it

#

odd that gemini provides different answers

karmic lion
#

Gemini does not provide different answers.

tight breach
#

oh

karmic lion
#

Bobby has a lot of work put into trying to make it behave reasonably, and thus gain the ability to generally be correct when asked who the president is.

#

Pebble AI, not so much

tight breach
#

well, up until a few minutes ago bobby gave an honest answer. i was gonna snap a pic too. lol

karmic lion
#

apparently Bobby is now about 11,000 lines of code.

#

(if you count blanks and comments, anyway)

#
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                              33            350            467           3833
C                               25            369            415           3200
JavaScript                      13             72            212            625
JSON                             3              0              0            385
C/C++ Header                    25            139            382            326
YAML                             2             12             10             96
SVG                             10              5             10             86
Markdown                         2             36              0             79
CMake                            1              7             21             37
Text                             4              6              0             18
Dockerfile                       1              3             13             11
-------------------------------------------------------------------------------
SUM:                           119            999           1530           8696
-------------------------------------------------------------------------------
sick apex
#

I've been able to set multiple test reminders

karmic lion
#

on iOS or Android?

sick apex
#

Android

#

they push pretty quick, usually show up within 10-15 minutes on the timeline

#

this was a few days ago, even

#

Been working the whole time, and I installed Bobby straight from the Pebble app / in the store

karmic lion
#

good to know.

#

anyway I am done with this for the time being, I think, unless anything is especially broken

sick apex
#

like, the app as a whole?

karmic lion
#

hopefully Bobby is now Product-Worthy.

#

yes.

#

I have spent all of my available time on this for the last week and am quite tired of it ๐Ÿ˜„

sick apex
#

oh damn fair enough

#

I mean it seems pretty feature complete to me

karmic lion
#

there are always more features

sick apex
#

hopefully no game breaking issues arise

karmic lion
#

though not always more memory

#

in that time we've gone from this

#

to this

#

and this

#

to this

#

and from this

#

to this

edgy flame
#

colors and cards and special one-off layouts go a long way for real-product-ification

#

if i sat down and did nice looking screens for bobby on chalk, would you be interested in actually programming that?

karmic lion
#

plus we have currency conversion, some sort of useless POI lookup, lie detectors, and other such adventures.

#

maybe.

#

sounds like a lot of work

edgy flame
#

my rough plan is turn everything into pages for scrolling, and make the weather/fact check cards take up a whole screen on chalk specifically

#

which yeah, probably would be a lot of work refactoring the whole conversation screen

karmic lion
#

only the most confusing part of the entire affair

edgy flame
#

mhm

karmic lion
#

also that still leaves the transient popups to do something or other

#

the "looking that upโ€ฆ" and similar notes that appear and disappear

#

those can't really be a whole page.

edgy flame
#

yeahhh

#

hmmmh. maybe we can just shove the lightbulb icon in the bottom bit of the screen for those, replacing the scroll indicator

finite night
#

This was (unsurprisingly to no one, I'm sure) my favorite project to follow along with this hackathon. Great job Katharine and LCP heart

#

Three cheers to this little horse bobby

karmic lion
finite night
#

Oh no, haha

edgy flame
#

get smeared

karmic lion
#

well that's disconcerting.

static jackal
#

Wow this is seriously so cool!

static jackal
finite night
#

Maybe he needs oats

karmic lion
#

I am thinking we'll do a blog post for it on the rebble blog at some point. And maybe a big banner in the appstore because it's the New Rebble Feature and we haven't had a New Rebble Feature in six years.

#

(the previous New Rebble Feature was the timeline sort of working)

#

not sure how that'll interact with general post-hackathon promo though

#

mysteries for the future.

finite night
#

Will this be the same post where it's announced that rebbleOS is being renamed bobbyOS

edgy flame
#

cobble's approach to updating apps seems to be to not bother, even if I remove and readd it to my locker

karmic lion
#

that's rude of it

edgy flame
#

hey it works when there isn't a hackathon running

karmic lion
sick apex
#

omg I just got the little running horse animation when checking my quota

#

that's so cute

karmic lion
edgy flame
#

i was a bad user and pressed the buttons i'm not supposed to press and it did clear the app off the watch and reinstall it, but when it reinstalled, it was still the old version

#

pre-horse at all

#

huhhh

edgy flame
karmic lion
#

caching too hard

edgy flame
#

mhm

finite night
#

Cache rules everything around me

edgy flame
#

i hope that crc32's new coworkers free her from BLE hell so that she can make cobble do other things

karmic lion
#

I have also hacked a small icon back in for bobby, thus reminding me that actually this page is supposed to have icons on it

karmic lion
#

I should add a feedback button to the menu

#

With both a pointer to discord or something and also the option to just dictate something

unreal acorn
karmic lion
#

Were they working before that conversation?

sullen coyote
wooden wedge
#

don't mind me, I'm just repeatedly checking my quota

coarse cedar
wooden wedge
#

huh

edgy flame
wooden wedge
#

did it look it up on wikipedia?

#

it is off by around 200k there

edgy flame
#

I saw a light bulb happen

wooden wedge
#

ohhh

#

ohhhhhhh

edgy flame
#

does that mean it's looking up wiki specifically, or just that it's processing?

wooden wedge
#

the summary is written in non rendered format

#

I think

#

because I can totally repeat the NUMBEROFARTICLES thing

#

ok, I don't understand wtf it's doing

edgy flame
#

llm moment

#

can cobble dump pebble logs, or just android logs?

wooden wedge
#

cobble really needs a sticher, smh

#

also, with the last question, I swear I can form english sentences

#

that doesn't mean the stt can understand me or that

fierce plinth
#

Bobby is the perfect middle ground of "getting me a simple information for unimportant things" and "being a worn device I can use to show anybody anytime that no, they won't be able to reliably integrate LLMs into their critical workflow and get 10x revenue" hahaha

edgy flame
#

somebody requested a feature way up the thread that I want to this: short vibration tap when Bobby completes a request

#

the idea being if it takes a long time and you put your wrist down it will let you know when to look again

wooden wedge
#

I used 4% of my quota with wikipedia articles this far today, this thing goes fast

edgy flame
#

this is already a recommended design pattern in the docs, and it's what the system does for long-running app installs

#

A short pulse should be used to alert the user to the end of a long-running in-app event, such as a download completing, preferably when they are not looking at the watch.

A long pulse should be used to alert the user to a failure or error that requires attention and some interaction.

twin schooner
#

Just loaded Bobby and am amazed! Awesome work and I think Bobby should get her own topic outside of hackathon projects. Just me thinking after not enough sleep.

wooden wedge
#

I do like how nobody has any clue about pronouns situation

edgy flame
#

or open s thread in #app-dev or something

wooden wedge
#

bobby channel? unheard of

edgy flame
#

we would never

#

yeah I guess it's not a super secret anymore huh

wooden wedge
#

I wanna figure out a better banner than just a standing bobby tbh

edgy flame
#

yes

wooden wedge
#

I have some ideas

edgy flame
#

at least one screenshot of the apps actual functionality, plus cute horse art, plus the name?

#

I hate doing banners for anything XP the one i did for charon is sooo mid

wooden wedge
#

yeah, I might use one of the banner templates that pebble provided

#

with the watch

edgy flame
#

those are good

wooden wedge
#

white pebble time

twin schooner
edgy flame
#

screenshot of the AI doing something, and then draw the pony peeking around from behind the watch?

#

that way we can showcase functionality as well as cute pony

wooden wedge
#

not quite what I was thinking

#

but that's not a bad idea

edgy flame
#

for sure

#

for how opinionated I am, i want to actually contribute as well :p

wooden wedge
#

yeah, I get that

weary ether
#

I saw the new weather icons in the app today; such a delightful surprise! It's looking so good!!

twin schooner
#

From my point of viewโ€ฆ โ€œBobby. The smarter smartwatch โ€œ.

covert ingot
#

The up button does nothing on the home screen, so I would like to suggest it's prime as a candidate for an easter egg. Maybe it makes bobby blink or something

#

Mash it enough and it swaps bobby out with snowy ๐Ÿ˜†

finite night
#

The up button cycles through different Bobby hats/outfits: pirate bobby, wizard bobby, bobby with glasses + pipe, etc

#

and of course the bobby paid DLC outfits: mario bobby, metroid bobby, darth vader bobby

finite night
#

mentioned this a few days ago now and not crucial by any means, but would still consider updating the height of the text bubble to better fit the text (if that area at the bottom is not planned for use, or if the text area could grow/shrink according to how many lines the text is breaking to)

#

i think it was originally that tall because there was more text (maybe there still is, sometimes?)

karmic lion
#

There could never be more text because it can't wrap around the head

#

So the extra space will never be used

edgy flame
#

should we mess with the text, to that end? shrink the bubble or right-align the text or something?

karmic lion
#

The bubble should probably be less tall

edgy flame
#

probably fine as is

wooden wedge
#

I would move the text a bit down if possible

azure goblet
#

[text] can't wrap around the head
The implementation of graphics_draw_text() would in fact allow for this, but we didn't make the internal TextLayoutFlowDataPerimeter available via the SDK to keep things simple. But now that Pebble OS is open-source, one might be tempted to look at graphics_text_attributes_enable_screen_text_flow() and recognize that they could in fact get access to that functionality ๐Ÿ˜‰

edgy flame
#

your text flow logic is horrifyingly smart

karmic lion
#

Intriguing

wooden wedge
karmic lion
#

That pink is very pink

wooden wedge
#

yeeah, I should tone it down

azure goblet
#

So yes, looking at prv_walk_lines_down() the code seems to be compiled in unconditionally although I am not aware of any use-case besides Chalk support. But the design goal was indeed to allow for more complex text flow scenarios like the one you have here. You can be first to use it for real, @karmic lion !

wooden wedge
#

it seems like there is a lot of firsts in bobby

karmic lion
#

Are there?

wooden wedge
#

I'm mostly thinking about pdc in apps

karmic lion
#

It does use them a lot more than I'm aware of anything else third party trying to

#

Also the two PDCS animations

wooden wedge
#

indeed

#

I aligned that screenshot wrong somehow

azure goblet
#

(screenshot looks off, scaled with nearest neighbor?)

wooden wedge
#

very likely

#

I have a very good solution to this issue

#

the "your screenshot here" thing is the wrong aspect ratio

#

who designed this and why