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

Working on a little project to make Spotify recommendations better.

You get to choose the genres you're interested in, and it creates playlists from the music in your library. They get updated every day - think a better version of the Daily Mixes. You can add some advanced filters as well, if you really want to customise what music you'll get.

https://riffradar.org/


You can mail a message on a potato

https://potatoparcel.com/


Neon — Ship Faster with Postgres (https://neon.tech) | Remote | Full Time

Neon is distributed team building open-source, cloud-native Postgres. We are a well-funded startup with deep knowledge of Postgres internals and decades of experience building databases. Our storage layer is written in Rust, and our cloud control plane is written in Go. We are on a mission to enable developers to “Ship faster with Postgres”.

We are hiring for a few positions: * Software Engineer, Developer Productivity

* Software Engineer, Team Lead (Control Plane)

* Software Engineer, Team Lead (Identity)

* Systems Software Engineer

* Site Reliability Engineer (Azure)

* Fullstack Engineer

Careers page with individual links for each open position: https://neon.tech/careers.

If you want to learn more about the engineering work we do, check out some of these blog posts:

* https://neon.tech/blog/how-we-scale-an-open-source-multi- tenant-storage-engine-for-postgres-written-rust

* https://neon.tech/blog/paxos

* https://neon.tech/blog/architecture-decisions-in-neon

Please email me directly via david at neon dot tech!


I run a personal finance app that's built as a PWA (https://tender.run, my email is in my profile).

I would say running as a PWA has been a mixed bag. There are quite a few missing features across web platforms (for starters, background sync, full featured push notifications, haptics) that make it hard to be competitive with native apps. Every WWDC, we watch in hopes that Safari gets more PWA features, but it's a thin drip. There's a reason so many apps repackage into electron/cordova/whatever shells.

As other folks in thread have pointed out, it's probably worth thinking through why a product works particularly as a PWA vs alternative distribution methods.


Designing Data-Intensive Applications by Martin Kleppmann. It's my "this is the book I wish I read when I started programming"

> Would setting constraints in the browser be feasible?

yes. IIRC Cassowary constraint solving was proposed in 1999. It was dismissed because they thought it would be too costly on the hardware of the time.


If you’re looking for a new GPU cloud because of this, we’ve put all these providers in on place, console, and API so you can find a new one for your needs at https://shadeform.ai

* I’m one of the founders


I've been working on a local-first personal finance/expense tracker called Tender: https://tender.run

Tender runs as a PWA and uses the Automerge crdt and sqlite via wasm. The app more or less runs entirely in your browser (works offline!), though our server proxies connections to pull in plaid/splitwise data.

Feature-wise, we're targeting folks who do want to manage their expenses but not have to do fine-grained budgeting. There's tools for tracking getting paid back and a splitwise integration as well. The app is desktop-centric right now, but we're working on getting a good mobile workflow together too.

Since everything is browser-based, it was actually quite easy to get a demo sandbox environment working. You can give it a quick spin here: https://demo.tender.run


Lots of what the article talks about pertains to the difference between a 'full DE' and 'just a WM'. Gnome and KDE fall in the first category. They have a notification system, lockscreens, app launcher, etc by default. Hyprland doesn't. It puts windows on your screen and allows you to control their layout, everything beyond that, you can add yourself.

This article mentions dunst for notifications, Rofi for app launchers, Waybar for a status bar, swaylock for screen locking, ... I've been having a great time using just AGS [0]. AGS, at its core, is a framework to write all of those tools. It is based on the same technology that Gnome Shell uses, i.e. GJS. You can build up all of the widgets you want and need using Gtk and replace all of the tools I mentioned before. But be warned: AGS only provides you with the libraries you need, you'll still need to build the UI yourself. Unless you copy someone else's configuration of course ;)

[0] https://github.com/aylur/ags


Hey HN, the engineering team at Bluesky is especially excited to get to this point! We're happy to help answer questions and help anyone trying to run their own PDS host. Things should work pretty well for self-hosters right now, but we're standing by to help if there are any problems.

Technical details and the installer are in the GitHub repo https://github.com/bluesky-social/pds

And we're on Discord available to help: https://discord.com/invite/UWS6FFdhMe


Congrats!

For anyone who's interested, there's a group of us dedicated to natural myopia reduction at reducedlens.org, which is a free and open-source fork of endmyopia. I've even started measuring my axial length to try and get better data on if this stuff actually works (only one measurement so far though, so nothing interesting yet).

The nature paper was pretty crazy. Basically because blue bends more than red (think of a prism), it also focuses a bit sooner. This phenomenon is known as longitudinal chromatic aberration, or LCA for short. This means if you're myopic, blue might be more blurry than red, and vice-versa if you're hyperopic. The researchers in the nature paper had participants watch a movie where they straight-up blurred the blue or red with software, in order to produce fake LCA signals. They found the participants axial lengths still shortened or lengthened anyway in response.


I mean, this is the company where the only security certification advertised on their website for macOS [1][2] only achieved the lowest possible level of security, EAL1.

A level only fit for products where [3]: "some confidence in correct operation is required, but the threats to security are not viewed as serious" which is one level lower than "demonstrating resistance to penetration attackers with a basic attack potential" [4]. Which is four full levels below "demonstrating resistance to penetration attackers with a moderate attack potential" [5].

Apple has never once, over multiple decades of failed attempts, demonstrated "resistance to penetration attackers with a moderate attack potential" for any product. It should be no surprise that the systems, processes, and people who lack the knowledge, ability, technology, and experience to make a system resistant to moderate attackers, despite nearly unlimited resources, have the security of their systems completely defeated by moderate attacks like small groups of skilled researchers. Apple positively, absolutely, 100%, certifies they can not. Though, it would be nice if their marketing were restricted to what their engineering can prove.

[1] https://support.apple.com/guide/certifications/macos-securit...

[2] https://support.apple.com/library/APPLE/APPLECARE_ALLGEOS/CE...

[3] https://www.commoncriteriaportal.org/files/ccfiles/CC2022PAR... Page 14

[4] https://www.commoncriteriaportal.org/files/ccfiles/CC2022PAR... Page 16

[5] https://www.commoncriteriaportal.org/files/ccfiles/CC2022PAR... Page 20


You don't need so many layers of stuff (or API keys, signups, or other nonsense).

Llama.cpp (to serve the model) + the Continue VS Code extension are enough.

The rough list of steps to do so are:

  Part A: Install llama.cpp and get it to serve the model:
  --------------------------------------------------------
  1. Install the llama.cpp repo and run make.
  2. Download the relevant model (e.g. wizardcoder-python-34b-v1.0.Q4_K_S.gguf).
  3. Run the llama.cpp server (e.g., ./server -t 8 -m models/wizardcoder-python-34b-v1.0.Q4_K_S.gguf -c 16384 --mlock).
  4. Run the OpenAI like API server [also included in llama.cpp] (e.g., python ./examples/server/api_like_OAI.py).

  Part B: Install Continue and connect it to llama.cpp's OpenAI like API:
  -----------------------------------------------------------------------
  5. Install the Continue extension in VS Code.
  6. In the Continue extension's sidebar, click through the tutorial and then type /config to access the configuration.
  7. In the Continue configuration, add "from continuedev.src.continuedev.libs.llm.ggml import GGML" at the top of the file.
  8. In the Continue configuration, replace lines 57 to 62 (or around) with:

    models=Models(
        default=GGML(
            max_context_length=16384,
            server_url="http://localhost:8081"
        )
    ),

  9. Restart VS Code, and enjoy!
You can access your local coding LLM through the Continue sidebar now.

We provide both bun and deno as typescript runtimes for windmill.dev (oss retool alternative) and we get overwhelming feedback that people are confused by the little changes required to adapt to deno and would rather just stick to the node.js mode aka bun. Now that bun is getting close to 1:1 node.js support, I predict we will see a lot more bun everywhere.

@Jarred was super responsive to help me adapt bun to our distributed cache storage, so all props to him.


I mean, ps2pdf be with you (it ships with Ghostscript), or, if you must, use a Web service[1]. PostScript was fairly common for papers before PDFTeX and while Adobe still attempted to control PDF using their patents.

That said, the System P₂ papers might be more helpful[2,3]. The System P paper[4] is indeed more about the inference algorithm and less about the motivation—perhaps the accompanying slides[5] will help some, alongside the first two papers?

[1] https://www.ps2pdf.org/

[2] “What are principal typings and what are they good for?” (POPL ’96), https://dl.acm.org/doi/10.1145/237721.237728

[3] “Rank 2 type systems and recursive definitions” (MIT-LCS-TM-531), https://hdl.handle.net/1721.1/149246.2

[4] “A polar type system” (ITRS ’00), http://trevorjim.com/papers/polar.ps.gz or http://www.macs.hw.ac.uk/~jbw/itrs/itrs00/papers/Jim:ITRS-20... or https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...

[5] http://www.macs.hw.ac.uk/~jbw/itrs/itrs00/slides/Jim:ITRS-20...


I think this depends on how you interpret it. All the docs[0] say are:

> Patterns which should be version-controlled and distributed to other repositories via clone (i.e., files that all developers will want to ignore) should go into a .gitignore file.

and

> Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user’s workflow) should go into the $GIT_DIR/info/exclude file.

