- G1N parentNo support for arm64 unfortunately :( OP, I tried installing via rosetta on macOS arm: And I get the following error: I curl'd and installed the x86 version manually into my ~/.zsh_scripts folder to get past this; I think for darwin clients you need to install to /usr/local/bin to get past perms errors (maybe just for arm macs?).
- The "Features" and "Community" links don't navigate/ scroll anywhere for me. Using Chrome 133 arm64 on macOS.
As an aside, is it just me or do a lot of these new project management apps coopt Linear's style? Not saying that this is completely derivative, the website just gave me those vibes (and I won't sign up to try out the demo so maybe some screenshots on the front page would be nice :P)
- Seems like Python support is up next for this project: https://github.com/anistark/feluda/pull/18
- Very different from everyone here I think, but we’re currently running into weird artifact eviction issues in our GitHub actions pipelines ( our fault for using GitHub CI, I’m aware lol). We’ve set up some CLI tools to help with this (basically scanning artifacts and freeing on some LRU basis), but I’d really like some tool that lets me view artifact creation stats across an entire GitHub org to figure out which teams’ actions need to be throttled. Not sure if that’s in scope at all for your project but throwing it out there nonetheless
- Based on the other replies here it seems like it's to differentiate taps vs mouse clicks, keyboard events in js don't have a screenX or screenY property (you can run this in your browser console on this HN post to confirm):
Type in or click on the reply text input and you'll see that the coords array is undefined for all keyboard events. I haven't tried this equivalent on a touch device however, so not sure how it's handled there.(() => { const logEvent = event => console.log({ coords: [event.screenX, event.screenY], type: event.type }); const input = document.querySelector("textarea"); // use "keydown" instead of "keypress" to detect all keyboard input instead of just character producing input input.addEventListener("keydown", logEvent); input.addEventListener("click", logEvent); })(); - RE this line of code at the bottom of the article:
Why do you even have to check if screenX and screenY are non-zero (as opposed to just checking typeof event.screenX == "number")? Wouldn't that mean (and this is a wild edge-case) that if someone positioned their browser window so that the menu was in the top left corner (at position 0,0) the event handler would break again? Is this to block synthetic click events like (<div />).click()? Keyboard events don't have a screenX or screenY from what I remember as well.const isInvokedByMouse = event => event.type === 'click' && (event.screenX !== 0 || event.screenY !== 0); - Of course not. While some development acceleration might be expected, at best you'll get some multiple that is representative of the overall quality and experience of the devs you work with.
Copilot has definitely helped me speed up via not having to type a lot of boilerplate and line completion, but I'd say that would be at most ~50% speed up when it comes to greenfield development and half that when it comes to maintenance work (and even these figures are probably generous). A 4x speed up sounds ridiculous; expectations like this are how your codebases get filled with GPT generated garbage that is connected together with GPT generated glue and then wrapped with GPT duct tape and a bow
- > Copy-paste is OK once. The second time you're introducing duplication (i.e., three copies), don't. You should have enough data points to create a good enough abstraction. The risk of diverging implementations of the same thing is too high at this point, and consolidation is needed. It's better to have some wonky parameterization than it is to have multiple implementations of nearly the same thing. Improving the parameters will be easier than to consolidate four different implementations if this situation comes up again.
The more I do this software engineering thing the more I feel like this “advice” bites me in the butt. Understanding when you should duplicate code versus when you should consolidate (or if you should just write a TODO saying “determine if this should be split up by [some set in stone timeline]”) is simply just a HARD problem (sometimes at least), and we should treat it as such.
DRY/ WET or whatever shouldn’t be a maxim (let alone a habit! lol), it should at best be a hand-wavey 2-bit dismissal you give an annoyingly persistent junior software dev who you don’t want to actually help!
- Sharing some packages, tsconfig.json, and jest.config.ts I used in a recent project that I'm pretty happy with below (I'm not using `"type": "module"` in my package.json.
Relevant npm packages: - @jest/globals (I use these to import `describe`, `test`, `expect` and other test-related functions) - ts-jest
My tsconfig.json:
and my jest config (jest.config.ts):{ "buildOptions": {}, "compilerOptions": { "target": "ES6", "module": "ESNext", "lib": [ "ES6", "DOM", "ES2017", "DOM.Iterable" ], "moduleResolution": "Bundler", "jsx": "react-jsx", "declaration": true, "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "outDir": "./dist" }, "include": [ "src", "__tests__", "*.config.ts", "sandbox.ts", "sandbox-ui.js" ] }
I have my tests set up under the `__tests__` directory in project root as you noted, and use a `.test.ts` suffix on all relevant test files. Doing this, ts-jest handles the actual transpilation + execution of the tests (just by running jest), and you don't have to worry about including them in your built solution. I have a separate `tsconfig.build.json` for actually building my project (this... is probably inefficient... but it works well for me :P).import type { Config } from "jest"; export default { preset: "ts-jest", testEnvironment: "jsdom", testMatch: ["\*/__tests__/\*/*.test.ts"], globals: { fetch: global.fetch, }, } as Config; - > As Bitsight continues to investigate the traffic patterns exhibited by CrowdStrike machines across organizations globally, two distinct points emerge as “interesting” from a data perspective. Firstly, on July 16th at around 22:00 there was a huge traffic spike, followed by a clear and significant drop off in egress traffic from organizations to CrowdStrike. Second, there was a significant drop, between 15% and 20%, in the number of unique IPs and organizations connected to CrowdStrike Falcon servers, after the dawn of the 19th.
> While we can not infer what the root cause of the change in traffic patterns on the 16th can be attributed to, it does warrant the foundational question of “Is there any correlation between the observations on the 16th and the outage on the 19th?”. As more details from the event emerge, Bitsight will continue investigating the data.
Interested to know how they're capturing sample data for IPs accessing Crowdstrike Falcon APIs and the corresponding packet data.
EDIT: Not to mention that they're able to distill their dataset to group IPs by their representative organizations. Since they have that info I feel a proper analysis would include actually analyzing which orgs (types, country of origin, etc) started dropping off starting on the 16th. Alas since this seems like just a marketing fluff piece we'll never get anything substantial :(
- We're so close to being able to create our own Tayne
- Link to post referenced in the above link: https://eclecticlight.co/2024/06/01/pdf-on-macs-the-rise-and...
- Companion nytimes article for anyone interested: https://archive.ph/MVmoX
- I didn't see any API offered anywhere (which I would definitely love), so I decided to poke around. https://apirank.dev/__data.json will return paged data sources (query param ?p={pageNum}), and what really caught my interest here was how the data came in.
A sample response takes this form: `{ type: 'data', nodes: [ { type: 'data', data: [Array], uses: [Object] }, ... ] }`
Things get a little strange (for me at least!) when I start poking around in the data array. At index 0 in this array is an object with some information on what I think is mostly just paging and the length of the data array (sans this first element). At index 1 is an array filled with numbers that correspond to array indices in the initial data array, and the objects at those specified indices are the actual data sources. While the keys in those objects are actual descriptors of relevant information, the VALUES for those keys are also array indices. Essentially the incoming data structure is a super flattened array with some objects/ additional arrays that just point to other indices in the data array.[1]
Is there a name for this type of pattern? Is it just an artifact of using some query library to handle data fetching? Apologies for the naivety, I still consider myself a fairly new dev (especially when I see something like this!).
[1] More complete example (not sure if I explained this well):
{ type: 'data', data: [ { endpoints: 1, count: 3971, currentPage: 5 }, [2,221,355,...], // at array index 2 we should expect an object { id: 3, commentsRatio: 4, owaspIssues: 6, ... }, // array index 2: object with values that are all indices in the original data array that hold the actual values! ... ] } - MaxRewards | Fullstack Developers/ Platform (Financial API) Engineers | Full-Time, Remote (US Only, Atlanta-based) | https://maxrewards.co
MaxRewards is an Atlanta-based financial technology company that enriches people's lives by creating extraordinary benefits from everyday spend. The average American household can earn over $2,000 in tax-free rewards and savings every year! However, few do, since it takes so much time and effort. We build technology that automates savings. Today, we help consumers maximize credit card rewards and cashback by proactively activating offers and benefits, providing personalized recommendations for card usage and aggregating bills, spend, savings and more.
We just finished raising our seed round, and are looking to quickly grow our engineering org. All of our postings can be found here:
- I have an Edward Tufte Jekyll theme with dark mode here: https://ibrahimsaberi.com/, not the same as this one but hopefully similar enough