The best Hacker News stories from Show from the past week
Latest posts:
Show HN: Tetris, but the blocks are ARM instructions that execute in the browser
OFRAK Tetris is a project I started at work about two weeks ago. It's a web-based game that works on desktop and mobile. I made it for my company to bring to events like DEF CON, and to promote our binary analysis and patching framework called OFRAK.<p>In the game, 32-bit, little-endian ARM assembly instructions fall, and you can modify the operands before executing them on a CPU emulator. There are two segments mapped – one for instructions, and one for data (though both have read, write, and execute permissions). Your score is a four byte signed integer stored at the virtual address pointed to by the R12 register, and the goal is to use the instructions that fall to make the score value in memory as high as possible. When it's game over, you can download your game as an ELF to relive the glory in GDB on your favorite ARM device.<p>The CPU emulator is a version of Unicorn (<a href="https://www.unicorn-engine.org/" rel="nofollow noreferrer">https://www.unicorn-engine.org/</a>) that has been cross-compiled to WebAssembly (<a href="https://alexaltea.github.io/unicorn.js/" rel="nofollow noreferrer">https://alexaltea.github.io/unicorn.js/</a>), so everything on the page runs in the browser without the need for any complicated infrastructure on the back end.<p>Since I've only been working on this for a short period of time leading up to its debut at DEF CON, there are still many more features I'd eventually like to implement. These include adding support for other ISAs besides ARM, adding an instruction reference manual, and lots of little cleanups, bug fixes, and adjustments.<p>My highest score is 509,644,979, but my average is about 131,378.<p>I look forward to feedback, bug reports, feature requests, and strategy discussions!
Show HN: Tetris, but the blocks are ARM instructions that execute in the browser
OFRAK Tetris is a project I started at work about two weeks ago. It's a web-based game that works on desktop and mobile. I made it for my company to bring to events like DEF CON, and to promote our binary analysis and patching framework called OFRAK.<p>In the game, 32-bit, little-endian ARM assembly instructions fall, and you can modify the operands before executing them on a CPU emulator. There are two segments mapped – one for instructions, and one for data (though both have read, write, and execute permissions). Your score is a four byte signed integer stored at the virtual address pointed to by the R12 register, and the goal is to use the instructions that fall to make the score value in memory as high as possible. When it's game over, you can download your game as an ELF to relive the glory in GDB on your favorite ARM device.<p>The CPU emulator is a version of Unicorn (<a href="https://www.unicorn-engine.org/" rel="nofollow noreferrer">https://www.unicorn-engine.org/</a>) that has been cross-compiled to WebAssembly (<a href="https://alexaltea.github.io/unicorn.js/" rel="nofollow noreferrer">https://alexaltea.github.io/unicorn.js/</a>), so everything on the page runs in the browser without the need for any complicated infrastructure on the back end.<p>Since I've only been working on this for a short period of time leading up to its debut at DEF CON, there are still many more features I'd eventually like to implement. These include adding support for other ISAs besides ARM, adding an instruction reference manual, and lots of little cleanups, bug fixes, and adjustments.<p>My highest score is 509,644,979, but my average is about 131,378.<p>I look forward to feedback, bug reports, feature requests, and strategy discussions!
Show HN: Applite – Clean Homebrew front end app for macOS built with SwiftUI
Show HN: Applite – Clean Homebrew front end app for macOS built with SwiftUI
Show HN: Get notified when sites update their terms of service
After reading about what happened with NightOwl yesterday [0], I thought about what it would take to be aware of things like that in the future. I created ToSNotify to automatically notify you when a website's terms change.<p>A harder problem I've been thinking through is how to know which terms to track, since it'd be a pain to add every site I have an account with. One idea I had is to automatically get terms for apps you have installed from the app store. Any other ideas/feedback are appreciated!<p>[0]: <a href="https://news.ycombinator.com/item?id=37052508">https://news.ycombinator.com/item?id=37052508</a>
I'm 17 and wrote this guide on how CPUs run programs
Show HN: Easyful – A Free Gumroad Alternative
Hi HN,<p>If you’re selling templates or digital assets online, platforms like Gumroad have a ton of amazing features . . . but they’re also expensive. It’s not uncommon to be paying 10%, 20% or even 30% of your revenue just to host and deliver some digital content to customers.<p>Instead, we think most creators should own their own Stripe account and use a lightweight fulfillment layer to send customers their orders.<p>So we built Easyful, a platform built on Stripe to email your content to customers when they buy it. And it’s free!<p>We’ve been using Easyful ourselves for a few months now. Try it out and let us know what you think!
Show HN: Chat with your data using LangChain, Pinecone, and Airbyte
Hi HN,<p>A few of our team members at Airbyte (and Joe, who killed it!) recently played with building our own internal support chat bot, using Airbyte, Langchain, Pinecone and OpenAI, that would answer any questions we ask when developing a new connector on Airbyte.<p>As we prototyped it, we realized that it could be applied for many other use cases and sources of data, so... we created a tutorial that other community members can leverage [<a href="http://airbyte.com/tutorials/chat-with-your-data-using-openai-pinecone-airbyte-and-langchain">http://airbyte.com/tutorials/chat-with-your-data-using-opena...</a>] and the Github repo to run it [<a href="https://github.com/airbytehq/tutorial-connector-dev-bot">https://github.com/airbytehq/tutorial-connector-dev-bot</a>]<p>The tutorial shows:
- How to extract unstructured data from a variety of sources using Airbyte Open Source
- How to load data into a vector database (here Pinecone), preparing the data for LLM usage along the way
- How to integrate a vector database into ChatGPT to ask questions about your proprietary data<p>I hope some of it is useful, and would love your feedback!
Show HN: Doculite – Use SQLite as a Document Database
Hi!<p>As I was working on a side project, I noticed I wanted to use SQLite like a Document Database on the server.
So I built Doculite. DocuLite lets you use SQLite like Firebase Firestore. It's written in Typescript and an adapter on top of sqlite3 and sqlite.<p>Reasons:<p>1) Using an SQL Database meant having less flexibility and iterating slower.<p>2) Alternative, proven Document Databases only offered client/server support.<p>3) No network. Having SQLite server-side next to the application is extremely fast.<p>4) Replicating Firestore's API makes it easy to use.<p>5) Listeners and real-time updates enhance UX greatly.<p>6) SQLite is a proven, stable, and well-liked standard. And, apparently one of the most deployed software modules right now. (src: <a href="https://www.sqlite.org/mostdeployed.html" rel="nofollow noreferrer">https://www.sqlite.org/mostdeployed.html</a>)<p>What do you think? Feel free to comment with questions, remarks, and thoughts.<p>Happy to hear them.<p>Thanks
Show HN: Phind V2 – A GPT-4 agent that’s connected to the internet and your code
Hi HN - Today we’re launching V2 of Phind.com, an assistant for programmers that combines GPT-4 with the ability to search the web and your codebase to solve nearly any technical problem – no matter how difficult.<p>We’re incredibly grateful for the feedback we received when we first launched GPT-4 answers back in April (<a href="https://news.ycombinator.com/item?id=35543668">https://news.ycombinator.com/item?id=35543668</a>). As Phind has gotten better at complex programming tasks, the questions it gets asked have gotten more complex as well. In the past, we would always perform a web search for every input. This limitation constrained Phind’s answers to what was present in the search results, preventing us from making Phind a more powerful debugger and making it challenging to integrate Phind with your codebase.<p>We’ve addressed all these shortcomings in Phind V2. This release has three major updates: (1) Phind is now a pair programming agent that knows when to browse the web, ask clarifying questions, and call itself recursively; (2) the answering engine defaults to GPT-4, and you can use it without a login; (3) we integrate with your codebase via our new VS Code extension.<p>We realized that search is only one of many tools that Phind should be able to use. As such, Phind has been re-engineered to be an agent that can dynamically choose whatever tool best helps the user – it’s now smart enough to decide when to search and when to enter a specialized debug mode. Instead of making assumptions about your code and proceeding blindly, Phind can ask you questions and clarify its assumptions. When a problem requires multiple searches or logical steps to solve, Phind can call itself recursively and perform multi-step reasoning without user input.<p>We’ve heard from you that switching between your IDE and Phind in the browser has been a major pain point. No longer – we’re launching a VS Code extension that brings Phind into the IDE and finally connects Phind with the context of your codebase. Phind in VS Code automatically determines which parts of your code are relevant to your search and can help you squash bugs in a single click.<p>To maximize Phind’s alignment with your preferred answer style, we’ve also added a feature called Answer Profile where you can tell the AI about yourself. Phind will apply this answering style across the board, automatically.<p>Here are some examples of the new Phind answering questions it could not before:<p>Clarifying assumptions to help a user with debugging: <a href="https://www.phind.com/agent?cache=cljmjzjgn0000jo085otq111f">https://www.phind.com/agent?cache=cljmjzjgn0000jo085otq111f</a><p>Designing a highly specific and custom database schema: <a href="https://www.phind.com/agent?cache=clkwpprz600g4jt08dl21e7r6">https://www.phind.com/agent?cache=clkwpprz600g4jt08dl21e7r6</a><p>Splitting a Wordpress theme across multiple files: <a href="https://www.phind.com/agent?cache=clknqywuq001pji083sdacf9p">https://www.phind.com/agent?cache=clknqywuq001pji083sdacf9p</a><p>Phind’s asking clarification questions in debug mode: <a href="https://www.phind.com/agent?cache=cljmjzjgn0000jo085otq111f">https://www.phind.com/agent?cache=cljmjzjgn0000jo085otq111f</a><p>Phind extension answering questions about a local codebase: <a href="https://www.phind.com/agent?cache=ra4kh2v3epgv5iw7z6dlzuo4">https://www.phind.com/agent?cache=ra4kh2v3epgv5iw7z6dlzuo4</a><p>Answering questions about a local codebase using the web: <a href="https://www.phind.com/agent?cache=ztiaju6xwtpi39l2kjdnwh20">https://www.phind.com/agent?cache=ztiaju6xwtpi39l2kjdnwh20</a><p>We are incredibly grateful for the feedback the HN community has given us and are excited to hear your thoughts about this release!<p>Cheers,
Michael and Justin
Postgres Language Server
hey HN. this is a Language Server[0] designed specifically for Postgres. A language server adds features to IDEs (VSCode, NeoVim, etc) - features like auto-complete, go-to-definition, or documentation on hover, etc.<p>there have been previous attempts at adding Postgres support to code editors. usually these attempts implement a generic SQL parser and then offer various "flavours" of SQL.<p>This attempt is different because it uses the actual Postgres parser to do the heavy-lifting. This is done via libg_query, an excellent C library for accessing the PostgreSQL parser outside of the server. We feel this is a better approach because it gives developers 100% confidence in the parser, and it allows us to keep up with the rapid development of Postgres.<p>this is still in early development, and mostly useful for testers/collaborators. the majority of work is still ahead, but we've verified that the approach works. we're making it public now so that we can develop it in the open with input from the community.<p>a lot of the credit belongs to pganalyze[1] for their work on libpg_query, and to psteinroe (<a href="https://github.com/psteinroe">https://github.com/psteinroe</a>) who the creator and maintainer.<p>[0] LSP: <a href="https://microsoft.github.io/language-server-protocol/" rel="nofollow noreferrer">https://microsoft.github.io/language-server-protocol/</a><p>[1] pganalyze: <a href="https://pganalyze.com/" rel="nofollow noreferrer">https://pganalyze.com/</a>
Show HN: Hydra 1.0 – open-source column-oriented Postgres
hi hn, hydra ceo here<p>hydra is an open source, column-oriented postgres. you can set up remarkably fast aggregates on your project in minutes to query billions of rows instantly.<p>postgres is great, but aggregates can take minutes to hours to return results on large data sets. long-running analytical queries hog database resources and degrade performance. use hydra to run much faster analytics on postgres without making code changes. data is automatically loaded into columnar format and compressed. connect to hydra with your preferred postgres client (psql, dbeaver, etc).<p>following 4 months of development on hydra v0.3.0-alpha, our team is proud to share our first major version release. hydra 1.0 is under active development, but ready for use and feedback. we’re aiming to release 1.0 into general availability (ga) soon.<p>for testing, try the hydra free tier to create a column-oriented postgres instance on the cloud. <a href="https://dashboard.hydra.so/signup">https://dashboard.hydra.so/signup</a>
Show HN: Learn a language quickly by practising speaking with AI
Hi guys,<p>Hope everyone is well. This app was borne out of my own frustration. I thought that I was terrible at learning languages at school, since I didn't become conversational in French after 5 years of study. However, I later traveled with some French friends and, in just under 3 weeks, I was able to hold a reasonable conversation. I realized that there's no substitute for speaking to native speakers.<p>I tried to adopt this approach for other languages, but it's much harder to find people to practise with when you aren't travelling. I started using iTalki to meet people from different countries and chat to them. It quickly became very expensive and time-consuming to schedule the calls, so I gave up.<p>I made PrettyPolly so that anyone can easily practice speaking 26 languages orally. The app uses ChatGPT (amongst other tools) to allow you to practice speaking whenever you want. It also generates a fluency score for each conversation so that you have an objective way of tracking progress.<p>It's free to use (up to 15 conversations per month). I've found that using it once or twice per day is plenty, and you'll be amazed at how much you will pick up in a week. I've added some FAQs here in case useful - <a href="https://www.prettypolly.app/learn" rel="nofollow noreferrer">https://www.prettypolly.app/learn</a><p>Would really appreciate any feedback. Let me know if you have any questions, issues or suggestions.<p>Thanks,
Chris
Show HN: Magic Loops – Combine LLMs and code to create simple automations
Howdy! We built this as an experiment in personal-programming, combining the best of LLMs and code to help automate tasks around you. I personally use it to track the tides and get notified when certain conditions are met, something that pure LLMs had trouble dealing with and pure code was often too brittle for.<p>We created it after getting frustrated with the inability of LLMs to deal with numbers and the various hoops we had to jump through to make ChatGPT output repeatable.<p>At the core, Magic Loops are just a series of "blocks" (JSON) that can be triggered with different inputs (email, time, webhook), then operate on those inputs using a combination of LLMs and code, and then output those results (email, text, webhook). Under the hood, the LLM calls are using GPT-4 via OpenAI and the code is run in sandboxed (no internet) Docker containers in AWS.<p>You have full control over each step of the loop, but you can also create (or attempt to create) a Magic Loop by simply describing what you want. We use GPT-4 to break that request into feasible steps, and then create a Magic Loop scaffold. Of course, you should still validate the loop before publishing it!<p>We've seen some neat use cases already:<p>- "Text me when the tide is less than 1ft between 7am and 7pm at Fort Funston"<p>- "Summarize an email using this format and forward it to this address"<p>- "Text me every time our store does more than $1000/day in volume on Shopify"<p>- "Take specific data from Cloudflare, format it, and send it to Mixpanel every hour"<p>We hope you enjoy what's essentially an experiment at this point. If folks like the concept, we're thinking about open sourcing it so you can run the loops locally with the code runtimes you wish (rather than in our code runners).<p>Let us know what you think, and more importantly, what you wish to build or automate!<p>Cheers,
Adam & Mihai
Show HN: LearnLingo – Converse with an AI-powered language tutor
Hey folks! I'm Callum, and I'm working on a way to practice a new language with an AI powered tutor.<p>I've always found that the hardest part of learning a new language is finding someone to actually converse with. Even if a partner can be found, the pressure can mean that you are more focused on not making mistakes than on actually learning new grammar or vocabulary.<p>The service that I have been working on allows you to practice with a language tutor via online chat messages, or you can have a turn-based voice conversation.<p>I'm working on a number of other features that will be coming out shortly, including a few games for practising pronunciation and listening skills, as well as a plan to release some lesson plans for specific languages later on.<p>Have a try, and let me know if you have any feedback!
Show HN: Linkwarden – An open source collaborative bookmark manager
Hey there HN!
Meet Linkwarden, a fully self-hostable, open-source collaborative bookmark manager to collect, organize and archive webpages.<p>Please also visit/star our GitHub repo [1].<p>Linkwarden was built using TypeScript and NextJS, backed by a PostgreSQL database for the lighter-weight data. The rest of the data can be chosen either to be stored on the filesystem, or stored on the cloud on Digital Ocean Space/AWS S3, the reason for the cloud storage solution was for the Cloud offering [2], we realized that the preserved webpages (archives) take up space pretty quickly and S3 was much more efficient for this task. On the front-end we used TailwindCSS for styling and Zustand for state management.<p>You could either use our Cloud offering (with 14-day free trial) to directly support this project and experience Linkwarden, or you could self-host it on your own machine and have maximum flexibility.<p>Feel free if you had any questions, we'll do our best to answer it.<p>[1]: <a href="https://github.com/linkwarden/linkwarden">https://github.com/linkwarden/linkwarden</a><p>[2]: <a href="https://cloud.linkwarden.app/register" rel="nofollow noreferrer">https://cloud.linkwarden.app/register</a> - Hosted in Digital Ocean's datacenter located here in Toronto, ON.
Show HN: Markwhen: Markdown for Timelines
I've been working on markwhen for a bit as a way to create timelines and calendars from plain text, like markdown.<p>I personally like tools that let you immediately start using them, and I set out to do that here with markwhen.<p>Let me know if you have any questions or feedback!
Show HN: Markwhen: Markdown for Timelines
I've been working on markwhen for a bit as a way to create timelines and calendars from plain text, like markdown.<p>I personally like tools that let you immediately start using them, and I set out to do that here with markwhen.<p>Let me know if you have any questions or feedback!
Show HN: Khoj – Chat offline with your second brain using Llama 2
Hi folks, we're Debanjum and Saba. We created Khoj as a hobby project 2+ years ago because: (1) Search on the desktop sucked; we just had keyword search on the desktop vs google for the internet; and (2) Natural language search models had become good and easy to run on consumer hardware by this point.<p>Once we made Khoj search incremental, I completely stopped using the default incremental search (C-s) in Emacs. Since then Khoj has grown to support more content types, deeper integrations and chat (using ChatGPT). With Llama 2 released last week, chat models are finally good and easy enough to use on consumer hardware for the chat with docs scenario.<p>Khoj is a desktop application to search and chat with your personal notes, documents and images. It is accessible from within Emacs, Obsidian or your Web browser. It works with org-mode, markdown, pdf, jpeg files and notion, github repositories. It is open-source and can work without internet access (e.g on a plane).<p>Our chat feature allows you to extract answers and create content from your existing knowledge base. Example: <i>"What was that book Trillian mentioned at Zaphod's birthday last week"</i>. We personally use the chat feature regularly to find links, names and addresses (especially on mobile) and collate content across multiple, messy notes. It works online or offline: you can chat without internet using Llama 2 or with internet using GPT3.5+ depending on your requirements.<p>Our search feature lets you quickly find relevant notes, documents or images using natural language. It does not use the internet. Example: Search for <i>"bought flowers at grocery store"</i> will find notes about <i>"roses at wholefoods"</i>.<p>Quickstart:<p><pre><code> pip install khoj-assistant && khoj
</code></pre>
See <a href="https://docs.khoj.dev/#/setup">https://docs.khoj.dev/#/setup</a> for detailed instructions<p>We also have desktop apps (in beta) at <a href="https://github.com/khoj-ai/khoj/releases/tag/0.10.0">https://github.com/khoj-ai/khoj/releases/tag/0.10.0</a> if you want to try them out.<p>Please do try out Khoj and let us know if it works for your use cases? <i>Looking forward to the feedback!</i>
Show HN: Khoj – Chat offline with your second brain using Llama 2
Hi folks, we're Debanjum and Saba. We created Khoj as a hobby project 2+ years ago because: (1) Search on the desktop sucked; we just had keyword search on the desktop vs google for the internet; and (2) Natural language search models had become good and easy to run on consumer hardware by this point.<p>Once we made Khoj search incremental, I completely stopped using the default incremental search (C-s) in Emacs. Since then Khoj has grown to support more content types, deeper integrations and chat (using ChatGPT). With Llama 2 released last week, chat models are finally good and easy enough to use on consumer hardware for the chat with docs scenario.<p>Khoj is a desktop application to search and chat with your personal notes, documents and images. It is accessible from within Emacs, Obsidian or your Web browser. It works with org-mode, markdown, pdf, jpeg files and notion, github repositories. It is open-source and can work without internet access (e.g on a plane).<p>Our chat feature allows you to extract answers and create content from your existing knowledge base. Example: <i>"What was that book Trillian mentioned at Zaphod's birthday last week"</i>. We personally use the chat feature regularly to find links, names and addresses (especially on mobile) and collate content across multiple, messy notes. It works online or offline: you can chat without internet using Llama 2 or with internet using GPT3.5+ depending on your requirements.<p>Our search feature lets you quickly find relevant notes, documents or images using natural language. It does not use the internet. Example: Search for <i>"bought flowers at grocery store"</i> will find notes about <i>"roses at wholefoods"</i>.<p>Quickstart:<p><pre><code> pip install khoj-assistant && khoj
</code></pre>
See <a href="https://docs.khoj.dev/#/setup">https://docs.khoj.dev/#/setup</a> for detailed instructions<p>We also have desktop apps (in beta) at <a href="https://github.com/khoj-ai/khoj/releases/tag/0.10.0">https://github.com/khoj-ai/khoj/releases/tag/0.10.0</a> if you want to try them out.<p>Please do try out Khoj and let us know if it works for your use cases? <i>Looking forward to the feedback!</i>