News for hackers. Stuff that matters.

acutesoftware

Re:Doomscrolling Ourselves to Death on Sunday September 06, 2026 @06:52PM (#49591740)
That is good, but it should be qualified a little.

If the algorithm simply says "sort by most recent", then it is pretty good.

It is the profit driven algorithms that are doing the damage.

Re:The minimum viable unit of saleable software on Sunday June 21, 2026 @10:08PM (#48624779)
> and maintain

This right here is the key difference! Yes anyone can vibe code a replacement for many apps - but will it still run 2 years later (assuming they get it 'running' in an prod environment at all

Re:Show HN: RAG knowledge base poisoning lab, 100% local on Thursday March 12, 2026 @07:09PM (#47358520)
This highlights that all RAG systems should be using metadata embedded into each of the vectorstores. Any result from the LLM needs to have a link to a document / chunk - which is turn links to a 'source file' which (should) have the file system owners id or another method of linking to a person.

If the 'source information' cannot be linked to a person in the organisation, then it doesnt really belong in the RAG document store as authorative information.

Re:Z80 Mem­ber­ship Card on Thursday January 15, 2026 @05:42AM (#46630709)
Nice to see old tech revitalised - I had fun with the Australian version of a Z80 single board computer - https://en.wikipedia.org/wiki/TEC-1
Re:Ask HN: How are you doing RAG locally? on Thursday January 15, 2026 @05:19AM (#46630555)
I am using LangChain with a SQLite database - it works pretty well on a 16G GPU, but I started running it on a crappy NUC, which also worked with lesser results.

The real lightbulb moment is when you realise the ONLY thing a RAG passes to the LLM is a short string of search results with small chunks of text. This changes it from 'magic' to 'ahh, ok - I need better search results'. With small models you cannot pass a lot of search results ( TOP_K=5 is probably the limit ), otherwise the small models 'forget context'.

It is fun trying to get decent results - and it is a rabbithole, next step I am going into is pre-summarising files and folders.

I open sourced the code I was using - https://github.com/acutesoftware/lifepim-ai-core

Re:Ask HN: What Are You Working On? (January 2026) on Sunday January 11, 2026 @06:18PM (#46581551)
I am working on a local RAG LLM designed for lower end PC's - ability for people to try out searching their own documents, seeing it was such a learning curve to get to this stage - hoping others can learn from my mistakes.

https://github.com/acutesoftware/lifepim-ai-core

Only been public a few days, so please let me know if there are glaring issues.

Re:AI has a cargo cult problem on Friday October 17, 2025 @08:06PM (#45623581)
Switching models when running locally is fairly easy - as long as you have them downloaded you can switch them in and out with a just a config setting - cant quite remember, but you may need to rebuild the vectorstore when switching though.

LangChain has the embeddings for major providers:

  def build_vectorstore(docs):
    """
    Create vectorstore from documents using configured embedding model.
    """
    # Choose embedding model
    if cfg.EMBED_MODEL.lower() == "openai":
        embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
    elif cfg.EMBED_MODEL.lower() == "huggingface":
        from langchain_community.embeddings import HuggingFaceEmbeddings
        embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
    elif cfg.EMBED_MODEL.lower() == "nomic-embed-text":
        from langchain_ollama import OllamaEmbeddings
        embeddings = OllamaEmbeddings(model=cfg.EMBED_MODEL)
Re:Show HN: Clippy – 90s UI for local LLMs on Wednesday May 07, 2025 @02:06AM (#43912689)
I think it was the modal dialog box that forced you to stop what you were doing and click 'piss off clippy', rather than being able to ignore it.
Re:The Cost of AI Coding on Friday April 25, 2025 @11:10AM (#43794377)
> Some people love programming, for the sake of programming itself.

And this is what is causing the friction against LLM's (which are quite useful for getting up to speed with a new concept / language ), the programming itself is the fun bit - I still want to do that bit!

Re:Show HN: Learn Blender shortcuts with lots of tiny videos on Saturday August 17, 2024 @10:57AM (#41275016)
Very well done - it took me several attempts to get the hang of Blender and I still only know / used half those shortcuts. Thanks for the easy to use tips!
Re:Google Dataset Search Engine on Wednesday June 12, 2024 @10:59AM (#40658905)
I think Google has lost all faith in terms of keeping projects around - especially when they involve data locked into a mildly complex system without a complete migration path out.

I would be wary investing time in learning / using any new products from them.

Re:Cyc: History's Forgotten AI Project on Thursday April 18, 2024 @12:45AM (#40073043)
Cyc seemed to be the best application for proper AI in my opinion - all the ML and LLM tricks are statistically really good, but you need to parse it through Cyc to check for common sense.

I am really pleased they continue to work on this - it is a lot of work, but it needs to be done and checked manually, once done the base stuff shouldn't change much and it will be a great common sense check for generated content.

Re:Ask HN: Did you encounter any leap year bugs today? on Thursday February 29, 2024 @04:57PM (#39555733)
Our ETL process is heavily monitored so we never miss a days data, but we got a surprising error "cant build aggregates - missing data, aborting MV refresh, data will be a day old". It was the year to date (YTD) calculation - no data for 29/2/2023 to compare to today.
> "You can't just take the CSS stylesheets and references and store them."

Yes you can - just save them locally?

Well, you can - you can have a policy that forces payments from a select group. Some users will complain when "No, you cant pay with 2 chickens every 3rd full moon", but that is too bad.
Re:Discord Is Not Documentation on Sunday July 16, 2023 @09:05PM (#36752981)
Oracle requires you to login to get access to most support documents now.
Re:Ask HN: Could you share your personal blog here? on Wednesday July 05, 2023 @06:02PM (#36607807)
https://www.lifepim.com/blog

Very low frequency updates mainly about information management and data.

Most popular article was "What software will you trust when you get senile?" - https://www.lifepim.com/blog/5856_What_software_will_you_tru...

This is really impressive, even the trees look pretty good which appears to be tricky to do with procgen stuff.

A nice next step or addition would be to take the results and remesh them to lower poly models so it can be used in a game engine to walk around in.

Re:Low Code Software Development Is a Lie on Saturday April 15, 2023 @10:00AM (#35580703)
In terms of Unreal blueprints they may be low syntax but they are not low code - you still need to know software development techniques or you will end up in a pile of garbage very quickly (which you can also do with any other language).
Re:Ask HN: What are you predictions for 2023? on Sunday December 25, 2022 @08:08AM (#34126922)
1. Lots of additional data breaches will make more users wary of using cloud apps for personal data. This will cause more power users to move to desktop / local first apps.

2. AI will improve and showcase several new cool 'tricks' but commercially it will continue to focus on guiding users to watch more ads.

3. An increase in the number of streaming media services will make the average user realize they need to pay quite a lot money to 'watch stuff' - either a new unified package will appear for a reasonable price, or piracy will increase.

This is very cool, though as others have said it is fairly resource intensive.

I'd love to see a schematic exported or even shown as you press simulate (you clearly have it the components and links in memory somewhere to do the simulation). This would be great for debugging.

Re:Universal Paperclips on Thursday November 03, 2022 @08:54AM (#33450235)
Not that recent, but another 2 good games are: Evolve ( https://pmotschmann.github.io/Evolve/ ) start as cells, evolve to humans (or anything), craft stuff, conquer space

Swarm Simulator ( https://www.swarmsim.com/ ) breed bugs, eat meat, consume universe

Re:Universal Paperclips on Thursday November 03, 2022 @04:47AM (#33448502)
Oh that's just great - I was planning to muck about with some odd coding tonight, but I guess I'll be playing this (awesome) game again.
I think this is useful in that you don't need to use any specific render package.

It is nice to have a baseline of materials in an open accessible form.

The sounds generated by this are very impressive - it is an actual simulation of the entire combustion process.

Best parts are the engine sound under load, slight delay when opening throttle and changing down a gear to force engine braking.

Re:Blender 3.2.2 Released on Friday August 05, 2022 @07:26AM (#32354567)
Blender is the pinnacle of what Open Source software applications can achieve.

It started off with great features, but really difficult to use (for non artists), yet has gotten much better over time.

The number of features grows faster than I can think of uses for them, but it is nice to know they are there.

No notifications at all - phone is on silent at all times.

Though I do have a good habit of checking messages and emails every hour, so it isn't that bad for others. (Desktop is different, teams / slack is on all the time with popups).

Re:Ask HN: Can I see your cheatsheet? on Thursday June 30, 2022 @05:07AM (#31930188)
### Disk and Hardware

Hardware Summary

    sudo lshw -short
    
Get the total disk space left and summary of folder usage

    df -h .; du -sh -- * | sort -hr
    
Simple partition summary

    lsblk

What version of Linux are you running

    uname -a
    > Linux TREEBEARD 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 14:24:03 UTC 2017 
      x86_64 x86_64 x86_64 GNU/Linux
    
    lsb_release -a
     > Distributor ID: Ubuntu
     > Description:     Ubuntu 16.04.4 LTS
     > Release:         16.04
     > Codename:     xenial
 
 What flavour of Ubuntu are you running (see https://itsfoss.com/which-ubuntu-install/ )
 
     cat /var/log/installer/media-info
     > Unity
   
How long has the PC been running

     uptime
     >  23:09:26 up 61 days,  8:28,  1 user,  load average: 0.82, 0.48, 0.34

Count files in folder and sub folders

    find . -type f | wc -l

### Files and Folders

Get a tree view of subfolders

    ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'
Find the most recently used files including all subdirectories

    find . -type f -mtime -7 -print0 | xargs -0 ls -lt | head
  
Find string in all files (example searchs logs for Exception)

    find /var/log/www.lifepim.com -type f -print0 2>/dev/null | xargs -0 grep --color=AUTO -Hn 'Except' 2>/dev/null
Find a string 'blah' in all files with recursive (deep) search from current folder '.'

    grep -Rnw '.' -e 'blah'
Limit above search to only .html files

    grep -Rn --include=*.html '.' -e 'blah'
    
    
    
### Processes

List all processes

    ps -ef
   
   
Show a tree of processes

    pstree
   
   
Find the processes I am running

    ps -u duncan
    
    
Get list and PID of specific processes (eg python)

    pgrep -a python
    
Show all processes and usage

    top
    htop   (will need to run sudo apt install htop first)
    
### Network

Get IP Address and network details

    /sbin/ifconfig
See list of PC's on the network

    arp -n   
    
    ip -r neigh
    
    nmap -sA 192.168.1.0/24
    
Lookup name of IP Address

    nslookup 162.213.1.246
    > Non-authoritative answer:
    > 246.1.213.162.in-addr.arpa      name = wssa.beyondsecurity.com.
  
Get the IP address of a domain name

     host www.acutesoftware.com.au
    > acutesoftware.com.au has address 129.121.30.188
  
  
 Show the routing table

    route 

Port scanning

    nmap

 
 ### Shell tips
 
 Show top commands from your shell history 
 
     history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
          35 cat
          25 awk
          18 pwd
          15 ls
          14 cd
     
     
  
### Data Collection

Download a file

    wget http://www.acutesoftware.com.au/aikif/AIKIF-Overview.jpg
    
Download a site for offline reading

    wget --recursive  --page-requisites http://www.acutesoftware.com.au/cont_articles.html

### Data extraction

Get a list of URLs from a html file (like an exported list of Chrome bookmarks)

    grep -Eoi '<a [^>]+>' source.html | grep -Eo 'HREF="[^\"]+"' | grep -Eo '(http|https)://[^/"]+' > urls.csv
    
Grep log files

    cat /var/log/www.lifepim.com.access.log  | grep "POST"          # number of posts to lifepim
    cat /var/log/www.lifepim.com.access.log  | grep "login" | wc -l # number of login page accesses
    awk '{print $1}' /var/log/www.lifepim.com.access.log | sort | uniq -c   # count per IP address
    awk '{print $7}' /var/log/www.lifepim.com.access.log | uniq  # list of pages accessed
    
    cat /var/log/www.lifepim.com.error.log | grep "Exception" | uniq      # list of exceptions
    
    awk '{print $11}' /var/log/www.lifepim.com.access.log | sort | uniq -c | grep -v "lifepim"  # count by referrers
    
        1 "https://newsbout.com/id/19184625381"
        1 "https://umumble.com/links/156005/what-software-will-you-trust-when-you-get-senile%3F"
        1 "https://www.producthunt.com/ask/616-what-s-the-best-personal-knowledge-base"
Looping through list of gz files and grepping for blog hit count

        for i in /var/log/www.lifepim.com.access*.gz
        do
            echo -n "Checking zipped logfile $i - "
            zgrep '/blog/' "$i" | wc -l
        done


        Checking zipped logfile /var/log/www.lifepim.com.access.log.2.gz - 45
        Checking zipped logfile /var/log/www.lifepim.com.access.log.3.gz - 112
        Checking zipped logfile /var/log/www.lifepim.com.access.log.4.gz - 92
        Checking zipped logfile /var/log/www.lifepim.com.access.log.5.gz - 62
        Checking zipped logfile /var/log/www.lifepim.com.access.log.6.gz - 64
        Checking zipped logfile /var/log/www.lifepim.com.access.log.7.gz - 85
        Checking zipped logfile /var/log/www.lifepim.com.access.log.8.gz - 213
        Checking zipped logfile /var/log/www.lifepim.com.access.log.9.gz - 80
### Date and Time

Display Annual Calendar for current year

    cal -y 
   
   
Show the current date in ISO format ( yyyy-mm-dd )

    echo $(date -I)
    
Store the current date / time as string in a bash variable

    DATE=`date '+%Y-%m-%d %H:%M:%S'`
    echo $DATE
    
   
### SQL tips

Show table size of selected tables in a schema

    SELECT table_name as 'Database Name', 
    sum( data_length + index_length ) as 'Size in Bytes', 
    round((sum(data_length + index_length) / 1024 / 1024), 4) as 'Size in MB' 
    FROM information_schema.TABLES where table_name like 'as_%' or table_name like 'sys_%' 
    GROUP BY table_name; 
Get a list of column names for a table

    select * from information_schema.columns where table_name = 'as_task';
Show usage in log file grouped by date

    select DATE_FORMAT(log_date, '%Y-%m'), count(*) from sys_log group by DATE_FORMAT(log_date, '%Y-%m') order by 1;
Show usage by user_id and date

    select log_date, user_id, count(*) from sys_log group by log_date, user_id order by log_date;
Show users by week

    select WEEK(log_date), max(log_date) as date_until, count(*) as num_user_actions, 
     count(distinct user_id) as active_users_this_week from sys_log 
     where DATE_FORMAT(log_date, '%Y-%m') > '2018-05-05' group by WEEK(log_date) order by 2;
I love writing personal programs - you get to re-invent the wheel your own way to learn exactly how things work, with no code reviews or people shouting "[BLAH] ALREADY DOES THIS".

Sometimes you just want to code and see if you can recreate BLAH for yourself.

My oddest program was called 'heater' - it variable settings from warm -> hot and would peg the CPU at different rates (at the time I was in an unheated office, and rather than go buy a heater - I did what all programmers do and re-invent the wheel)

Programming is fun!

That's great, and I am sure it is cool, but I don't trust Google to keep products maintained any more.

I won't be trying it out.

Older »