9 ms·
Ask HN: How do you consume HN?
For long I've used the Materialistic app on Android but it hasn't been updated in 2 years and has its glitches. I am looking at alternatives and any suggestions from other HN readers.
- josephcsible 5y agoI just use the site in a browser, with no dedicated app.
- leed25d 5y agoI splash around in it
- uberman 5y agoI use my default browser. It works fine for me :-)
- mtmail 5y agohttps://github.com/cheeaun/awesome-hacker-news https://github.com/cheeaun/awesome-hacker-news collects app and projects though without reviewing them
- paulcole 5y agoJust the browser. I’ve never seen an iOS HN reader app that add any interesting features.
- tailspin2019 5y agoOn iOS I’ve tried a bunch of apps and have finally settled on Hack [0] which is excellent. Looks like there is an Android version too. [1] [0] https://apps.apple.com/ca/app/hack-for-hacker-news-developer/id1464477788 https://apps.apple.com/ca/app/hack-for-hacker-news-developer... [1] https://play.google.com/store/apps/details?id=com.pranapps.hack https://play.google.com/store/apps/details?id=com.pranapps.h...
- JoBrad 5y agoI used another app before finding Hack (iOS). The developer is absolutely amazing, and has responded to me very quickly on the single bug I found (in several years of usage), as well as the feature request I made. Definitely a great app for consuming HN.
- deleted 5y ago[deleted]
- peanut_worm 5y agoWhats wrong with the browser?
- vvps 5y agoIt's a pain reading it on a Mobile device
- peanut_worm 5y agoHow so? I use it on mobile, HN has a pretty nice mobile website
- Voklen 5y agoGlider on fdroid and loving it https://f-droid.org/packages/nl.viter.glider https://f-droid.org/packages/nl.viter.glider
- vvps 5y agoThanks for this. Installed it and loving it.
- m_ke 5y agoBrowser with some custom CSS and a JS script that filters blacklisted keywords and doesn't load new stories when I hide one, so most of the day there's only a story or two visible on the main page.
- hidden-spyder 5y agoI'd like to use those scripts. Would you please share?
- m_ke 5y agocss: html { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); filter: grayscale(100%); } tbody tr td { background-color: white; } td.subtext { opacity: .3; } span.rank { opacity: 0; } tr td center { display: none; } --- js: function remEl (el) { console.log(el) el.parentNode.removeChild(el) } const atags = document.getElementsByTagName('a') console.log(atags) for (const a of atags) { console.log(a) if (a.textContent === 'reply') a.style.display = 'none' } function blockId(id) { var ids = (localStorage.getItem('blockedIds') || '') + ';' + id; localStorage.setItem('blockedIds', ids); } function hidestory (el, id) { for (var i=0; i < 3; i++) { remEl($(id).nextSibling) } remEl($(id)); blockId(id); return false } function getCurrentIds() { return [].map.call(document.getElementsByClassName('athing'), x => x.id); } function hideBlocked() { var ids = getCurrentIds(); var blockedIds = new Set((localStorage.getItem('blockedIds') || '').split(';')); console.log(blockedIds); for (let id of ids) { if (blockedIds.has(id)) { try { hidestory('', id); } catch (e) { } } } } function getPosts() { return document.getElementsByClassName('athing') } function hideWithKeywords(words=[]) { const deleteIDs = new Set() for (let post of getPosts()) { for (let word of words) { if (post.textContent.indexOf(word) > -1) { console.log('Blocked', post.textContent) deleteIDs.add(post.id) break; } } } for (let id of deleteIDs) { hidestory('', id) } } function hidePosts(func) { const deleteIDs = new Set() for (let post of getPosts()) { if (func(post)) { console.log('Blocked', post.textContent) deleteIDs.add(post.id) } } for (let id of deleteIDs) { hidestory('', id) } } const blockedWords = [ 'Juicero', 'Blockchain', 'Bitcoin', 'Vatican', 'Lisp', 'Yahoo', 'People.ai', 'NASA', 'MH370', 'soylent.com', 'Soylent', 'Tesla', 'FBI', 'CIA', 'Sexual', 'Ethereum', 'Emacs', 'Azure', 'Comic Con', 'Drchrono', 'GitLab', ') is hiring', ') Is Hiring', 'Clojure', 'Uber', 'Theranos', 'WannaCry', 'Venture Capital', 'Bees ', 'Sexist', 'sexist', 'diversity', 'Diversity', 'Palantir', 'Monsanto', 'discrimination', 'sexism', 'Sexism', 'Equifax', 'SpaceX', 'blockchain', 'video game', 'is hiring ', 'Cryptoc', 'cryptoc', 'bbc.com', 'forbes.com', 'fortune.com', 'vice.com', 'nautil.us', 'Zuckerberg', 'Trump', 'techcrunch', 'theguardian', 'wsj.com', 'economist.com', 'libertarianism.org', 'slate.com', 'coronavirus', 'covid', 'covid-19', 'Covid-19', 'Tether', 'NFT', 'Web3', 'web3' ] if (blockedWords.length) hideWithKeywords(blockedWords) hideBlocked() let filters = [ ] if (filters.length) { for (let filter of filters) { hidePosts(filter) } } function onclick (ev) { var el = upclass(ev.target, 'clicky'); if (el) { var u = new URL(el.href, location); var p = u.searchParams; if (u.pathname == '/vote') { vote(p.get('id'), p.get('how'), p.get('auth'), p.get('goto')); } else if (u.pathname == '/hide') { hidestory(el, p.get('id')); } else if (hasClass(el, 'togg')) { toggle(attr(el, 'id')); } else { $(u.hash.substring(1)).scrollIntoView({behavior: "smooth"}) } ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } document.addEventListener("click", onclick);
- deleted 5y ago[deleted]
- kgin 5y agoA little custom CSS to make it more readable: https://controlc.com/a60901b8 https://controlc.com/a60901b8
- d0gbread 5y agoHarmonic on Android is nice.
- hassancf 5y agoiOS: Octal for hacker news
- kandruszkow 5y agoTo be honest, browser or on Octal iOS, but I've heard a few good opinions on Boreal as well (I haven't tried it myself yet)