Hacker Newsnew | past | comments | ask | show | jobs | submit | porker's favoriteslogin

I've been using ChatGPT pretty consistently during the workday and have found it useful for open ended programming questions, "cleaning up" rough bullet points into a coherent paragraph of text, etc. $20/month useful is questionable though, especially with all the filters. My "in between" solution has been to configure BetterTouchTool (Mac App) with a hotkey for "Transform & Replace Selection with Javascript". This is intended for doing text transforms, but putting an API call instead seems to work fine. I highlight some text, usually just an open ended "prompt" I typed in the IDE, or Notes app, or an email body, hit the hotkey, and ~1s later it adds the answer underneath. This works...surprisingly well. It feels almost native to the OS. And it's cheaper than $20/month, assuming you aren't feeding it massive documents worth of text or expecting paragraphs in response. I've been averaging like 2-10c a day, depending on use.

Here is the javascript if anyone wants to do something similar. I don't know JS really, so I'm sure it could be improved. But it seems to work fine. You can add your own hard coded prompt if you want even.

    async (clipboardContentString) => {
        try {
          const response = await fetch("https://api.openai.com/v1/completions", {
            method: "POST",
            headers: {
              "Content-Type": "application/json",
              "Authorization": "Bearer YOUR API KEY HERE"
            },
            body: JSON.stringify({
              model: "text-davinci-003",
              prompt: `${clipboardContentString}.`,
              temperature: 0,
              max_tokens: 256
            })
          });
          const data = await response.json();
          const text = data.choices[0].text;
        return `${clipboardContentString} ${text}`;
        } catch (error) {
          return "Error"
        }
      }

Any modern conversation of workplace ergonomics is incomplete without mention of biomechanist Katy Bowman, whose "Move Your DNA"[0] is an indispensable read for anyone maintaining a physical body.

As best I can interpret it, her ultimate conclusion is to hold no position for too long, and introduce novel movement into every activity (rather than, specifically, relegating "healthy" movement to an "exercise" period, while otherwise indulging in "unhealthy" movement for large blocks of time).

Combined with further research elsewhere — such as studies cited in Annie Murphy Paul's "Extended Mind"[1] and those on alleviating ADHD symptoms through movement[2] — it's possible that the ideal workplace is an unrecognizably dynamic one where even the most cerebral workers spring from treadmill to trampoline, to napping cot, to promenade. For just a taste of such dynamicity, here's a fast-forwarded hour of Katy Bowman fidgeting her way through the workday.[3]

Edit: I want to address something specific in the linked article. The claim that "Standing puts greater strain on the circulatory system and on the legs and feet."

I am absolutely certain that this is true, but it doesn't diminish the value of a standing desk. One principle I've absorbed from Bowman's writing is that all rest is strain, which is to say that to rest one limb one must rest on another, straining it. (Who hasn't woken up with a "crick in the neck" or another sign of slept-on strain?) The trick, then, is to rotate strain throughout all the various limbs of the body. Not only have all our limbs have evolved to handle certain loads, they've evolved to expect and dare-I-say crave certain loads in order to keep functioning. So, yes, "standing puts greater strain on the circulatory system and on the legs and feet," but a degree of strain is essentially therapeutic.

0. https://www.nutritiousmovement.com/product/move-your-dna-res...

1. https://anniemurphypaul.com/books/the-extended-mind/

2. https://www.psychologytoday.com/us/blog/the-athletes-way/201...

3. https://www.youtube.com/watch?v=lEpEAdCWnw8


I figured out how this works. The secret sauce is this code, which uses regular expressions to rewrite the MySQL SQL queries for compatibility with SQLite!

https://github.com/aaemnnosttv/wp-sqlite-db/blob/14f9e917c55...


for machine learning i can recommend the course by Philipp Henigg from Uni of Tuebingen

https://www.youtube.com/playlist?list=PL05umP7R6ij1tHaOFY96m...


Stat110[0] (Harvard) on EdX! The professor, Joe Blitzstein, is incredible. Easily one of the best classes I have ever taken.

[0] https://www.edx.org/course/introduction-to-probability


does this require stats/probability knowledge?

on that topic, can anyone recommend an online stats/probability course? I tried the coursera one by Sebastian Thrun and couldn't get far into it because the "TA" examples were unintelligible.


