News for hackers. Stuff that matters.

ciaovietnam

Re:Ask HN: Who is building solo with AI? on Thursday October 02, 2025 @04:09AM (#45447304)
I've been building this CMS, e-commerce and app builder platform - https://sitegui.app - solo in order to keep the cost down before it gains enough growth momentum. It is built by one to be extended by other developers/freelancers. Now AI also is a part of the platform too (AI App Builder & Integrated AI Agents for chatbot, reporting and automation).
Re:Ask HN: Conversational AI to Learn a Language on Wednesday May 21, 2025 @12:13AM (#44048194)
I just tried it and it works perfectly. The color scheme and font size could be touched up to look better. Just out of curiosity, is $10/month enough to cover the (unlimited) API cost? Do you estimate how many percentage of your users will use more than $10 API fee each month?
Re:Documentation Generator on Friday May 09, 2025 @07:10PM (#43941789)
I was able to generate documentation for LiteGUi (https://deepwiki.com/SiteGUI-platform/litegui) and the result is quite promising. It captures all the core concepts and visualizes them beautifully.
Re:OpenID Coming to SSH on Tuesday March 25, 2025 @11:20AM (#43472407)
Now I have to trust OpenPubkey, hoping it wont get hacked. No way will I add this to my servers, I will keep using the long live public key.
I use SSE to send web users to another page (redirection header) while still processing other long running stuff for them. The result: non-blocking web access, users dont have to wait for all stuff processed to see a confirmation message e.g: a user signs up, you can show them their account has been created instantly while still creating relevant services (e.g: a virtual server) for their account.
I'm not familiar with RabbitMQ but this is how I built a queue for LiteGUI using Redis.

Firstly, every job gets stored in an activity table with a retry and result column.

If the job should be run instantly without queueing, no queue entry is needed, the retry column is 0 and the result column is filled.

If the job fails for whatever reason, a queue entry containing the activity ID is added to let the queue worker process it later on. When the worker processes the job, the retry column will be incremented no matter of the outcome. If the worker succeeds, the activity will be updated with the result.

If the worker fails to process it and the retry number is less than 5, another queue entry will be added (as the current one is already removed from the queue). When to process that queue entry depends on the retry number, they can be 1m, 5m, 25m, 2.1h, 10.4h, 2.2 days using the following formula:

$interval = 300 * pow(5, ($retry - 1));

This approach also helps in case of queue failure, you can just rebuild the queue from the activity table for entries with no result (or status) and retry number is less than 5.

To be honest, I don't work with queue regularly but I have to implement it anyway. I'm sharing this approach so we all can improve it.

Re:Ask HN: How did internet discover my subdomain? on Thursday March 06, 2025 @10:08PM (#43287109)
There is a chance that your subdomain is the first/default virtual host in your web server setup (or the subdomain's access log is the default log file) so any requests to the server's IP address get logged to this virtual host. That means they didn't access your subdomain, they accessed via your server IP address but got logged in your subdomain's access log.
Re:Why it still takes days for banks to give you your money on Wednesday March 05, 2025 @01:24PM (#43270302)
Zelle is quite fast but still has room for improvement especially the user experience. I enjoy much better experience in Vietnam where I can send to anyone at any bank instantly free of charge using official bank apps and can widthraw money from ATMs cardlessly using smart OTP.
Re:Ask HN: What's your blog / portfolio stack? on Wednesday March 05, 2025 @12:51PM (#43269869)
I built my own CMS system which places WYSIWYG content editor in a sandboxed iframe to avoid XSS. The advantage of this approach is that I can edit HTML directly using the browser's developer console in case the WYSIWYG editor does not support what I want. After all, raw HTML/CSS codes are behind what we see on a website, so I prefer to work with them directly rather than using Markdown. Whatever CMS you use, just make sure it supports changing theme/template and allows custom content to be inserted at different sections on a web page or preferably multiple pages (i.e global content widget). I found these 2 features crucial and make my work a lot easier.
Re:Magento Credit Card Stealer Disguised in an <Img> Tag on Tuesday February 18, 2025 @01:58PM (#43093653)
This can happen to any shopping cart that lets shop owners add custom codes/plugins to the checkout page. Though that enhances the look and feel, I dont think it is a good idea. The checkout page should use a universal design (like Shopify's checkout page), it will reduce the chance of XSS attacks.
Re:Building a free image CDN with Cloudflare R2 and workers on Tuesday February 18, 2025 @08:52AM (#43089458)
Thanks for sharing. How fast is this type of CDN from different countries/locations?
There are so many CMSes to choose these days, you just need to choose one that fits your needs. For me, I will choose one that allows me to change theme, menu items and add contents to different sections on the page whenever I want.
It looks promising. Is it possible to one-click post to the target platforms instead of copy and paste?
Re:The cross-eyed method of comparing lists on Monday February 17, 2025 @09:47PM (#43085576)
So cool. I was able to spot Hipopotamus and Meeerkat right away as they are floating and blurry while others stay the same.
Should we use ElasticSearch or vector databases for a catalog search function in 2025?
Re:Show HN: Realtime HTML Rendering with LLMs on Sunday February 16, 2025 @10:14PM (#43074671)
Creating something like this is quite trivial with most LLMs but it's fun to tweak the prompt to get what you want. I'd suggest a loading indicator while waiting for the chatbot to response and also do not use via.placeholder.com for image placeholder as it is no longer in service.
Re:Dinner at a North Korean Restaurant in Shanghai (2016) on Sunday February 16, 2025 @09:07AM (#43068103)
I visited a similar NK restaurant in Saigon a few times before they closed down decade ago and the experience was the same. What impressed me is that all the NK waitresses can speak the local language (Vietnamese) fluently and can sing or play music instruments. The food is quite authentic, some ingredients are exported from NK. It was a good experience overall.
Re:Ask HN: How Do You Clean and Structure Data at Work? on Wednesday February 05, 2025 @08:20PM (#42957777)
I don't deal with this kind of job too much but sometimes I have to migrate data from one system to another one. The cleaning is hard and specific to the data but most of the time I was able to deal with it using Regex find and replace and some command-line tools. For mapping, I would take 10 lines out of the CSV for test import, use AI or manually map the fields and then do batch import once the mapping is correct. AI can also help you clean, transform the data but the output may not be consistent.
You made great points. Thanks a lot! I should focus on 1 or 2 selling points instead of just showing all the features. Will keep the 5-30-close in check for the next update.
Unfortunately most Show HN threads are not shown on Show HN, they are shown in /shownew and /new for a short amount of time before other new threads arrive. To be shown in Show HN they must pass some unknown thresholds (upvotes???). I believe not many HNers visit /shownew and the chance to get upvotes on /new is quite slim due to the amount of new threads coming in. I know there must be some mechanism to prevent spamming but the current one also suppresses the exposure of Show HN threads and they are often buried in /shownew without much exposure/feedback.

Older »