Supporting OpenGL Screen Capture by Third Party Applications

A standard requirement for an OpenGL application to support screen capture is to ensure that the read framebuffer is pointing to the backbuffer before swapping buffers. The code for this is:

glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);

Screen capture software uses the active framebuffer for reading, and ideally that software should not alter framebuffer state and instead assume that the target application already has the read framebuffer set to the desired capture buffer when swapping buffers.

If the read framebuffer is not set to the back buffer on swap, an intermediate image will be captured instead of the final image.

This requirement is specific to screen capture and overlay injection but is not otherwise a requirement for normal rendering, since framebuffer state does not affect buffer swapping and a render pipeline may never need to read from the back buffer.

Turn a windows application to dark mode without supporting it?

I’m trying to use an application in Windows 10 in dark mode, I know that is possible in Settings, but only for apps that support it. I’m wondering why this is possible in Android 10 to force app to be darker even if it doesn’t support it. I did a little research on google, but no answers.

Is there any method on Windows 10 to use programs that doesn’t support Dark mode, I really want to use my pc overnight but can’t use this applications :(.

Thanks a lot .

data structures – kdtree or balltree supporting insertion/deletion

data structures – kdtree or balltree supporting insertion/deletion – Computer Science Stack Exchange

appsec – What are the risks to an app in supporting older iOS versions?

Anything you get a client to install is out of your hands. It could be installed in an emulator or in a reverse engineering rig or on a rooted device. Or on an older and vulnerable OS. This means that the app is outside of your control and anything can happen to it.

It can be decomposed, traffic can be inspected, encryption can be broken. Either intentionally by the user or by a malicious process. The device’s controls limit how far that can go, but it cannot prevent everything.

So, the security risks to your app and the data on the app is not greater for running on an old OS. There may be other UX and operational risks, but that would be off-topic.

cms – Contract Management supporting e- signature

My contract management team recently lost a set of important documents from our cabinet last month. Ever since then I decided to avoid keeping hard copies of all contract agreements and documents. We already knew the urgency in digitizing all contract management processes. But we hesitated for the change because we thought the contract signing process becomes a headache.

The electronic signature facilities were around for many years now, but I was not convinced until this happened. While searching for an affordable yet practical contract management software, I found Dock 365. Their solution was nice and what I liked about them was the absence of any fancy additions (which is clutter in my experience).

We need contracting software that is supporting more than 1 electronic signature provider. I would like to make a list of such providers and know which all e-signature solutions are good at this point. DocuSign and Adobe Sign are good options I know. Looking forward to getting more suggestions.

Thank you.

update – How to “succinctly” detect changed values in the PostgreSQL’s upsert (on conflict) where clause while supporting null changes?

We maintain a large data warehouse implemented in PostgreSQL and python. One very common pattern we do is to make upserts, and log when things were updated. We have some unique key my_key and values, say, my_uuid, my_text, my_int, my_date. If any any of those values change for a given my_key we would like to update the row. That’s fine, and we have a pattern which works well:

insert into my_table (
    my_key,
    my_uuid,
    my_text,
    my_int,
    my_date
)
select
    some_key,
    some_uuid,
    some_text,
    some_int,
    some_date
from some_table
on conflict (my_key) do update set
    some_uuid = excluded.some_uuid,
    some_text = excluded.some_text,
    some_int = excluded.some_int,
    some_date = excluded.some_date,
    update_timestamp = now()
where 
    coalesce(my_table.some_uuid, uuid_nil()) <> coalesce(excluded.some_uuid, uuid_nil())
    or coalesce(my_table.some_text, '') <> coalesce(excluded.some_text, '')
    or coalesce(my_table.some_int, -1) <> coalesce(excluded.some_int, -1)
    or coalesce(my_table.some_date, '3000-01-01'::date) <> coalesce(excluded.some_date, '3000-01-01'::date)

The last on conflict ... where clause is important, because it makes sure that the update_timestamp is only updated when there are changes. It also makes sure we don’t update rows unnecessarily, improving performance.

Anyway, we often have an issue with the coalesce() logic. The reason it exists in this pattern is to support the value going to and from null. Let’s take the following example:

coalesce(my_table.some_text, '') <> coalesce(excluded.some_text, '')

This works fine, and produces the following results for a comprehensive list of test cases:

select coalesce('a', '') <> coalesce('a', '')  --> false
union all
select coalesce(null, '') <> coalesce(null, '')  --> false
union all
select coalesce('a', '') <> coalesce('b', '')  --> true
union all
select coalesce(null, '') <> coalesce('b', '')  --> true
union all
select coalesce('a', '') <> coalesce(null, '')  --> true

That is, it is only true when the value actually changed. However, what happens if a value genuinely is empty string ''? Then it won’t update.

This means we need to be creative about choosing the dummy value '' such that it isn’t a value which would naturally occur. We could just invent a keyword which is unlikely to occur in production. But I’d rather find another pattern which doesn’t have this drawback.

What options exist to do this susinclty giving the same change “truth table” I showed above? We could always use case when ..., but it becomes extremely verbose. We need something which is easy to write and easy to read. A row can often include 5-15 value columns

Are there any alternatives which could do an upsert without the drawback of the pattern we are using today?


The following can be used as a testbed to find a suitable pattern:

select
    v1, v2, expected,
    COALESCE(v1, '') <> COALESCE(v2, '') as current_version,
    COALESCE(v1 <> v2, true) as candidate_version
from (
    select 'a' as v1, 'a' as v2, false as expected
    union all
    select null as v1, null as v2, false as expected
    union all
    select '' as v1, null as v2, true as expected
    union all
    select null as v1, '' as v2, true as expected
    union all
    select 'a' as v1, null as v2, true as expected
    union all
    select null as v1, 'b' as v2, true as expected
    union all
    select 'a' as v1, 'b' as v2, true as expected
) q

Returning:

v1     v2     expected current_version candidate_version
a      a      false    false           false
null   null   false    false           true
''     null   true     false           true
null   ''     true     false           true
a      null   true     true            true
null   b      true     true            true
a      b      true     true            true

new social media supporting panel

Hi dear forum members,

I would like to introduce you to our new social media supporting panel socialocean.net you can buy likes, followers, web traffic, views and more it is the best panel to support your social account. you can also earn 1$ by signing up and you can also earn 25% cashback by adding funds to your account.

please let me know how we did

Thank you

[​IMG]

bitcoin core – Why does bitcoind have to listen to the public internet when supporting lnd?

I have been part of experimenting with setting up a system to send and receive lightning network payments. The system uses bitcoin-core (bitcoind) and lnd. Initially, the system was set up on a home network, behind a NAT, so neither bitcoind nor lnd could listen for incoming connections from the public internet. In this initial configuration, it was possible to use lnd to send payments, but it could not receive incoming payments.

In the process of troubleshooting, we moved the bitcoind to a server outside the NAT, so it had a public IP number and opened the port 8333 for inbound connections. The lnd server is still behind the NAT, and it does not have any ports opened for inbound connections. Suddenly the system started to work and we could receive incoming lightning networks payments.

So we solved the problem, but I’m kind of baffled as to why this actually works. Was this just a fluke? Or is there a reason why a bitcoin node needs to be able to receive inbound connections in order to properly support a lightning network node?

DreamProxies - Cheapest USA Elite Private Proxies 100 Cheapest USA Private Proxies Buy 200 Cheap USA Private Proxies 400 Best Private Proxies Cheap 1000 USA Private Proxies 2000 USA Private Proxies 5000 Cheap USA Private Proxies ExtraProxies.com - Buy Cheap Private Proxies Buy 50 Private Proxies Buy 100 Private Proxies Buy 200 Private Proxies Buy 500 Private Proxies Buy 1000 Private Proxies Buy 2000 Private Proxies ProxiesLive.com Proxies-free.com New Proxy Lists Every Day Proxies123.com Proxyti.com Buy Quality Private Proxies