DuckClient is a telnet client for text-based online worlds that features easy syncing of settings between machines. It's intended mainly for social worlds running on MUCK, MUSH, MUX, and MOO type servers. There is limited support for MUDs.The app uses the Chrome socket API, and runs entirely locally; it is not a web-hosted service and does not require any kind of proxy.** Note that Google has dropped desktop support for Chrome Web apps. There are some experimental standalone builds for Linux, macOS, and Windows at **Features include:- multiple connection support- SSL encryption- Tor support (experimental)- storage and syncing of connection information- logging- clickable URLs- URL list with optional thumbnail preview- ANSI 256 color and 24-bit truecolor support- "Fansi" (IBM Codepage 437) support- MUD Client Compression Protocol support- automatic backslash escapes for MUSHes- wildcard or regexp triggers to gag, colorize, or route text to another windowBased on feedback I've gotten, I should also clarify what it's not:- a game, in itself. It's simply a client for connecting to game servers run by others.- a VT-100 terminal. DuckClient is strictly line-based. It supports a very tiny portion of the VT-100 escape code set -- only the ones for setting text styles.- a full-fledged MUD client. There are currently no provisions for separate status windows and the other features that combat MUDs support.
DuckClient was a client for MUCKs, MUDs, MUSHes, MOOs, and MUDs, with a focus on conversational-style worlds.It was written entirely in Javascript as a Chrome Web App, primarily for ChromeOS devices, but also can be built as an nwjs desktop app.
The Wedgetail project may also be of interest; Wedgetail is a MU* client that uses a server-side shimto allow users to connect to a world via their web browser. By using a custom protocol that runs over websockets,it can support proxies, seamless reconnection, and IP roaming while still talking to the MU* server over ordinary telnet.
The client-side encryption feature in Cyberduck and Mountain Duck is based on the excellent concepts and work of Cryptomator. Cryptomator is free and open-source software. Since Cyberduck is also open-source software anyone is able to audit the source code. That means no security by obscurity, no hidden backdoors from third parties, no need to trust anyone except yourself.
You can create a new vault directory anywhere on your remote storage. This will initialize the vault with a masterkey.cryptomator. A backup of the master key file (masterkey.cryptomator) is saved in user defaults. The encrypted keys in masterkey.cryptomator are not more sensitive than the encrypted files in the vault. For technical aspects, refer to Masterkey Derivation.
You can check Add to Keychain to save the passphrase to open the vault with the master key file in your login keychain. The checkbox is disabled by default. Another application that wants to access the vault passphrase from the login keychain will trigger a permission prompt.
You can open and browse multiple vaults on a server in a single browser window. For each vault to be opened you will be prompted to enter your passphrase to decrypt the filenames. Decrypted filenames when browsing a vault will show a padlock overlay icon.
Over our years in the business, our bakery caf has established a long and impressive list of clients who purchase our artisan breads and baked goods for sale in restaurants, caterers, and specialty markets in the region. We are proud of our success and would like to share that with you.
Mountain Duck 3, combined with any cloud storage, is a viable, more secure solution to synchronize access to documents on multiple computers and users. With Mountain Duck 3 you have the ability to make files and folders accessible for offline usage selectively. This has the advantage that not all data is kept on your local drive for offline usage compared to clients like Dropbox and Google Drive. Additionally, you can apply this principle to all of your bookmarks and not only on the already mentioned cloud storage provider.
You can mount multiple accounts at the same time if you have different Dropbox accounts. Create a new bookmark for every account and run through the OAuth flow. Make sure to log out of the Dropbox website prior setting up a new bookmark.
ddns-scripts supports updating your duckdns.org subdomain with your IPv6 address, which is still needed for home users with dynamic IPv6 address. Even though your IPv6 address is globally addressable, as of 2024, some residential ISP still assign dynamic IPv6 address that may periodically change.
Note that applications in this mode are restricted in some ways. In particular, resources from different origins can only be loaded if they are served with a Cross-Origin-Resource-Policy (CORS) header with the value cross-origin.
The MotherDuck Wasm Client library depends on apache-arrow as a peer dependency.If you use npm version 7 or later to install @motherduck/wasm-client, then apache-arrow will automatically be installed, if it is not already.
Optionally, you can use a variant of @motherduck/wasm-client that bundles apache-arrow instead of relying on it as a peer dependency.Don't use this option if you are using apache-arrow elsewhere in your application, because different copies of this library don't work together.To use this version, change your imports to:
The mdToken parameter is required and should be set to a valid MotherDuck access token. You can create a MotherDuck access token in the MotherDuck UI. For more information, see Authenticating to MotherDuck.
The number of columns and rows in the result are available through the columnCount and rowCount properties of data.Column names and types can be retrived using the columnName(columnIndex) and columnType(columnIndex) methods.Individual values can be accessed using the value(columnIndex, rowIndex) method. See below for details about the forms values can take.Several convenience methods also simplify common access patterns; see singleValue(), columnNames(), deduplicatedColumnNames(), and toRows().
The toRows() method is especially useful in many cases. It returns the result as an array of row objects.Each row object has one property per column, named after that column. (Multiple columns with the same name are dedupicated with suffixes.)The type of each column property of a row object depends on the type of the corresponding column in DuckDB.
Many values are converted to a JavaScript primitive type, such as boolean, number, or string.Some numeric values too large to fit in a JavaScript number (e.g a DuckDB BIGINT) are converted to a JavaScript bigint.Some DuckDB types, such as DATE, TIME, TIMESTAMP, and DECIMAL, are converted to JavaScript objects implementing an interface specific to that type. Nested types such as DuckDB LIST, MAP, and STRUCT are also exposed through speical JavaScript objects.
These objects all implement toString to return a string representation. For primitive, this representation is identical to DuckDB's string conversion (e.g. using CAST to VARCHAR). For nested types, the representation is equivalent to the syntax used to construct these types.They also have properties exposing the underlying value. For example, the object for a DuckDB TIME has a microseconds property (of type bigint). See the TypeScript type definitions for details.
Note that these result types differ from those returned by DuckDB Wasm without the MotherDuck Wasm Client library. The MotherDuck Wasm Client library implements custom conversion logic to preserve the full range of some types.
A streaming result contains three ways to consume the results, arrowStream, dataStream, and dataReader. The first two (arrowStream and dataStream) implement the async iterator protocol, and return items representing batches of rows, but return different kinds of batch objects. Batches correspond to DuckDB DataChunks, which are no more than 2048 rows. The third (dataReader) wraps dataStream and makes consuming multiple batches easier.
The dataReader implements the same data interface, but also adds useful methods such as readAll and readUntil, which can be used to read at least a given number of rows, possibly across multiple batches.
The arrowStream property provides access to the underlying Arrow RecordBatch stream reader. This can be useful if you need the underlying Arrow representation. Also, this stream has convenience methods such as readAll to materialize all batches.Note, however, that Arrow performs sometimes lossy conversion of the underlying data to JavaScript types for certain DuckDB types, especially dates, times, and decimals.Also, converting Arrow values to strings will not always match DuckDB's string conversion.
Note that results of remote queries are not streamed end-to-end yet.Results of remote queries are fully materialized on the client upstream of this API.So the first batch will not be returned from this API until all results have been received by the client.End-to-end streaming of remote query results is on our roadmap.
To access the underlying DuckDB Wasm instance, use the getAsyncDuckDb function. Note that this function returns (a Promise to) a singleton instance of DuckDB Wasm also used by the MotherDuck Wasm Client.
I also have an issue with "meetings" not loading properly on a duck duck go mobile web browser. But it's only when it's embedded in a hubspot landing page that was created using hubspot. When I load the landing page from duck duck go the "meetings" calendar does not load. It says "Webpage not available". It loads just fine loading with a chrome browser on my phone, but not from the duck duck go browser on my phone. The alert on the duck duck go webpage says the page is not encrypted with SSL but unrelated to the issue.
Think back to massage school for a second. I know for some of you, that might be a distant memory but humor me. Do you remember learning about the difference between a chicken and a duck? It was about the difference between slow twitch and fast twitch muscles. Well, if this particular memory is escaping you, let me help to refresh it. Chickens have mostly fast twitch muscles, making them speedy and good for short bursts of energy. Conversely, ducks have mostly slow twitch muscles, making them better for endurance events, like flying. The same is true for human musculature, and you may have already thought about or have previous experience with the category you fall in. I am a chicken. Everything I do is for speed and in short bursts of energy. I am a sprinter by nature and as an athlete, I compete in short-speed events. There is no doubt about it. I have more fast twitch muscles, except when it comes to business. In business matters, I am a duck.
c80f0f1006