Josh Comeaus css course is one of the most amazing courses I’ve ever purchased. I also wouldn’t be a web dev without Wes Bos and his courses. Brad Traversy, Max Depps sorry I know I’m spelling your name wrong, also Stephen Grider. Also can’t forget the amazing Scott Tolinkski and level tuts. These guys are amazing instructors and I’m happy to give them my money, more so if they’re on their own platforms

I don't have a "Do all These for a Fast Website" list handy, but here are some key points I've found can be applied to most sites:

- Make sites that are fast by default: Small bytes sent over the wire, beyond just initial page load, too. Yes, that does mean that your giant Google Tag Manager/Analytics/3rd party script is bloated. Reach out to 3rd parties about reducing their payload size, it's saved me several MB over the years. Also, not writing efficient CSS is a huge killer when it comes to byte site. Devs shouldn't "leave it just in case" when it comes to code, you have version control for a reason. And when a new feature comes out, clear out the old cruft.

- Avoid unnecessary DB calls: Obviously you need to get the data onto the page somehow, but if you can server-side render, then cache that result, you're reducing the overall calls to the DB. Also, optimizing queries to return only-what-you-need responses helps reducing total bytes over the wire

- Balance between Server and Client side: Not only are servers getting more powerful, so are client devices. Some logic can be offloaded to clients in most cases, but there needs to be a balance. Business-critical logic should probably be done server side, but things like pagination & sorting -- so long as they client will likely see or use all the data -- is fine in my book. Having 2000 rows of JSON in memory is totally OK, but rendering 2000 at once might cause some issues. Again, balance

- Hopping on the latest-and-greatest bandwagon isn't the best: Devs hate re-writing the site every 6 months, and really the newest framework might not be the best for your use case. Keep up to date with new technology, but saying "not for me" is fine.

- Don't let (non technical) managers make technology decision: See above. More often than not, C-levels want to use shiny new things they read an article about on LinkedIn once, no matter if it fits the needs of the company or not. Thankfully I've only been at one place that was like that, but while I was there it was hell. Current VP was an original developer on the site back in the early 00's, so he knows how to deflect BS for us. That VP also knows that he's outdated in his knowledge by now, so he trust the Devs to make technical decisions that are best for the company.


Yes co-founder here. Been building apps with it for 2 years now. Its really powerful for building data intensive UIs. Have built full scale dashboard solutions for enterprises, buys with a large CRM like 5 companies combined into one system large. Also quite far along building an MRP on it for a small factory. The flexibility is what really makes it super. Client says the UX is not great for a specific task, no problem. Let’s imagine something better. Also scales well when bringing on new devs in the team coz its such a structured way of writing UIs.

Limitations, definitely needs a lot more connections for other DBs etc. Also we need first class support for auth and athorization, currently bring your own openid connect provider.


It is amazing and frustrating to me how much latency affects my productivity. I wish I could more effortlessly switch between tasks, or just meditate and relax while I wait for something I just did on the REPL to finish. But I don't. More often than not, a 30-second delay to e.g. plot something destroys my ability to stay in a productive zone.

I have been using Julia 1.6 since the release, and I'm so grateful not only that some computations run a bit faster, but that the interactivity is so improved.

Even seeing a progress bar can help me stay focused, because it can be fun to watch (parallel precompilation is especially fun). When a command just hangs, I feel left in the dark about how much boredom I'll have to endure.


One of the things that I always find missing in these libraries/collections is a date/time picker. I know these are available via many separate projects, but it's nice if one picks a collection like that, that all inputs are homogeneous.

Would anyone be interested in a desktop application with similar functionality, accessing [multiple] hosts via SSH?

Sorry, I should have clarified what I meant by "documents". Notion has a really rich concept of a "document" with deep functionality that other tools typically don't have.

For example notion pages can include full markdown in addition to subdocuments, databases, templates, relationships, reminders, galleries, kanban boards, formulas, lists, calendars, timelines, images, videos, web embeds, code snippets, files, maps, tweets, figma views, etc.

Where other apps do have some overlap, they typically don't have similar sharing functionality. Notion pages can be private, shared, team-visible, or public on the internet.

To more directly compare to your examples:

