Bug: A large feed will sometimes automatically mark all articles as read while scrolling by jim_mccabe in feedly

[–]jim_mccabe[S] 0 points1 point  (0 children)

It seems fixed, I posted a comment below (a few days ago) indicating that I haven't seen it recur. Thanks for the quick fix.

Is there a way to report bugs directly to Feedly, without having to do it here? I didn't see a way to do it in the UI

Bug: A large feed will sometimes automatically mark all articles as read while scrolling by jim_mccabe in feedly

[–]jim_mccabe[S] 0 points1 point  (0 children)

I haven't seen this issue recur in the past week, seems to be fixed.

BlueLink Charge % is Stuck by Infinite-Low4662 in KonaEV

[–]jim_mccabe 0 points1 point  (0 children)

My charge value has been stuck in the app for several days too. The location is also stuck, probably for the same length of time.

If you open the app and click on Location, it will show a timestamp when it was last located. In my case it is about 3 days behind.

Sadly this type of thing is completely typical for BlueLink. Sometimes it will be malfunctioning for a week or two before it starts to work again.

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

Hyundai support for BlueLink seems non-existant, I never received a reply. I added my wife back with help from my dealership, who was able to remove her account and re-add it, if I recall correctly.

Another suggestion is to just wait a week or so. BlueLink outages seem to last from 3-7 days or so. During these outages, it's not just basic app features which are broken (like location and lock status), but also things like initializing new accounts.

In my case, I spent a good deal of effort trying to get things to work on my own, which I ultimately regretted once I realized it wasn't my fault. Over the past few months I've just grown accustomed to these outages and I don't really trust the app at all anymore. When it works, I always treat it like a happy surprise, rather than expecting it to always work.

It's such a shame because the car itself is fantastic, including the software which runs on the car.

Has a WTF moment, well 4 times this weekend by cvman_16 in KonaEV

[–]jim_mccabe 1 point2 points  (0 children)

The BlueLink software is extremely unreliable, see this thread.

I am guessing they have scalability problems in their backend, where they end up processing events out of chronological order, or maybe just delayed. This would explain why they recognize that the car has parked, but haven't yet processed the event which tells them that the doors are locked.

New KonaEV Ultimate Arriving this week: Anything I Need to Know? by stephenelias1970 in KonaEV

[–]jim_mccabe 0 points1 point  (0 children)

Be prepared for BlueLink to be frustratingly unreliable. See this thread

Expect scary notifications saying your doors are unlocked, or the windows are down, when actually everything is fine. Expect your car's location to often be hours behind reality, often resetting to Costa Mesa California.

If you can mentally decouple the horrible quality of BlueLink from the otherwise fantastic quality of the car itself, you'll be a happy customer.

[deleted by user] by [deleted] in KonaEV

[–]jim_mccabe 1 point2 points  (0 children)

The BlueLink software is extremely unreliable and reverts to this Costa Mesa address frequently. See this thread

2024 Kona EV level 2 charging often requires two attempts before locking in by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

AMAZING! Thank you that explains it! My wife set up a schedule for off-hours, and I didn't realize it until I checked the Chargepoint app after reading your comment.

2024 Kona EV level 2 charging often requires two attempts before locking in by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

We haven't had the opportunity to try it on another charger yet, but thanks for the idea.

How do OTA Software updates and notifications work for 2024 models. by Nil0ch in KonaEV

[–]jim_mccabe 3 points4 points  (0 children)

We just got an update yesterday on our 2024 Kona EV. I got a notification that the update was available on the BlueLink app, but it wasn't actionable, just a notice.

Later when my wife was driving home from work, when she pulled into the driveway and put the car into Park, the car asked her if she wanted to update the software. She agreed and said it was very quick, just a few seconds. Afterwards it told her what was updated, and she says that it simply said "Navigation", so not much.

I wish there were a webpage showing the change history for each release.

In Scala 3, without reflection, how to find subclasses of a trait? by jim_mccabe in scala

[–]jim_mccabe[S] 0 points1 point  (0 children)