To me it seems obvious that all developers would want to ignore .DS_Store even if only some of them would generate it. And certainly you want it distributed to other mac users when they clone. Further, it's certainly not the case that .DS_Store is specific to just one user's workflow. On all three cases therefore gitignore would be reasonably appropriate.

[0]: https://git-scm.com/docs/gitignore



I certainly recognized several Mercurial features and concepts in Sapling.

For example, I use Mercurial’s absorb command [1] and was pleased to see it in Sapling.

Overall this looks promising.

[1]: https://gregoryszorc.com/blog/2018/11/05/absorbing-commit-ch...


Had a really good experience with FS.com.

To the point that we even printed out a picture of their warehouse from google maps and wrote “thank you” on it before stapling it to the wall.

They were the best support we received.


No guarantee that it'll fix it but for me it helped to disable ASPM, details in https://forum.odroid.com/viewtopic.php?t=39678

These steps work like a charm to stop SPAM calls and junk postal mail:

- Stop unwanted postal mail https://www.usa.gov/telemarketing#item-35222

- Stop credit and insurance offers https://www.optoutprescreen.com/selection

- Stop "direct mail" for $4 https://www.dmachoice.org/

- For everything else, collect your junk mail and occasionally go through each piece individually and enter it into https://www.catalogchoice.org/


