Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)SA
salvador @lemmy.world
Posts 14
Comments 98
The Spy War: How the C.I.A. Secretly Helps Ukraine Fight Putin
  • They've just confirmed themselves that the reason that Russia started the war for has been legit and justifiable all along. As well as the words of Russia which has said this dozens of the times.

    Better off and easier for Putin, from now on.

  • How to obtain a) cached b) live GPS location properly? What's the right approach?

    I have an app which polls a remote server by sending to it its cache GPS location. Sometimes a remote server will ask for live location and an app must send it to it.

    ---

    ``` object MyLocationManager { val providers = listOf( LocationManager.GPS_PROVIDER, "fused", LocationManager.NETWORK_PROVIDER, LocationManager.PASSIVE_PROVIDER, )

    fun getCached(ctx: Context, locationManager: LocationManager): Location? { for (provider in providers) { when (provider) { "fused" -> { val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx) val fusedLocationTask = fusedLocationClient.lastLocation val fusedLocation = getTaskResult(fusedLocationTask) if (fusedLocation != null) { return fusedLocation } } else -> { if (locationManager.isProviderEnabled(provider)) { val lastKnownLocation = locationManager.getLastKnownLocation(provider) Log.d( TAG, "Provider: $provider, Last Known Location: $lastKnownLocation" )

    if (lastKnownLocation != null) { return lastKnownLocation } } } } }

    return null }

    fun getLive(ctx: Context, locationManager: LocationManager): Location? { val locationListener = object : LocationListener { override fun onLocationChanged(location: Location) {

    //This works correctly! // //1) how to save its result? How to save it into cache? //2) or how to return it from here? Log.d(TAG, "onLocationChanged: ${location.latitude}, ${location.longitude}")

    stopLocationUpdates() }

    private fun stopLocationUpdates() { val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx)

    try { // Stop location updates fusedLocationClient.removeLocationUpdates(locationCallback) Log.d(TAG, "Location updates stopped") } catch (e: SecurityException) { Log.e(TAG, "SecurityException while stopping location updates: ${e.message}") } }

    private val locationCallback = object : LocationCallback() { override fun onLocationResult(locationResult: LocationResult) { super.onLocationResult(locationResult) val location = locationResult.lastLocation if (location != null) { onLocationChanged(location) } else { Log.e(TAG, "Received null location in onLocationResult") } } } }

    for (provider in providers) { when (provider) { LocationManager.GPS_PROVIDER -> {

    //obsolete, in the last Android versions val _locationRequest = LocationRequest.create() .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(0) .setFastestInterval(0)

    val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx) val locationResult: Task = fusedLocationClient.getLocationAvailability()

    if (!Tasks.await(locationResult).isLocationAvailable) { return null }

    val locationTask: Task = fusedLocationClient.getCurrentLocation( LocationRequest.PRIORITY_HIGH_ACCURACY, null )

    return Tasks.await(locationTask) }

    "fused" -> { val apiAvailability = GoogleApiAvailability.getInstance() val resultCode = apiAvailability.isGooglePlayServicesAvailable(ctx)

    if (resultCode == ConnectionResult.SUCCESS) { val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx) val fusedLocationTask = fusedLocationClient.lastLocation val fusedLocation = getTaskResult(fusedLocationTask) if (fusedLocation != null) { return fusedLocation } } else { Log.w(TAG, " Google Play Services aren't available, can't use fused") }

    }

    else -> { if (locationManager.isProviderEnabled(provider)) { locationManager.requestSingleUpdate( provider, locationListener, Looper.getMainLooper() )

    val lastKnownLocation = locationManager.getLastKnownLocation(provider) if (lastKnownLocation != null) { return lastKnownLocation } } } } }

    return null } }

    ```

    ---

    An issue is that the code for obtaining GPS location doesn't work properly. Firstly, I don't know whether the approach in the code is correct. Secondly, I don't know how to properly to return the GPS coordinates from a callback -- see the comments. Thirdly, I don't know how to force it to store the latest coordinates that it's obtained into cache.

    And there're some functions that's been derprecated in the latest versions of Android, particularly in Android 10.

    How to do all of this?

    My device is rooted.

    0

    How to make my Android service run forever? On a rooted phone

    I have a rooted Android 10. And I've written a service (off the class Service) which I want to run under too, in background. A service uses a microphone and location. It's written in Kotlin.

    I've not found any information of how to run a service on a rooted device under root. I've found some, about running some commands in a service (code) itself under root, though, but it may be only a part of what I need.

    How to do it?

    Essentially, I want my service to run forever, with elevated preveligies, get itself restarted if it fails, gets killed by Android.

    ---

    Also, I've tried to copy it into /system and /system/init directories, but I haven't been able to, due to "read-only file system". Nor have I been able to remount it to make it writteable. I've managed to make the / writteable, but it didn't allow me to copy my service in /system nonetheless.

    5
    Putin could attack NATO in ‘5 to 8 years,’ German defense minister warns – POLITICO
  • What else to do? NATO is the one who been encroaching to the Russian borders for decades, even though it promissed it would never expand.

    The good part is most of the arsenal of NATO has been destroyed and used up on Ukraine. Perfect timing.

  • worldnews @sh.itjust.works salvador @lemmy.world

    Russia's economic growth shows Western sanctions very effective - for Russia itself

    www.marketscreener.com Russia's economic growth shows Western sanctions ineffective, says fund manager Amundi's CIO

    PARIS, Nov 23 - Europe's largest fund manager Amundi expects the Russian economy to grow three times faster than the euro zone's in 2024, its chief...

    Russia's economic growth shows Western sanctions ineffective, says fund manager Amundi's CIO
    1

    It’s Time to End Magical Thinking About Russia’s Defeat

    www.wsj.com Essay | It’s Time to End Magical Thinking About Russia’s Defeat

    Putin has withstood the West’s best efforts to reverse his invasion of Ukraine, and his hold on power is firm. The U.S. and its allies need a new strategy: containment.

    Essay | It’s Time to End Magical Thinking About Russia’s Defeat
    10

    It’s Time to End Magical Thinking About Russia’s Defeat

    www.wsj.com Essay | It’s Time to End Magical Thinking About Russia’s Defeat

    Putin has withstood the West’s best efforts to reverse his invasion of Ukraine, and his hold on power is firm. The U.S. and its allies need a new strategy: containment.

    Essay | It’s Time to End Magical Thinking About Russia’s Defeat

    The US and Europe admit that they're been believing in their own propaganda about Russia and Putin.

    41

    [WireGuard] Do I have to use my own DNS on a VPS in order to avoid DNS-leaks?

    I connect to a WireGuard installed on my VPS. Then I go to a random VPN service marketing page on which I'll discover that my DNS leaks. And which is correct because I've specified DNS = 1.1.1.1 in [Interface] for all the Peers.

    In order to avoid DNS leakadge, do I have to a) run DNS server on the a VPS -- along with WireGuard, and b) use this one and only it, instead of 1.1.1.1?

    ---

    But if so, how will this possibly work?

    [Peer] PublicKey = [....;....] PresharedKey = [......] Endpoint = wg.my_domain123.com:51820

    In order to resolve Endpoint of my VPS to begin with, other DNS server will have to be used -- by IP. But there'll be none because I'll use a DNS on my VPS instead of 1.1.1.1. In other words, it'll be a circular dependency.

    23

    Default argument which is the 1st one and not the only one. How?

    In a third-party project, in the models, I've encountered functions like this:

    ``` def changeset(model \\ %MODULE{}, params) do model |> cast(params, @required_fields ++ @optional_fields) |> validate_required(@required_fields) end

    ```

    How can a function have a default argument which is both a) first and b) followed by a mandatory one?

    What's interesting, they work properly.

    1

    "setfacl --modify" will get reverted after a reboot

    A docker, when run for the 1st time, won't do so:

    ``` $ docker-compose -f docker-compose.local.yml up -d

    permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Doxygen%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied

    ```

    I'll run this command

    $ sudo setfacl --modify user:user1:rw /var/run/docker.sock

    which will resolve the issue. However, after a reboot, the issue will arise again.

    Why? How to make the change permanent?

    3
    www.reuters.com Russian services activity grows in Sept for eighth month running -PMI

    Activity in Russia's services sector expanded for the eighth month running in September, boosted by a sustained rise in client demand and new export orders, which rose at their fastest pace on record, a business survey showed on Wednesday.

    Russian services activity grows in Sept for eighth month running -PMI

    "Sanctions from hell" are working

    5
    www.aa.com.tr Russia calls Gaza hospital attack war crime, says US ultimately responsible

    'The horrific attack on a hospital in the Gaza Strip is clearly a war crime,' says deputy head of Russian Security Council - Anadolu Ajansı

    Russia calls Gaza hospital attack war crime, says US ultimately responsible
    16

    WireGuard client on Android -- no website will load, although traffic gets exchanged

    I've set up WireGuard on a VPS.

    A client on Linux desktop works with no issues.

    The one on an android phone too, but not completely. Namely, TX and RX get updated, "handshake" and "last connected" with a phone on a server gets updated too, as well as on a phone itself. However, I can't open any single website.

    However, Telegram, for instance, works well. Another android app too, it appears. But all the rest of the apps don't, not do the Firefox and Chrome.

    What's the matter?

    1
    www.reuters.com What is the Burevestnik missile that Putin says Russia has tested?

    President Vladimir Putin said on Thursday that Russia has successfully tested its new Burevestnik missile.

    What is the Burevestnik missile that Putin says Russia has tested?

    Not Russia, Putin! has created yet a more powerfull missle.

    Yeah, Putin himself -- during the breaks for lunch whilst in Kremlin.

    2

    How to import a backup of Maildir into Mailcow instance?

    I have a backup of one of my email accounts in the Maildir format. I made it manually, and it’s not from a Mailcow instance.

    How to import such a backup into a Mailcow? Will I also have to create a domains and mailboxes that exist in a backup in Mailcow first?

    I’m aware of the 2 import/export bash scripts of Mailcow, however, can they be used in this case?

    3

    How to change and re-build WiFi module?

    I need to a) make a simple change and b) re-build WiFi module

    How to do it? Firstly, where is in the repo the code of the WiFi module?

    And how to compile the Wifi module only?

    0