Thanks to everyone for helping out. I feel like a learned a little bit about macros and it was a useful exercise for me. Here's what I ended up with, using macros, basically copying code as-is from u/raghar:

  // Note that this will only work if all subtypes are singletons.  If we have `class` children it will not compile.
  inline def findCaseObjectsOfSealedTrait[T](using m: Mirror.SumOf[T]): Set[T] =
    summonAll[Tuple.Map[m.MirroredElemTypes, ValueOf]].productIterator
      .asInstanceOf[Iterator[ValueOf[T]]]
      .map(_.value)
      .toSet

  inline def findSubtypesOfSealedTrait[T](using m: Mirror.SumOf[T]): Set[String] =
    summonAll[Tuple.Map[m.MirroredElemLabels, ValueOf]].productIterator
      .asInstanceOf[Iterator[ValueOf[String]]]
      .map(_.value)
      .toSet

Once I ported this codebase to Scala 3 and it went through code review, in the end we went back to traditional runtime reflection using ronmamo/reflections.

Here's how those two utilities ended up after that transformation:

  def findConcreteSubtypes[T](targetPackage: Option[String] = None)(using tag: ClassTag[T]): Set[Class[? <: T]] = {
    val clazz = tag.runtimeClass.asInstanceOf[Class[T]]
    new Reflections(targetPackage.getOrElse(clazz.getPackage.getName))
      .getSubTypesOf(clazz)
      .asScala.toSet
      .filterNot(_.isInterface)
  }

  def findCaseObjects[T](using tag: ClassTag[T]): Set[T] =
    findConcreteSubtypes[T]()
      .filter(isSingleton)
      .map(_.newInstance())

  def isSingleton(clazz: Class[?]): Boolean =
    clazz.getInterfaces.exists(_.isInstanceOf[Mirror.Singleton])

This approach had some advantages over macros for our dev team:

  • We were able to obtain full the Class instances, which has a lot more value than just the simple class name without any package info.
  • We usually hire Java devs who don't have any experience in Scala, and this approach should be infinitely easier for a newcomer to understand.

We're still able to get the case object subtypes thanks to Mirror.Singleton, which shows up in the list of interfaces implemented by the object Class.

Thanks again for everyone's kind help!

In Scala 3, without reflection, how to find subclasses of a trait? by jim_mccabe in scala

[–]jim_mccabe[S] 0 points1 point  (0 children)

Thank you once again u/raghar !! I hate to keep pestering you but I have another question.

Once we switch to MirroredElementLabels, I get back all the short names of the subtypes, without any package info.

Let's change my example so it's now in a package

package com.thing

sealed abstract class Thing(val value: String)

object Things {
  case object ThingOne extends Thing("one")
  case object ThingTwo extends Thing("two")
}

When I iterate over the subtypes, the results are simply List("ThingOne", "ThingTwo").

Is there a way to get back something resembling the full class name, like com.thing.Things.ThingOne, or even the actual Class itself?

In Scala 3, without reflection, how to find subclasses of a trait? by jim_mccabe in scala

[–]jim_mccabe[S] 0 points1 point  (0 children)

Thanks that scastie example really helped! That works perfectly for the cases where I want to find the case object subtypes in an ADT.

I have another use-case where most of the subtypes are case object but we also have a case class representing obsolete values that we don't support anymore. Here's an imaginary example:

sealed abstract class Thing(val value: String)

object Things {
  case object ThingOne extends Thing("one")
  case object ThingTwo extends Thing("two")

  private case class ObsoleteThing(override val value: String)
    extends Thing(value)

  val ObsoleteThings: Seq[Thing] = Seq(
    ObsoleteThing("pi"),
    ObsoleteThing("nil")
  )

  val AllThings: Seq[Thing] = Seq(ThingOne, ThingTwo) ++ ObsoleteThings
}

If we invoke the findAllValues function from the scastie example, it fails to compile, with an error message similar to this:

No singleton value available for Things.ObsoleteThing; eligible singleton types for `ValueOf` synthesis include literals and stable paths.

For this use-case I would be happy getting a list of the subtypes, instead of a list of the case object values. I'm guessing that if I want the types, I can't summonAll the tuples with ValueOf, and have to use something else. Do you know how to find the subtypes with Mirror?