This is because you have forgotten to return a `Vary: Origin` header in the response. If you don’t do this, caches will presume the response is the same regardless of the Origin header in the request and so you will get the bug you describe.

> Do not fall into the trap of anthropomorphising Larry Ellison. You need to think of Larry Ellison the way you think of a lawnmower. You don't anthropomorphize your lawnmower, the lawnmower just mows the lawn, you stick your hand in there and it'll chop it off, the end. You don't think 'oh, the lawnmower hates me' -- lawnmower doesn't give a shit about you, lawnmower can't hate you. Don't anthropomorphize the lawnmower. Don't fall into that trap about Oracle. — Brian Cantrill (https://youtu.be/-zRN7XLCRhc?t=33m1s)

Quote previously posted: https://news.ycombinator.com/item?id=15886728

:-)


HAMT: Hash Array Mapped Trie. This data structure makes efficient immutable data possible. You can update a list of a million items, and keep a reference to the original list, by changing 3 or 4 references and some bytes.

This should replace copy-on-write for scripting languages. I really want to see it in a JS spec soon. There are libraries that can do it, but they add translation penalties and extra steps. I’d complain less if I could use Clojurescript professionally, because it and Clojure are built around them.

https://en.m.wikipedia.org/wiki/Hash_array_mapped_trie


Really? $250/user/year, for how many users?

There was recently a thread about someone asking about password management solutions for an organization of 10k employees, and someone recommended 1Password, which I already find hard to believe it could ever make financial and operational sense. [0]

Now, these prices from GH can make sense if you are a team of 10-50, but I wonder what would be the point where it wouldn't take a bean-counter to say "can't we just hire someone else do that in-house, part-time? It would cost as much or less, but at least we would have a lot more control over the system and we wouldn't be at the mercy of a company that treats us as cattle."

I see on your profile page you are on Matrix. Would you mind if I add you there to chat (or add me @raphael:communick.com)? Seems like your company could have so many different cheaper and better solutions for their needs, I've been thinking for a while whether there could be a market in "open source strategy consulting".

[0]: https://news.ycombinator.com/item?id=31582161


FIDO usb devices just use the HID protocol so they work fine on linux. Chrome and Firefox both support them.

I wrote a FIDO implementation that protects the signing key using the system's TPM specifically for linux: https://github.com/psanford/tpm-fido

There is no reason why you couldn't implement a similar syncing strategy in a tool like this if you wanted to.


So it's a lot to get into, but these fellas put together a wonderful break-down of why blimps are worth trying again: https://www.youtube.com/watch?v=chlF5oubFHU

I fancy doing the domain modeling in F# since it lends well to that and the business logic in C#.

https://fsharpforfunandprofit.com/ddd/


Sure thing https://gist.github.com/erinok/0247c134a57acdb2e2daafdf1d77a...

It's a handful of commands because git-cam and git-wip referenced other little utility scripts, so hopefully I got them all. Probably it would be easy to rewrite to be standalone.

I'm on a mac, and I have ripgrep installed as "rg". Ymmv, glhf :-)

So:

"git cam" commits everything with message "nt"

"git wip" undoes all the nt commits but leaves the results staged, ready to be commited as a single properly worded commit (or play w/ what's staged and do as several commits)


RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=/path/to/mold" cargo build

or persitant in your project:

.cargo/config.toml

[target.x86_64-unknown-linux-gnu] linker = "clang" rustflags = ["-C", "link-arg=-fuse-ld=/PATH/TO/mold"]


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

Search: