HNHacker News
TopNewBestAskShowJobs

cosmie

3,114 karma · joined December 1, 2012

Previously one man data management and BI department for a B2B lead gen company. Currently digital analytics manager for a marketing agency, helping CPG clients understand how to better manage their digital assets to engage consumers.

Always open for interesting chats, opportunities, and consulting work: hn@gsdanalytics.com

submissionscomments
cosmie··on Arthritis drug that cost $198 in 2008 is now more than $10k
There's also reginal variability in this.

My experience with a dermatologist (in the US) ended up being the same as you anticipated it being. Trying to book a new patient appointment myself I was getting quoted availability 2-3 months out.

I was able to get that sped up a bit by having my primary doctor refer me (which my insurance didn't require) and set up the appointment on my behalf. But even then, it ended up being almost 6 weeks out.

I've also had to book GI appointments in a few different locations, and have had some get me in within a week and others that had a multi-month wait.

And some insurance plans in the use are HMO plans[1], which generally have the requirement of going through your primary care doctor for everything and requiring a referral from them to see other physicians.

The biggest gripe I have about the US healthcare system is how impacted it is by employer decisions. Having decent coverage today doesn't mean the coverage will stay decent, even if you stay with the same employer. I've had awesome insurance unexpected swapped out for crap insurance due to an acquisition, had good plans that I took into account when determining whether to take a job disappear the year after during open enrollment season, had the "same" plan change year to year in subtle but impactful ways (like keeping per-person deductibles the same, but adding a condition to meet a minimum family-level deductible in addition to any individual before you actually hit the threshold).

[1] https://www.investopedia.com/terms/h/hmo.asp

cosmie··on How Facebook is trying to recover the money it lost during the outage
This. Facebook makes available a lot of configurable parameters around bidding and budgeting[1].

If you've set a campaign-level budget, Facebook's system paces delivery to spread that budget from the start date to the end date. It automatically adjusts pacing to fluctuations in delivery, this 6 hour outage is just a drastic version of that, where there was zero delivery across the board vs. more localized fluctuations in consumer behavior that usually impact pacing for individual advertisers.

So it has to accelerate delivery for the remainder of the campaign to compensate, and since it's doing that for all ads with this type of budgeting configuration it's resulting in an auction grab for available impressions and temporarily bumping up CPMs as a result.

Which isn't necessarily a positive for advertisers, but sounds like their system doing what it normally does, and just having some unanticipated second order impacts when faced with an extreme event (compensating for global lack of delivery for 25% of an entire day).

If your budgeting/bidding/optimization configuration doesn't require a specific spend within a specific timeframe, you're not going to see this sort of acceleration. But you will see higher CPMs due to the increased auction activity from others having their pacing accelerated. And they weren't collecting FB pixel data for 6 hours either, so conversion activity will also be underreported and show higher CPAs. But CPA-based optimization configurations are still in place and doing what they normally do, and frequency caps if you use them are still limiting how many times your ad will show to the same person. So even those seeing accelerated delivery and not wanting to could adjust their ads' settings to avoid it.

> The "accelerated delivery" that Facebook quoted in its response only applied to the remainder of the day that the outage took place -- not future days as the article suggests.

It does actually impact future days, just to a far lesser extent than day-of. Pacing jacked up the day of to attempt to compensate for expected pacing that day, but for those that didn't achieve it they'll continued seeing accelerated delivery beyond that to hit the spend target by end of campaign. Plus second order effects as their optimization see-saws around until things settle back down.

[1] https://www.facebook.com/business/help/1619591734742116

cosmie··on One Stuck Box of Fertilizer Shows the Global Supply Chain Crisis
> I looked and couldn't find a name for it

The bullwhip effect[1]. Although in this instance, it's inverted from its traditional direction. Generally the closer you are to the consumer/end product in the supply chain, the less impacted you are by the bullwhip effect. Tiny deviances between your actual and forecasted/expected demand can result in reactionary changes to materials orders, which grow in magnitude and volatility as you follow the downstream supplier chain. So the whip goes from those closest to the consumer upstream to those further away.

Car companies canceling chip orders at the beginning of the pandemic are an example of what's generally considered the bullwhip effect. Suppliers generally have little choice but to put up with the volatility, because if they don't they risk their customer sourcing a different supplier that _will_ and losing the account entirely.

That said, the power dynamics now are different. Many suppliers have more demand than their ability to service it right now, either because of constrained materials supplies themselves, lack of manpower, or lack of additional capacity. And those capacity constraints are hitting suppliers industry wide, so the "upstream" consumers of those materials have no alternatives to source. Hence why the bullwhip is going in reverse from how it typically does, where the ones closest to the end product are the ones at the mercy of the suppliers they source materials from.

[1] https://en.wikipedia.org/wiki/Bullwhip_effect

cosmie··on The Clickbaitification of Netflix
> i do not understand snapchat and their business model.

Ads[1]. Initially it was just promotional lenses/filters and required a high touch process and substantial media spend commitment. But looking at that site, they now have a full on self-service ad platform with minimal spend commitment, helper software to make lenses/filters, and have added several other ad formats beyond that one.

So they've essentially monetized the same way as every other "free" platform has – capitalize on all the eyeballs they have to siphon off a cut of marketing dollars for themselves.

[1] https://forbusiness.snapchat.com/

cosmie··on Lambdas as values in Excel
There are a few third party libraries/projects that are useful for that situation. Libpq[1] is one, and this[2] project is another. The readme for that second one includes links to several other M/PQ related projects.

[1] https://libpq.ml/

[2] https://github.com/KiaraGrouwstra/pquery

cosmie··on Lambdas as values in Excel
> I wonder if that would work?

I can't say for sure, but likely not. It sounds like your client may have been relying on one of the optimization add-ons that are automatically installed with Excel[1][2], rather than actual Excel features. The company that makes those add-ins has developed new versions that work with Excel Online, but add-ins in Excel Online execute in the local browser context. So I don't think they're loaded/usable when you create a headless workbook session via the Graph API (although I've never actually tried to do that, so could be wrong).

That said, Frontline Systems (the company that makes those Excel add-ins) does have a web API[3]. The optimization models there are a superset of the capabilities in the Excel add-ins, so your client's Excel optimization model could likely be ported over to that pretty easily.

[1] https://support.microsoft.com/en-us/office/use-the-analysis-...

[2] https://support.microsoft.com/en-us/office/define-and-solve-...

[3] https://rason.com/

cosmie··on Lambdas as values in Excel
If you're in the Office 365 ecosystem, you can do just that (in a sense).

The MS Graph API has a workbook endpoint[1] that lets you do nifty stuff with Excel workbooks hosted in OneDrive or Sharepoint. Pair that with non-persistent sessions[2], and you basically get an Excel workbook as a serverless runtime environment.

If you structure the workbook with this type of use in mind, it works really handily. Create a non-persistent session, updated named items with the input values, run an explicit calculate on the workbook, and grab whatever result you're after (a table, named range, pivottable, chart graphics, etc), close the workbook session (or let it expire).

If you need to keep the data around for historical reasons, you can follow the same process but copy the template workbook and create a persistent session against the copy, so the inputs/outputs are saved.

You can also leverage Power Automate[3] (Microsoft's version of Zapier) to create an actual serverless function for your specific workflow that can accept your inputs, call the appropriate Graph endpoints for those steps, and return the output. Although the licensing gets funky, most people with an Office 365 license have some level of usage included already.

It's definitely not a solution architecture you want to use for anything mission-critical or high-volume, but it's super handy for anything that's going to be Excel based anyway and you'd like to minimize the surface area for human error during the process. Also nifty for situations where a process/scenario/PoC is still being matured and developed in Excel, but you need to use it for production use cases. Create a stable input/output interface with a Power Automate workflow (or other serverless interface) that consumers can work against, then continue your Excel-based process development without disrupting them. At some point when it's stable/mature, port it over to code that maintains that same input/output structure and cut over the downstream consumers to the new endpoint.

[1] https://docs.microsoft.com/en-us/graph/api/resources/excel

[2] https://docs.microsoft.com/en-us/graph/api/workbook-createse...

[3] https://powerautomate.microsoft.com/en-us/

cosmie··on Helvetica Now Variable
In the case of the font foundry my client was licensing from,

‣ You were not allowed to self-host the font files, and had to load them directly from the hosting URL provided by the font foundry

‣ There was no explicit reporting involved. Every time the font resource was downloaded from their server, the foundry counted that as a licensed pageview.

‣ The foundry used cache control headers[1] on the response, so that every page load required contacting their origin server and could be logged for billing purposes.

‣ The foundry sent an invoice, telling you what your usage was. If your resource download/pageview count was within your contractual limit, you're invoiced your base rate. If your pageview count was above your contractual rate, you pay your base rate + whatever your overage cost was.

The WAF did a bunch of stuff, but the primary headache was that they enabled challenge pages[2] for every single visitor as a knee-jerk reaction, with a ridiculously low validity timeframe. So every user got hit with an interstitial Javascript challenge page on first pageload, and if they stuck around for just a bit they'd get hit with another one out of nowhere. And that "other one" could easily be on a background resource load rather than the primary page itself, which would just hang. And the way the interstitial page loaded the final content for traffic that "passed the test" obliterated referral information and made it impossible to make heads or tails of your traffic data.

The intent being that automated traffic wouldn't get past the WAF and would never load the actual destination page, and by extension the precious font files. But the way it operated had a lot of nasty side effects that caused a never-ending stream of technical problems, in addition to just being a terrible user experience.

[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Ca...

[2] https://www.imperva.com/blog/how-incapsula-client-classifica...

cosmie··on Helvetica Now Variable
It's also incredibly risky for advertising and marketing campaigns.

I had one client that started getting their product catalog scraped aggressively, and the invoice for their licensed font usage that month was an order of magnitude higher than they expected (low six figures, vs. low five figures).

They slapped the site behind an aggressively configured enterprise WAF[1] in response to that bill specifically. It made for an abrasive visitor experience, fundamentally broke server logging data (due to header mangling), and constantly broke third party integrations.

It was such a pain to service the client that I ended up convincing their network security team to let me pilot Cloudflare in front of the WAF (that they insisted remain). Ended up using a Worker function to tidy up after the janky WAF header mangling, got them to remove the explicit challenge page, and just swapped out the licensed font for a generic/free one for suspicious activity.

All because of that stupid pageview based font licensing model and its susceptibility to abuse.

[1] https://en.wikipedia.org/wiki/Web_application_firewall

cosmie··on A future for SQL on the web
PWA are explicitly exempt from the data storage wipe behavior[1]. So there's that, at least. For now.

Although I agree that it's a fairly minor win in the grand scheme of how handicapped PWA's are on iOS. And like you said, the lack of install prompts and tucking away the PWA "installation" option in the share menu makes it less than intuitive and requires manual awareness efforts by devs[2].

[1] Last section of https://webkit.org/tracking-prevention/

[2] https://michaellisboa.com/blog/prompt-ios

cosmie··on New Windows 10 vulnerability allows anyone to get admin privileges
If you haven't, check out the Windows Admin Center app[1]. It's targeted primarily at managing Windows Server, but works fantastically for managing Windows 10 too (and they even mention that on the doc homepage). This[2] page in particular gives you a good visual and overview of the actual management features.

I originally tinkered with it to see if I could straighten out a Windows 10 dev VM that got mangled over time but I didn't want to wipe. It was a bit of a bear getting it setup and learning as I went, but once I got it going it was shockingly to actually find and cleanup all the little gremlins that had accumulated and started bogging things down and/or causing issues.

That sold me on it, and I've since set up all the Windows machines in the house so I can use WAC for maintaining them. It's been far more pleasant keeping everyone's computers chugging along.

[1] https://docs.microsoft.com/en-us/windows-server/manage/windo...

[2] https://docs.microsoft.com/en-us/windows-server/manage/windo...

cosmie··on Verisign will increase the .com price from $7.85 to $8.39
That's the wholesale price. When you pay Route53 $12.99, they remit $7.85 to Verisign, who maintains the authoritative registry for the .com TLD.

By jacking up the wholesale rate by 7% (the largest annual increase they're allowed, per their ICANN agreement[1]), every single .com registration and renewal becomes 7% more expensive. Requiring services like Route53 to either pass it through to consumers or eat the cost increase themselves, if they even have the margins to.

[1] https://onlinedomain.com/2020/01/03/domain-name-news/icann-a...

cosmie··on A coronavirus epidemic hit 20k years ago, new study finds
It's not the climate change that'll get us, but each other.

Left to nature alone, we'd likely evolve and adapt and survive in some form or fashion. But the advancement of humanity has led to all kinds of ways we could do ourselves in if we put our minds to it.

And those nation states and civilizations facing iffy odds aren't likely to go down quietly. In the throws of desperation, all bets are off (why care about stuff like MAD[1] when you're already facing imminent destruction by nature).

[1] https://en.wikipedia.org/wiki/Mutual_assured_destruction

cosmie··on Amazon destroying millions of items of unsold stock in one of its UK warehouses
Amazon also charges for the disposal itself[1]. Although they're likely not going to receive payment from delinquent accounts, it's something sellers in good standing have to account for.

Amazon charges a monthly storage fee[2]. If your inventory hasn't moved within a year, you'll start getting charged a supplemental long-term storage fee[3] on top of that.

If you want Amazon to ship the inventory back to you, there's a removal fee[4] for that. Or Amazon can get rid of it for you, but there's a disposal fee[1] for that. And the fees for both options are actually the same, the deciding factor is really just whether you want to keep control over it (and have the capacity to receive/store it somewhere) or you want to pay Amazon to take it off your hands entirely (at which point they can do what they want with it).

... thinking about it, I wonder if this is how counterfeits end up working their way into the official "Sold by Amazon" supply chain.

[1] https://sellercentral.amazon.com/gp/help/external/G5FKTA8LXU...

[2] https://sellercentral.amazon.com/gp/help/external/help.html?...

[3] https://sellercentral.amazon.com/gp/help/external/help.html?...

cosmie··on Ask HN: Handling customers that want feature previewing?
> I think some of the administrative pain can come from having a 'sandbox' or 'qa' tier beyond dev (which in this case would be customer facing) before production.

Pretty much. It's hard to guess at the reason why without knowing the product, but for whatever reason customers are wanting access to new features/releases before using them. Which likely means that they need to do something on their end every time you release (validation, update internal training/process documentation, etc). And it's causing disruption when things change outside of their control. So they're wanting more control over that change timing, to smooth out the impact of those releases as far as their usage goes.

If your release codebase can only support a single "production" version of a feature at once, you end up having to provision entirely new environments to hold a client back. And again, for every client wanting this. Because the timing they want isn't going to be convenient enough to be the same.

So instead, structure things so that you can run both the old and new version of "the thing" simultaneously in production, and give the client self-service ability to activate the new version when they're ready. That way your production environment itself is able to accommodate these requests and client's can opt-in when they're ready/comfortable to.

The biggest challenge to doing this tends to be architecting your application so you can push releases to the backend independently to releases in the frontend. Which can generally be handled by routing things through middleware that provides a stable response for a given feature version. If the interface is using the latest version, the middleware is basically just a stub that does nothing. But if the interface is using a prior version, then the middleware accepts the request signature of the prior version, translates into what's needed to execute on the new codebase, and returns a response that's consistent with the prior version. It's a few years old, but here's[1] an example of how we handled the data-model aspect of this sort of setup at a prior company

So in effect you're actually upgrading all customers to the new release at once, but from the customer perspective everything still looks/feels/act the same as they're used to until they "upgrade/opt-in" to the new release.

It's a pretty major lift to implement this architecture (particularly on an existing codebase), but maintaining it is easy to incorporate into the regular development process. And completely eliminates the operational and customer management headaches you're having now.

With this architecture, it doesn't really matter if you're running isolated deployments or a multi-tenant architecture. You only ever have a single version of production in both cases. The "sandbox" isn't a new environment, but a new production account that copies over the configuration/setup of their existing one while applying sandbox-like restrictions to it. This gives them a temporary space to prepare for the change so they're prepared when they flip the switch on their primary account.

[1] https://github.com/TomFrost/Vers

cosmie··on Ask HN: Handling customers that want feature previewing?
> For most SaaS there’s no logical reason why having a feature for 2 extra weeks would be an enormous advantage to a customer. In my experience what this question really is is “can we make last minute change requests to a feature you thought was done”.

If you frame it as early access, then people are apt to try to throw their wishlist at you, thinking it's still "not official yet" and easy to change.

But based on what OP asked, I'm not sure that's the primary reason. It seems more like his larger clients are finding the changes disruptive enough that they're wanting advanced notice to prepare for them. So integrating a lot of the suggestions here can very easily address that issue, while also providing leverage points for client management and sales.

@OP - don't think about it in terms of preview access or letting them into your internal sandbox environment(s). But rather, restructure your releases to decouple the release from the account migration. Using feature flags and such then allow end users to determine whether they immediately migrate to the new feature when it's available, or if they continue with the status quo and wait a few weeks to familiarize themselves with the changes before opting into them.

For end users – this gives them room to both continue with their day-to-day needs using the process they're already familiar with, while giving them flexibility to familiarize themselves with the changes and prepare (in whatever form they need) before committing to them.

For the tech team – there's an initial lift to adjust the app architecture to support this type of usage, but insulates them these sorts of client requests in the future since the app now supports these types of opt-in migrations within the live environment. If a user wants a sandbox account, it can be provisioned as a normal account in the live environment but with sandbox-like restrictions applied to it.

For the sales/account teams – this can be used as a negotiation point. You can position it as normal accounts get auto-migrated to new features upon release, but enterprise clients can pay for the ability to control their own release/migration timing via these opt-in feature gates. And a sandbox functionality (which provisions a new account using the current configuration of their existing account, but with applied sandbox-like limitations) allows them to both prepare for it and test it in a controlled environment before enabling it on their primary/production account. That sandbox capability is independent of the opt-in capability, and a second point of negotiation.

And since your application now supports both of these directly in production and doesn't require bespoke work or custom environments from your tech team to support, the incremental cost is pretty minimum to give it to a particular client. Which is hugely useful for a sales team when closing larger accounts. They can give it away without much hassle if they have to in order to close a deal or provide value-add during renewal, while simultaneously capturing incremental revenue from clients that are willing to pay substantially for these sorts of things.

cosmie··on Siemens acquires Supplyframe, owners of Hackaday and Tindie
Seems more like an innocent mix-up by the social media PR person, who likely isn't familiar enough with the properties to notice the mixup between Hackaday and Tindie at the end there.

Or they could have been referring to Hackaday.io rather than hackaday.com.

cosmie··on Judge in Fortnite case holds Tim Cook's feet to the fire
Apple's guidelines already cover their bases to prevent such a loophole.

The first clause of their Payments[1] guidelines explicitly states you're to use in-app purchases to unlock features and functionality within your app, while also forbidding you from linking to or directing users to any alternative purchasing mechanisms.

They then make limited exemptions for "reader apps"[2] to allow users to consume content they've previously purchased, and explicitly list which categories of content they consider allowable for this exemption. Games not being one of them. They also make an exemption for multi-platform services which isn't as restrictive as the reader app clause, but only if you also abide by the first clause of making it available as an in-app purchase as well (and not direct people to alternatives for purchase).

So this works for Amazon's Kindle app, but wouldn't for a gaming service. And even the way Amazon handles Kindle listings[3] in their main app is toeing the line of what Apple allows, and smaller companies would have a hard time pulling off.

And just for good measure, they also pretty much spell out exactly what you described in the first bullet under the Unacceptable clause[4]

[1] https://developer.apple.com/app-store/review/guidelines/#pay...

[2] https://developer.apple.com/app-store/review/guidelines/#rea...

[3] "This app does not support purchasing. Books purchased from Amazon are available to read in the Kindle app" is what they put on the listing page. It's not a direct call to action so isn't strictly against the guidelines, but such a thinly veiled insinuation is something few other companies would be able to get passed app review.

[4] https://developer.apple.com/app-store/review/guidelines/#una...

cosmie··on The Animal Is Tired
I concur with all of this!

The way she uses perception, perspective, and cognitive biases are, as you say, shatteringly powerful. Particularly with her stream-of-consciousness writing style, where you so naturally get sucked into the character's mental framework. The final trilogy in particular that brings it all together, but even within the individual trilogies she's constantly doing it.

I started reading her books back when I was still in school, and they had a fundamental impact on my life. It fundamentally altered the way I see things, and the career path I eventually took. I couldn't even articulate exactly how, until I stumbled upon the concept of systems thinking[1] a few years ago and realized that was what she had given me an awareness of. Which then led me to these[2][3], which pretty much describe how I had started seeing and approaching things after reading Robin Hobb's books.

Not sure if it would have been as impactful if I hadn't read them at such an impressionable age, but I'm forever grateful that I did. And for that, Robin Hobb will always reign supreme on my favorite author list.

[1] https://en.wikipedia.org/wiki/Systems_theory#Systems_thinkin...

[2] http://donellameadows.org/archives/dancing-with-systems/

[3] http://donellameadows.org/archives/leverage-points-places-to...

cosmie··on Analytics suggest 96% of users leave app tracking disabled in iOS 14.5
I doubt it was Google itself – Google is a one-way sieve when it comes to data. Google allows advertisers to tap into their user graph for targeting and attribution, but they don't actually give access to user-level info in any meaningful form, let alone in a form that would allow you to get your hands on user emails. The closest you can get is Ads Data Hub[1], which requires advertisers to import their first party data into the (very expensive) Google-controlled environment to work, and is designed so that Google's identifiers can be used for joins and aggregate functions but can't be directly returned in queries.

There are providers that directly exploit their graph by selling the PII within it, such as GetEmails[2] (and the publishers they source data from). But Google isn't one of them.

[1] https://developers.google.com/ads-data-hub

[2] https://martech.zone/getemails-identify-anonymous-visitors/

cosmie··on Analytics suggest 96% of users leave app tracking disabled in iOS 14.5
I haven't had exposure to this space since the GDPR went into effect, but it used to be trivially easy to do this. A quick Googling shows there are still providers of this sort of service, such as GetEmails[1] which bills itself as '100% compliant in the US'.

[1] https://getemails.com/

cosmie··on Slidev – Presentation Slides for Developers
I didn't even realize Keynote had a latex engine. The equation support in Powerpoint results in nice formatting, but Powerpoint doesn't directly support latex format without third-party addins so it gets a bit tedious to use for more than a one-off. I generally end up using the equation editor in Word (that does support latex[1]) as a workaround, and just copying the output into Powerpoint.

Will have to give Keynote a try!

[1] https://support.microsoft.com/en-us/office/write-an-equation...

cosmie··on Intel seeks $10B in subsidies for European chip plant
Why would they have to raise taxes on people to compensate?

The amount of economic activity required for Intel to even generate $10bn in taxes is massive. The firms Intel employs to build the $20+bn fab would not have the same tax break, nor the employees involved in the construction. Nor the employees, suppliers, and various vendors and logistics companies that would be involved in the running of the fab once it is operational.

So in additional to the strategic political goal of having an advanced current-gen fab on European soil, you also get

– The "second party" taxation that occurs to the parties on the receiving end of the capital Intel is expending in the building and running of the fab. While this is a form of "taxes on people to compensate", it doesn't necessitate raising taxes to offset the Intel subsidy. Since the economic activity is a direct response to the capital Intel employs, even leaving taxation on these parties as-is results in incremental tax collections vs. no fab at all.

– Considering the amount of profit these fabs seem to throw off during their lifetime, and Intel's general scale globally, it stands to reason that a $10bn tax abatement won't subsidize the taxable activities of the fab indefinitely. So once that's been consumed, you're now getting the taxation resulting from the fab's activities and all that second party taxation you were getting the whole time.

So immediate cuts to government services to offset these seems a bit over the top, since a project like this does result in a net increase in taxable activity in both the short and long term, it's just less than it otherwise would be in the short term since you gave a break to the primary entity involved as an incentive to secure their participation.

That said, it only works out that way if companies uphold their side of the bargain. So instead of major spending offsets, it'd be better for governments to structure these subsidies with way more teeth than they usually do. To at the very least claw back the subsidy if warranted[1], or even better to add penalties to the terms of these things such that a company foots the bill for the time and effort and resources the government put into their end of things and the company thinks twice before entering these agreements in the first place.

[1] https://www.theverge.com/2021/4/20/22393679/wisconsin-foxcon...

cosmie··on YouTube TV removed from Roku channel store amid Google contract dispute
Or at the very least it'll become a data collection platform, to be packaged and sold (whether for use with ads directly or for the many consumer intelligence[1] companies that charge gobs of money for aggregate reporting).

[1] https://www.numerator.com/

cosmie··on Lambda: The Ultimate Excel Worksheet Function
While formulas are definitely code in a general sense, 'code' the Excel-verse generally refers to VBA code embedded in the workbook.

VBA's potential as an attack vector results in it being unavailable or heavily restricted in many corporate environments through stuff like Group Policies[1]. And I've worked with some clients whose IT goes a step further and completely blocks sending or receiving emails with .xlsm[2] attachments.

Since lambda-defined logic is all formula-based, it's not considered 'code' in that sense and can be used and passed around as a standard Excel file without any of the VBA-oriented restrictions. So you can approach your Excel workbook more like a programming project, centrally defining your complex logic once and referencing it elsewhere every time you want to use it. This is super helpful for audibility and maintenance, while staying within the bounds of what'll be applicable/usable across any Excel environment.

[1] https://4sysops.com/archives/restricting-or-blocking-office-...

[2] .xlsm is the extension Excel uses for spreadsheets containing VBA code

cosmie··on Exploiting vulnerabilities in Cellebrite UFED and Physical Analyzer
> also those of other evidence acquired afterwards

And prior extracts on the device.

cosmie··on “They introduce kernel bugs on purpose”
There's certainly a sociology aspect to the whole thing, but the hypothetical second paper is just as much social-exploit-vector vulnerability research as the first one. The only change being the state of the actor involved.

The existing paper researched the feasibility of unknown actors to introduce vulnerable code. The hypothetical second paper has the same basis, but is from the vantage point of a known bad actor.

Reading through the mailing list (as best I can), the maintainer's response to the latest buggy patches seemed pretty civil[1] in general, and even more so considering the prior behavior. And the submitter's response to that (quoted here[2]) went to the extreme end of defensiveness. Instead of addressing or acknowledging anything in the maintainer's message, the submitter:

- Rejected the concerns of the maintainer as "wild accusations bordering on slander"

- Stating their naivety of the kernel code, establishing themselves as a newbie

- Called out the unfriendliness of the maintainers to newbies and non-expects

- Accused the maintainer of having preconceived biases

An empathetic reading of their response is that they really are a newbie trying to be helpful and got defensive after feeling attacked. But a cynical reading of their response is that they're attempting to exploiting high-visibility social issues to pressure or coerce the maintainers into accepting patches from a known bad actor.

The cynical interpretation is as much social-exploit-vector vulnerability research as what they did before. Considering how they deflected on the maintainer's concerns stemming from their prior behavior and immediately pulled a whole bunch of hot-button social issues into the conversation at the same time, the cynical interpretation seems at least plausible.

[1] https://lore.kernel.org/linux-nfs/YH5%2Fi7OvsjSmqADv@kroah.c...

[2] https://lore.kernel.org/linux-nfs/YH%2FfM%2FTsbmcZzwnX@kroah...

cosmie··on “They introduce kernel bugs on purpose”
> This is thinly veiled and potentially dangerous bullying.

Which itself could be the basis of a follow up research paper. The first one was about surreptitiously slipping vulnerabilities into the kernel code.

There's nothing surreptitious about their current behavior. They're now known bad actors attempting to get patches approved. First nonchalantly, and after getting called out and rejected they framed it as an attempt at bullying by the maintainers.

If patches end up getting approved, everything about the situation is ripe for another paper. The initial rejection, attempting to frame it as bullying by the maintainers (which ironically, is thinly veiled bullying itself), impact of public pressure (which currently seems to be in the maintainers' favor, but the public is fickle and could turn on a dime).

Hell, even if the attempt isn't successful you could probably turn it into another paper anyway. Wouldn't be as splashy, but would still be an interesting meta-analysis of techniques bad actors can use to exploit the human nature of the open source process.

cosmie··on Researcher says he can link Facebook accounts to 5M email addresses per day
> large B2C apps like FB

FB is an advertising firm, and the identifiability of their audience is a major value driver of their ad inventory[1]. They explicitly leverage the PII stored on their consumer users to enable advertising offerings such as Custom Audiences[2][3][4] and Advanced Matching[5][6].

Best practice for any B2C app like FB would be to retain those prior values indefinitely, since prior values still provide valid utility for their advertising services as additional data points for matching.

That likely differs from best practices for large B2C apps that aren't like Facebook and don't have similar incentives for indefinite data retention.

[1] https://www.adexchanger.com/mobile/facebook-could-take-a-mul...

[2] https://www.facebook.com/business/help/341425252616329

[3] https://www.facebook.com/business/help/2082575038703844

[4] https://www.facebook.com/business/help/2082575038703844

[5] https://www.facebook.com/business/help/611774685654668

[6] https://www.facebook.com/business/help/2445860982357574

cosmie··on Credit card companies are tracking shoppers like never before
The issue is with the `quality` aspect. There are three different levels of credit card transactions[1].

Most consumer purchases will end up being a level 1 transaction, where the card network doesn't see much more than the transaction amount and bare minimum of details required to process that transaction.

The date is based on the transaction date, which may or may not be the actual time of sale. Many transactions involve placing an initial authorization/hold, and actually making a charge later on (when an item ships, for example).

The merchant data is likely to be unhelpful, as well. For example, the MCC for Amazon is 'Bookstores', which would be wholly unhelpful as a shop type. And while you can do some data cleaning for well known exceptions, the miscategorization issue holds true for pretty much any business that sells more than a single type of something.

So you don't know the specific product that was bought, you may not know the actual time of purchase, the merchant details are general and potentially unhelpful for categorization (or even misleading).

And even the buyer data isn't all that helpful - because of the way credit cards get used, it's more useful for a "household" level profile moreso than an individual's profile.

In general it ends up being far less useful than you'd expect. Level 2 transactions provide a bit more detail, and Level 3 transactions provide line-item breakouts of a transaction. But those are primarily used by vendors servicing businesses and governments. So the detailed transactions aren't consumer-related, and the consumer-related transactions end up too coarse to do much with.

[1] https://tidalcommerce.com/learn/what-is-level-3-data

[2] https://developer.wepay.com/api/reference/mcc

← PreviousPage 2 of 27Next →