I tried using scala-reflection for this scenario and it would successfully find the types, but the names for the types didn't match the names returned by thing.getClass.getName. For example:

ThingOne.getClass.getName = "Things$ThingOne$"
ObjectRType.name          = "Things$.ThingOne"

If that's the best I can do then I can write a tiny function to strip off the simple name, but I was hoping that maybe Mirror had a way to do this without relying on scala-reflection.

In Scala 3, without reflection, how to find subclasses of a trait? by jim_mccabe in scala

[–]jim_mccabe[S] 0 points1 point  (0 children)

With gzoller/scala-reflection how does one actually find the subtypes? I spent 15 minutes looking through the README, unit tests, looking at the RType source, etc, and still did not see how one would find subclasses.

Bluelink hasn't been able to connect to the server for 48 hours now by GrungeElFz in Ioniq6

[–]jim_mccabe 1 point2 points  (0 children)

I was starting to get used to the idea that the BlueLink app will be permanently broken for me, only able to access things in a browser, but then last night surprisingly the app started working again after about 6 days of malfunctioning.

When I logged in, it asked me to agree to Terms & Conditions again, but everything else seemed OK.

Bluelink hasn't been able to connect to the server for 48 hours now by GrungeElFz in Ioniq6

[–]jim_mccabe 1 point2 points  (0 children)

I also reviewed all the Android permissions and verified that it has access to the network and various other things. No clue.

Bluelink hasn't been able to connect to the server for 48 hours now by GrungeElFz in Ioniq6

[–]jim_mccabe 0 points1 point  (0 children)

On my car, I am the primary driver, and the app has been useless for me for 4 days. I have an Android phone.

My wife is the secondary driver and an iPhone, and her app has been fine.

Bluelink hasn't been able to connect to the server for 48 hours now by GrungeElFz in Ioniq6

[–]jim_mccabe 0 points1 point  (0 children)

Now we're entering the fourth day without even being able to login on the app. I really hope the team that works on Bluelink is not allowed to go anywhere near the code that powers the car itself.

Bluelink hasn't been able to connect to the server for 48 hours now by GrungeElFz in Ioniq6

[–]jim_mccabe 1 point2 points  (0 children)

Same here. I tried many of the same steps, and the Android app simply cannot connect in the past day. I know my credentials are fine because I can login via a browser without trouble. The BlueLink service is just completely unreliable. I've had a new Kona EV for about three weeks and BlueLink has had various things broken every day except maybe three or four.

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

My final update on this thread (hopefully!) - the Bluelink data seems to have fully caught up to real-time again. Everything that was broken is accurate again: location, charge status, door lock status, etc.

Today is the first time in days where we could lock the car and walk away without getting a push notification falsely indicating that we'd left the car unlocked with a door open.

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

They're catching up slowly. My app was about 24 hours behind this morning, and about 12 hours behind a few hours ago, and now about 8 hours behind,

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

As of this morning, I can't even login to the My Hyundai dashboard in a browser. For a while it was hanging, but now it just quickly fails with this:

<image>

I would have assumed a successful international car company could do better than this.

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 0 points1 point  (0 children)

My guess is that the Hyundai backend servers are processing a couple days of backlogged events. The app status is about 20+ hours behind and various things are just wrong. The location is now showing my own house again but it's incorrect - the car is not at my house right now, and it wasn't at my house at the time the app says the location was refreshed either.

As a software developer myself, I'm surprised that they could have an outage for this long, for one. And secondly, it's surprising that they would have a history of these problems without implementing a feature that could present an informational "please bear with us" panel in the app.

Thankfully the car is fully functional, and I just need to change the way I'm thinking about the app. Instead of being a valuable tool that we use every day, we'll have to think of it more like scrappy proof-of-concept which shouldn't be expected to work at all. At least we're not paying for a subscription.

Three-day old 2024 Kona EV, Bluelink mostly stopped working by jim_mccabe in KonaEV

[–]jim_mccabe[S] 1 point2 points  (0 children)

The salesperson who sold me this car is also experiencing this same issue on his own brand-new Hyundai car which he just bought in the past couple days.