* Vim - No rich document features, no mobile access, no markdown rendering, no sharing. * Joplin - I haven't used this myself but a quick look seems like it has no sharing or team features. * Obsidian - No sharing features. * Google docs - No rich document features.

Keep is just a notes app. No argument that alternatives exist there. I like Keep because it works well on android and the web and keeps it simple, but there's definitely other options.

FWIW I agree there is alternatives to Notion, in the strictest sense of "alternative". Quip is really close for example. For some use cases (like the article here) you could call Confluence an alternative. But they're just not as flexible or full featured as notion for such a massive variety of use cases across a team. We use notion as a client CRM, project management tool, internal documentation tool, public user guide, discussion space, note app, research log, etc. and there's not really one tool that covers all of those use cases competitively.


We built Papyrs for this (https://papyrs.com). Would be curious to hear your thoughts on this!

Not at all. I'd highly recommend CMU's 15-445/645 Intro to Database Systems course (sponsored by Snowflake lol) because they put all their lectures online on YouTube [1]! Here's what's involved in making fast databases from the syllabus [2]:

This course is on the design and implementation of database management systems. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures (heaps, log-structured), indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins, sorting, aggregation, optimization), and parallel architectures (multi-core, distributed). Case studies on open-source and commercial database systems are used to illustrate these techniques and trade-offs. The course is appropriate for students that are prepared to flex their strong systems programming skills.

[1] https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_...

[2] https://15445.courses.cs.cmu.edu/fall2020/syllabus.html


To piggyback off this - As a graphic designer, I've tried basically all publicly available upscaling tools, and Gigapixel AI is by far the best one.

Check out https://letsenhance.io/ I've been using it for >year to get print quality images. Works great

Best video to see how this rules engine work would be to watch the following video: https://www.youtube.com/watch?v=6_mDiH5_hSc

Zach shows how a simple RPG game is implemented with play-cljc and odoyle-rules


Be aware that CRDTs like automerge are solving a different (and harder) problem than Replicache. They are trying to implement convergence in an asynchronous system where there is no central authority. See the excellent article https://www.inkandswitch.com/local-first.html for more on this type of application.

Most classic web services don't have this requirement because they do in fact have a central authority -- the service itself.

Moreover, for web services, it is crucial that the central authority actually be authoritative. You don't want client and server state kind of gets smooshed together arbitrarily, but for the client's view of the state to be a mere suggestion - one which the server always overrides.

So my view is that CRDTs are not really an appropriate basis for building this kind of feature in a web service.

However I think the tech is awesome (Replicache actually started out as a true CRDT and moved to its current design after extensive iteration with customers).

See https://www.figma.com/blog/how-figmas-multiplayer-technology... for how Figmas came to same conclusion wrt CRDTs for their service.

--

(P|C)ouchDB:

- Using couch as your backend db ends up being a nonstarter for most applications. A distributed multitenant database is a big big thing and a hugely important technical decision. Most orgs are not going to go with couch just to get sync. See https://medium.com/wandering-cto/mobile-syncing-with-couchba... for an example of this.

- The couchdb replication protocol offers no help with conflict resolution. It just tells you there was a conflict and gives you two conflicting documents. This isn't practical for most applications.


> This is not true.

Everything or certain parts of it?

> Using the JSON-to-SQL workflow, I can mess around with feature design and iterate fast, and then crystallise the schema into SQL once it has stopped changing.

Sure, you're experimenting and things are in a state of flux.

I get it. Been there done that, but not in production.

Your customers want features over reliability. This is perfectly OK at a startup - the customers already depend on a system elsewhere but that system does not meet all their needs so they are experimenting with you but if your company runs to the ground tomorrow, they still have not migrated 100% over to you, so they are "safe". If your software loses data, they probably won't even notice until they really start to move over for real and lose money (if they did not do testing for consistency).

In your position I would be honest and say data can be lost or corrupted and thats the price I am willing to pay for flexibility given the resource constraints I have.

It's too expensive to do things properly and customers don't really want that reliability so we can take some risks.

However, it would be naive to say you just designed an ACID complaint KV store by implementing some adhoc KV operations using JSON columns in a RDBMS.

I make a lot of money based off the disasters software like this creates when the original architect of such a system have "moved on" to other companies.

Data corruptions, losses, inconsistencies, meaningless key relationships, subpar performance (one place had two columns - an ID and a JSONB and were wondering why their query performance was poor, the DB locked so much and some updates never appeared to go through or "reset" the data).

There are KV-stores out there, that sell for a pretty penny, handle all KV conflict scenarios natively without the KV-store client having to worry about it (and doing a halfassed, buggy job about it because they are not DB designers and might not even know the bombs they are planting in their code. Maybe ignorance is bliss?). These systems have conflict resolution algorithms, offer CRDTs for the clients to use and engineers who know what they are doing, use them.

> The feature may not even make it to production

Feel free to do whatever you want with code that never makes it to production and affect people's livelihood.

I would argue you don't even need a DB to give you the warm fuzzy feelings and just do everything in memory.

Afterall, memory is cheap and configuring a DB correctly can get too expensive.

As an aside - if you're working at a company that regularly pushes features that do not even make it to production, there's a miscommunication issue.

Your business is bleeding money.

This is not to say overall, your business is not profitable - its just that it's bleeding money in that specific project and other more profitable ones are making up the slack.

At the minimum, the deliverable should be broken down into a POC and, when it's clear a production need absolutely exists, that POC is delivered production ready.

> Writing solid migrations can end up being more complex than the feature code itself

Sure, thats the price you pay for ACID compliance.

Nothing is free. There is no magic.

> I'm using it because the cost of changing the schema for a feature that may only be experimental is too high. I started off changing the schema every time, and it just got too expensive.

Again, you are free to do whatever you want in an experimental setup but we are talking production here.

If your proposal is you push the same design to production that you use in your experimental/POC setup, in a serious, well used and depended on production environment without anyone noticing, I would really like to know more! My contact info in the profile.

If your claim is you have figured out a way to get something for nothing - hmm.

The ROI of the businesses you help run just trended towards infinity!


I'm working on a branching/merging authoring framework and application.

Git, specifically, is bad as a backing store - as merge conflict resolution is not something you want end users to do - it's not friendly. p2p sync (OT/CRDT) is what I'm betting and building on.

If anyone is interested in this space, I'd like to discuss/geek-out on this with you. Please reach out.


I have found DisplayFusion and now PowerToys' FancyZones to be indispensable on Windows desktops with a ton of real estate.

The challenge we faced (for the two days we tried to hack together a solution) wasn’t so much the OCR but the fact that we couldn’t standardize the form as we were onboarding people with the documents from other banks.

Our requirement was that the the software would need to read the number of separating lines in the table and output accordingly.

Maybe it can do this, idk. I was an intern at the time.

We were using tesseract for our attempt too.


Sure

A tool where you are given a picture/scan of a table and it spits out a table that can be pasted into Excel. This was at a bank where numerous people spent half their days manually typing in scanned documents into the same table in Excel. You would double a $70,000 a year financial analyst's productivity with this.

A portal to manage employee and employer documents. I.e where both you and your employer can easily access your T$ (Canadian tax form), offer letter, certifications, police checks, etc.

Software to manage which options a client ordered and what their selection was of that option as well as autogenerate the appropriate SQL queries from a client config template. The current process consisted of a mega word document with people fiddling around manually with it.

Happy to provide more.


set up a mumble server. latency is <20ms, which is far better than discord and the like

I'm using Jamulus for making music with others. It has can reach latencies of < 25ms. Chatting over Jamulus is much more pleasant than talking over a video conferencing application.

I set failglob: `shopt -s failglob`. Makes the whole command fail if there's no matches. That combined with `set -e` which aborts the script in the event of any command failing makes me feel somewhat safe.

Indeed I add the following two lines to every bash script I write:

    set -exu
    shopt -s failglob

ShutUp10 lets you turn this on/off easily with a toggle, as with MANY other "features" of Windows 10 like all the telemetry:

https://www.oo-software.com/en/shutup10


LowEndBox indeed has great deals once in a while, but it's impossible to navigate. You can't search by specs. If you want a cheap VPS/dedicated server with certain specs, try

https://www.serverhunter.com/

And if you don't mind dealing with the russian UI, try

https://poiskvps.ru/


Yeah, I had this problem until I discovered options(error=recover) which drops you into a nice lispy stack. And ya, someone told me about it: I don't know where you'd read about such things. There's probably a dozen alternatives I also don't know where to read about.

Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: