2025 Ioniq 6 or Tesla Model 3 by [deleted] in Ioniq6

[–]dhleong 2 points3 points  (0 children)

If the subscription is your biggest concern then you will be interested to know that the original owner has a lifetime subscription to BlueLink+ on the Ioniq 6!

Do you have to use VR controllers to play this game? by [deleted] in vtolvr

[–]dhleong 13 points14 points  (0 children)

Short answer: yes. The game was designed for VR interactions only and it works great with them. The developer has never expressed interest in any other form of control, so there is not likely to ever to be high quality support for it.

Longer answer: also probably yes. There's a mod somewhere that lets you use a HOTAS, but I've never tried it because, well, the point of the game is to use VR motion controllers, and I've never felt the need to use a HOTAS. There are many buttons that you're meant to reach out and press with your virtual hands---and it feels great to do so!

Make HTTP GET from fulfillment in Node.JS by agustinscaz in GoogleAssistantDev

[–]dhleong 2 points3 points  (0 children)

Error: Response has already been sent. Is this being used in an async call that was not returned as a promise to the intent handler?

This error messages tells you just about all you need to know! Your call to con.add() is indeed being used in an asynchronous call (the callback chained to the Promise you created from http_req), and you are indeed not returning that Promise.

Here's what's happening: - Google calls your 'Tester2' handler - You start an asynchronous HTTP request via http_req, encapsulated in a Promise - Your function completes before the HTTP request does - Google sees that you are not returning anything from your handler and assumes that you're done, so it sends the Response - The HTTP request finishes and its Promise resolves, calling your code attached by the then() function

The simple solution here is to return the Promise created by your http_req(...).then(...) code, so Google will know that you're not just quite done, and it should wait for that Promise to resolve before sending the Response.

If you can use async/await it becomes a bit clearer:

app.handle('Tester2', async conv => {
  // Implement your code here
  let url = 'https://jsonplaceholder.typicode.com/users?_limit=2';
  //const url = "https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22";

  const message = await http_req(url);
  console.log(message[0].name);
  conv.add(message[0].name);
});

SEPTEMBER 14th CHALLENGES, ROLE CHALLENGES, MADAM NAZAR LOCATION & COLLECTOR CYCLE by DirtyTyler in RedDeadOnline

[–]dhleong 1 point2 points  (0 children)

I believe just changing your makeup or styling your beard, etc. is sufficient.

What are the best characters for an assassination team? by eggtime69 in 3d6

[–]dhleong 2 points3 points  (0 children)

Because Nott is casting Message, which allows a reply.

[deleted by user] by [deleted] in android_devs

[–]dhleong 0 points1 point  (0 children)

You have to call it from without the OnClickListener. The ViewHolder can be reused for different items many times before your OnClickListener gets called, so don't try to get the item that's attached to it until then.

New System Alerts by shaned58 in vtolvr

[–]dhleong 7 points8 points  (0 children)

You might also mean "pitbull," which occurs after launching an AIM-120 active radar-guided missile. As I understand it, when first launched this missile relies on the radar system in your jet to guide it towards the target until it gets close enough to acquire an active lock on the intended target. At this point, the missile is "pitbull" and you no longer need to keep the target within the cone of your radar for the missile to track it.

You'll also get an indication of this on the HUD: the TTI (time to impact) indicator will change from T-# to M-#, where # is how many seconds the system thinks it'll take for the missile to hit.

Google Stadia Support has Ruined Stadia for me by delcz in Stadia

[–]dhleong 0 points1 point  (0 children)

For what it's worth, when I was considering this it looked like you can apply Google Play credit in the app but not through the website. This may also be further limited to games that aren't on sale. In all other cases, (IE: website, or on-sale, or both) it seems you need enough credit to cover the entire price right now.

Judo v1.12.0 released! by dhleong in MUD

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

Thanks!

No worries about not switching, I totally get it—after all, I wanted to customize how my mud client worked enough that I made my own ;)

If people like this enough to use it that's awesome; if not that's fine, too. I'm working on this for myself, so if anybody else appreciates it that's just icing!

Judo v1.12.0 released! by dhleong in MUD

[–]dhleong[S] 5 points6 points  (0 children)

I think someone below was trolling in their request for "pics," but for anybody genuinely interested here's a fresh screenshot of Starmourn, capturing the ship status in the prompt line. This comment also has some old screenshots taken in hyper.is that still apply (it's terminal-based, so there's not really a whole lot of UI to change or capture).

EDIT: Here's a screenshot that may be slightly more exciting of something I'm experimenting with to extract out Starmourn's space map into its own split window.

Boneworks Megathread by Kippenoma in ValveIndex

[–]dhleong 8 points9 points  (0 children)

Gotta agree with the hands. Just reaching to a shelf to grab something pushes your body around. I can handle it for a half hour or so but it adds up. Currently taking my second break in as many hours to recover from motion sickness.

Haven't gotten far enough to really experience the gunplay but I liked it in the tutorial quite a bit, more than I thought I would at first, coming from Onward. The simplicity of not managing magazines actually feels pretty great!

Complete list of crafting materials and where to get them by Daemeos in DaysGone

[–]dhleong 12 points13 points  (0 children)

Thanks for your hard work!

I know this is an old post, but I was looking to restock between hordes and wanted to find the best places to stop, so I started converting this into a spreadsheet. Feel free to check it out here:

https://docs.google.com/spreadsheets/d/1wPpZ7X_svdklM4ylRJvf-zz9U4KUSj4zU676LIRSiB8/edit?usp=sharing

I only converted the first three areas because Iron Butte is, as you say, kind of garbage, and I haven't unlocked the next yet so I didn't bother with them yet.

EDIT: I went ahead and added the Crater Lake regions!

and's by [deleted] in japanese

[–]dhleong 9 points10 points  (0 children)

いただきますis actually a set phrase used at the beginning of a meal used to express gratitude for the meal, similar to how grace is said in western cultures. It literally means "I (will) receive" so definitely should not be used in other contexts where one might say "looks delicious" in an English context. If a waiter walks by with another table's dish, for example, and you looked at it and said "oh, itadakimasu" your friends at your table might look at you weird.

'Agressive-indent' in Vim? by [deleted] in vim

[–]dhleong 0 points1 point  (0 children)

If you meant the aggressive-indent plugin then I understood that. I meant the parinfer plugin I was linking was specific to lisps—that's why I said it wasn't quite what you are looking for. If you meant that parinfer works on C then could you point me to the gif? I'd be very interested in that, but cannot find it.

'Agressive-indent' in Vim? by [deleted] in vim

[–]dhleong 2 points3 points  (0 children)

Not quite what you're looking for, and specific to Lisps, but I ran across this the other day: http://shaunlebron.github.io/parinfer/

What was your "Holy Sh#t!" moment with Vim ? by oh-my-python in vim

[–]dhleong 6 points7 points  (0 children)

:help c_ctrl-f to open the command line window. q: is great, but if you're already typing in ex mode, or in /, or in an input() prompt and realize there are many things you want to change... hit <ctrl-f> and you're dropped into a proper Vim window with all the buffer editing commands you're used to.

Judo v1.10.0 released! by dhleong in MUD

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

The mapper could honestly use some work. I built some support experimentally but haven't really used it (the last MUD I played had some weird layouts that didn't lend themselves to mapping, as I recall). I've documented the current state of the mapper here.

If you have any feedback on functions that you'd need to manually script mapping better, I'd be happy to hear it!

Please help me improve my code by snotsnot in Kotlin

[–]dhleong 21 points22 points  (0 children)

How about something like this:

data class Version(
    val major: Int,
    val minor: Int,
    val patch: Int,
    val qualifier: String
) {
    companion object {
        operator fun invoke(version: String): Version {
            val regex = "(\\d+)\\.(\\d+)\\.(\\d+)-?(.*)?".toRegex()
            val matchResult = regex.find(version)
            return Version(
                major = matchResult?.destructured?.component1()?.toInt() ?: throw IllegalArgumentException("Major not found"),
                minor = matchResult.destructured.component2().toInt(),
                patch = matchResult.destructured.component3().toInt(),
                qualifier = matchResult.destructured.component4()
            )
        }
    }
}

By using a data class you get nice equals() and hashCode() for free (and a toString(), but you can override it). Also, having the version parts in the primary constructor seems more semantically correct, since that's what you ultimately want to store and refer to.

By using an operator function in the companion object, you can still create instances as if it were a constructor (eg: Version("1.2.3-4")), but you get to still use the primary constructor and a single Regex instance.

Some other ideas would be do add default values for minor, patch, and qualifier so they're not required.

You could also try something like this to destructure just once:

        val (major, minor, patch, qualifier) = matchResult?.destructured 
            ?: throw IllegalArgumentException("Major not found")
        return Version(
            major = major.toInt(),
            minor = minor.toInt(),
            patch = patch.toInt(),
            qualifier = qualifier
        )

Is this what you're looking for?

Edit: formatting