The app just triggers AirDrop. AirDrop itself is provided by macOS.
HN user
mofle
[ my public key: https://keybase.io/sindresorhus; my proof: https://keybase.io/sindresorhus/sigs/f2efA_W7FvEyw55qXGSw6k9Oj3heHIAmU0gwhaGhW9I ]
I'm sindresorhus. I collaborate well with people on GitHub every day. My GitHub activity is open and anyone can take a look if they doubt it. If you are going to make personal attacks, at least include some proof.
I tried searching and could not find any iteraction between us: https://github.com/search?q=commenter%3Afluffynuts+author%3A...
Like OpenAI's Codex and Anthropic's Claude Code, this one is also built with Ink, React for the terminal.
Why not just use the Paste and Match Style menu item or ⌥⇧⌘V?
- This app can make it the default behavior. - That menu item is not available in all apps. - The keyboard shortcut is hard to remember and type. - In some apps, like Chrome, the keyboard shortcut is different. - This app can exclude certain apps, preserve links, and also remove tracking parameters from URLs.
It could indeed be faster. The app does not currently use the neural engine (ANE) because it has a tendency to crash the app, so it uses only CPU and GPU. The app also does upscaling, which adds ~10 seconds.
Also One Task: https://sindresorhus.com/one-task
TypeScript had years to prepare for ESM, but they did not. Same with Jest. ESM was developed in the open and anyone could participate, including the TypeScript team. You are talking like ESM just happened overnight. It had been in development for 10 years.
Node.js released initial ESM support [1] in Node.js 12.17 in May 2020, 2 years later (!), TypeScript finally added support for ESM [2].
Here's a straight forward guide on how to use TypeScript with ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3...
[1] https://nodejs.org/en/blog/release/v12.17.0
[2] https://devblogs.microsoft.com/typescript/announcing-typescr...
You are reading the wrong spec. That is `Array#slice`, not `TypedArray#slice`.
Correct spec: https://tc39.es/ecma262/multipage/indexed-collections.html#s...
Steps 14.g.i to 14.g.ix detail the transfer of data from the original TypedArray (O) to the new TypedArray (A). It involves reading values from the original and writing them to the new array's buffer, effectively duplicating the data segment. The process ensures both arrays are distinct with separate memory spaces.
No one is forcing you to use it. You can choose to reimplement the code yourself or you can choose to copy-paste the code. I made the package for my own convenience as I need to transition a lot of packages from `Buffer` and I don't want to maintain duplicates of the code in every package. Others are free to use the package or not.
Completely different behavior is not an implementation detail.
Changing method behavior in subclasses is part of inheritance, but it shouldn't confuse or mislead. In the case of Buffer and Uint8Array, the altered `.slice()` functionality isn't a mere implementation detail; it's a significant deviation. This inconsistency can lead to unexpected bugs, especially for those who assume similar behavior based on the inheritance hierarchy. It's crucial for reliability that such fundamental behaviors remain predictable across subclasses.
- Blob: Immutable raw data container with a size and MIME type, not directly readable.
- File: Like a Blob, but with additional file-specific properties (e.g., filename).
- ArrayBuffer: Fixed-length raw binary data in JavaScript, not directly accessible.
- Uint8Array: Interface for reading/writing binary data in ArrayBuffer, showing them as 8-bit unsigned integers.
- Buffer: Readable/writable raw binary data container in Node.js (subclass of Uint8Array)
https://weizmangal.com/2022/10/28/what-is-a-realm-in-js
Examples of this are frames in the browser and the `vm` module in Node.js.
I can't think of many use cases in JS land were Uint8Array, Uint16Array, Uint32Array, Int8Array would be absolutely necessary.
Buffer is a subclass of Uint8Array.
`Uint8Array.prototype.isPrototypeOf` and `instanceof Uint8Array` do not work across realms (frames, Node.js VM, etc).
Feel free to copy-paste the function to your own code base if you don't want the dependency:
``` const objectToString = Object.prototype.toString;
export function isUint8Array(value) { return value && objectToString.call(value) === '[object Uint8Array]'; } ```
Uint8Array has this too, but it's called `.subarray()`. The problem is that Buffer is a subclass of Uint8Array, but changes the behavior of the `.slice()` method.
People are working on bringing Base64/Hex conversion to JavaScript: https://github.com/tc39/proposal-arraybuffer-base64
I also provide a package to make the transition easier: https://github.com/sindresorhus/uint8array-extras (Feel free to copy-paste the code if you don't want another dependency)
`Buffer.slice` is deprecated: https://nodejs.org/api/buffer.html#bufslicestart-end
In the next update, there will be a "Paste Tasks" button. So you could then select some tasks in Reminders, copy, and then simply paste them into One Task.
Even if I wanted to integrate with Reminders, it wouldn't work that well. The app would have to be running to synchronoize with Reminders. This means the widget would not update if you made changes in the Reminders app and One Task was not running.
The optimal workflow is to add only the tasks you are committed to completing today. The app is designed for task completion, not endless organization and neglect. So not integrating with the Reminders app is an intentional choice.
They left the App Store in 2015: https://www.sketch.com/blog/leaving-the-mac-app-store/
There is simply not enough demand to justify spending double the time on publishing every update (one build for App Store and one build for Homebrew). There are very few people that use Homebrew and cannot use the App Store. The non-App Store version is intended for users on locked down corporate computers.
Until recently, all by hand in Photoshop and Sketch. Now I use AI generation as an initial base in icons, but still tweak a lot. This icon was fully made in Sketch though.
That’s a good idea. I will get that added
Yes, it's made with SwiftUI.
I made a free GUI app for this tool: https://sindresorhus.com/speediness
Node.js now supports generating self-contained binaries: https://nodejs.org/api/single-executable-applications.html
I mostly make apps that solve my own problems or to experiment with a new technology.
If anyone wants transcription locally (on-device) on macOS or iOS, I just released a free app for it: https://sindresorhus.com/aiko It runs Whisper on your device.
macOS hides menu items if they don't fit and nothing can be behind the notch. Apps have no control over this. The app has a setting for maximum length. You could also move the menu item closer to the right to make sure it's not hidden when there's less space in the menu bar.