fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

9.8K
active users

#status

7 posts6 participants0 posts today
jacksource:<br><br>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br> &lt;meta charset="UTF-8"&gt;<br> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<br> &lt;title&gt;Nostr Media Feed&lt;/title&gt;<br> &lt;style&gt;<br> :root {<br> --bg-color: <a class="mention hashtag" href="https://mostr.pub/tags/ffffff" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>ffffff</a>;<br> --text-color: #333333;<br> }<br><br> [data-theme="dark"] {<br> --bg-color: <a class="mention hashtag" href="https://mostr.pub/tags/1a1a1a" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>1a1a1a</a>;<br> --text-color: <a class="mention hashtag" href="https://mostr.pub/tags/ffffff" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>ffffff</a>;<br> }<br><br> body {<br> font-family: -apple-system, system-ui, sans-serif;<br> margin: 0;<br> padding: 0;<br> background: var(--bg-color);<br> color: var(--text-color);<br> }<br><br> <a class="mention hashtag" href="https://mostr.pub/tags/header" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>header</a> {<br> position: fixed;<br> top: 0;<br> left: 0;<br> right: 0;<br> padding: 15px 20px;<br> background: var(--bg-color);<br> display: flex;<br> justify-content: space-between;<br> align-items: center;<br> z-index: 1000;<br> font-size: 14px;<br> }<br><br> <a class="mention hashtag" href="https://mostr.pub/tags/feed" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>feed</a> {<br> margin-top: 52px;<br> }<br><br> .note {<br> margin-bottom: 0;<br> }<br><br> .media-container {<br> background: #000;<br> line-height: 0;<br> width: 100%;<br> }<br><br> .media-container a {<br> display: block;<br> line-height: 0;<br> }<br><br> .media-container img,<br> .media-container video {<br> width: 100%;<br> height: auto;<br> object-fit: contain;<br> opacity: 0;<br> transition: opacity 0.5s ease-in;<br> }<br><br> .media-container img.loaded,<br> .media-container video.loaded {<br> opacity: 1;<br> }<br><br> <a class="mention hashtag" href="https://mostr.pub/tags/status" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>status</a> {<br> display: flex;<br> align-items: center;<br> gap: 6px;<br> opacity: 0.7;<br> }<br><br> .status-dot {<br> width: 6px;<br> height: 6px;<br> border-radius: 50%;<br> }<br><br> .status-live .status-dot {<br> background: <a class="mention hashtag" href="https://mostr.pub/tags/4CAF50" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>4CAF50</a>;<br> }<br><br> .status-paused .status-dot {<br> background: <a class="mention hashtag" href="https://mostr.pub/tags/ff9800" rel="nofollow noopener noreferrer" target="_blank"><span>#</span>ff9800</a>;<br> }<br><br> @media (min-width: 800px) {<br> .media-container img,<br> .media-container video {<br> max-height: 100vh;<br> }<br> }<br><br> @media (max-width: 799px) {<br> .media-container img,<br> .media-container video {<br> max-height: none;<br> }<br> }<br> &lt;/style&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br> &lt;div id="header"&gt;<br> &lt;div id="status" class="status-live"&gt;<br> &lt;div class="status-dot"&gt;&lt;/div&gt;<br> &lt;span&gt;Live&lt;/span&gt;<br> &lt;/div&gt;<br> &lt;/div&gt;<br> &lt;div id="feed"&gt;&lt;/div&gt;<br><br> &lt;script&gt;<br> // Auto dark mode<br> if (window.matchMedia('(prefers-color-scheme: dark)').matches) {<br> document.body.setAttribute('data-theme', 'dark');<br> }<br> window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e =&gt; {<br> document.body.setAttribute('data-theme', e.matches ? 'dark' : 'light');<br> });<br><br> // Initialize<br> const feed = document.getElementById('feed');<br> const status = document.getElementById('status');<br> const seenNotes = new Set();<br> const seenMedia = new Set();<br> let isPaused = false;<br><br> // Relays<br> const RELAYS = [<br> 'wss://<a href="http://relay.damus.io" rel="nofollow noopener noreferrer" target="_blank">relay.damus.io</a>',<br> 'wss://<a href="http://relay.nostr.band" rel="nofollow noopener noreferrer" target="_blank">relay.nostr.band</a>',<br> 'wss://<a href="http://nos.lol" rel="nofollow noopener noreferrer" target="_blank">nos.lol</a>',<br> 'wss://<a href="http://relay.nostr.info" rel="nofollow noopener noreferrer" target="_blank">relay.nostr.info</a>'<br> ];<br> <br> const relayPool = new Map();<br><br> // Function to update status display<br> function updateStatus(paused) {<br> status.className = paused ? 'status-paused' : 'status-live';<br> status.querySelector('span').textContent = paused ? 'Paused' : 'Live';<br> }<br><br> // Pause/Resume based on scroll position<br> let lastScrollTop = 0;<br> window.addEventListener('scroll', () =&gt; {<br> const st = window.pageYOffset || document.documentElement.scrollTop;<br> if (st &gt; lastScrollTop &amp;&amp; st &gt; 100) {<br> // Scrolling down<br> if (!isPaused) {<br> isPaused = true;<br> updateStatus(true);<br> }<br> } else if (st === 0) {<br> // At top<br> if (isPaused) {<br> isPaused = false;<br> updateStatus(false);<br> }<br> }<br> lastScrollTop = st;<br> });<br><br> // Connect to relays<br> function connect() {<br> let connectedRelays = 0;<br><br> RELAYS.forEach(relayUrl =&gt; {<br> const socket = new WebSocket(relayUrl);<br> relayPool.set(relayUrl, socket);<br><br> socket.onopen = () =&gt; {<br> connectedRelays++;<br> if (connectedRelays === 1) {<br> updateStatus(false);<br> }<br> <br> // Subscribe to notes with media<br> const recentSub = JSON.stringify([<br> "REQ",<br> "recent_" + relayUrl,<br> {<br> "kinds": [1],<br> "limit": 500<br> }<br> ]);<br> socket.send(recentSub);<br> };<br><br> socket.onclose = () =&gt; {<br> relayPool.delete(relayUrl);<br> connectedRelays--;<br> if (connectedRelays === 0) {<br> setTimeout(() =&gt; connect(), 2000);<br> }<br> };<br><br> socket.onerror = (error) =&gt; {<br> console.error('WebSocket error:', error);<br> };<br><br> // Handle incoming messages<br> socket.onmessage = async (event) =&gt; {<br> if (isPaused) return;<br> <br> const data = JSON.parse(<a href="http://event.data" rel="nofollow noopener noreferrer" target="_blank">event.data</a>);<br> if (data[0] !== 'EVENT') return;<br> <br> const msg = data[2];<br> <br> // Handle notes<br> if (msg.kind !== 1) return;<br> if (seenNotes.has(<a href="http://msg.id" rel="nofollow noopener noreferrer" target="_blank">msg.id</a>)) return;<br> seenNotes.add(<a href="http://msg.id" rel="nofollow noopener noreferrer" target="_blank">msg.id</a>);<br><br> // Look for media URLs<br> const mediaUrls = [];<br> const urlRegex = /(https?:\/\/[^\s&lt;]+\.(jpg|jpeg|png|gif|mp4|webm))/gi;<br> let match;<br> while ((match = urlRegex.exec(msg.content)) !== null) {<br> mediaUrls.push(match[0]);<br> }<br> if (mediaUrls.length === 0) return;<br><br> // Check for duplicate media<br> const mediaKey = mediaUrls.sort().join(',');<br> if (seenMedia.has(mediaKey)) return;<br> seenMedia.add(mediaKey);<br><br> try {<br> // Create note element<br> const noteEl = document.createElement('div');<br> noteEl.className = 'note';<br> <br> // Add media<br> const mediaContainer = document.createElement('div');<br> mediaContainer.className = 'media-container';<br> <br> // Make media container clickable<br> const mediaLink = document.createElement('a');<br> mediaLink.href = `<a href="https://njump.me/${msg.id}`" rel="nofollow noopener noreferrer" target="_blank">https://njump.me/${msg.id}`</a>;<br> <a href="http://mediaLink.target" rel="nofollow noopener noreferrer" target="_blank">mediaLink.target</a> = '_blank';<br> <a href="http://mediaLink.style" rel="nofollow noopener noreferrer" target="_blank">mediaLink.style</a>.cursor = 'pointer';<br> mediaContainer.appendChild(mediaLink);<br> <br> for (const url of mediaUrls) {<br> if (url.match(/\.(jpg|jpeg|png|gif)$/i)) {<br> try {<br> // Create and preload image<br> const img = document.createElement('img');<br> <a href="http://img.style" rel="nofollow noopener noreferrer" target="_blank">img.style</a>.opacity = '0';<br> img.src = url;<br> img.loading = 'lazy';<br> <br> // Wait for image to load<br> await new Promise((resolve, reject) =&gt; {<br> img.onload = resolve;<br> img.onerror = reject;<br> });<br> <br> // Add to container and fade in<br> mediaLink.appendChild(img);<br> requestAnimationFrame(() =&gt; {<br> <a href="http://img.style" rel="nofollow noopener noreferrer" target="_blank">img.style</a>.opacity = '1';<br> });<br> } catch (e) {<br> console.error('Failed to load image:', url);<br> }<br> } else {<br> const video = document.createElement('video');<br> video.src = url;<br> video.controls = true;<br> video.autoplay = true;<br> video.muted = true;<br> video.loop = true;<br> video.playsInline = true;<br> <a href="http://video.style" rel="nofollow noopener noreferrer" target="_blank">video.style</a>.opacity = '0';<br> <br> // Fade in once video starts playing<br> video.addEventListener('playing', () =&gt; {<br> requestAnimationFrame(() =&gt; {<br> <a href="http://video.style" rel="nofollow noopener noreferrer" target="_blank">video.style</a>.opacity = '1';<br> });<br> }, { once: true });<br> <br> video.onerror = () =&gt; {<br> video.remove();<br> };<br> mediaLink.appendChild(video);<br> // Try to start playing<br> <a href="http://video.play" rel="nofollow noopener noreferrer" target="_blank">video.play</a>().catch(e =&gt; console.log('Auto-play prevented:', e));<br> }<br> }<br> <br> noteEl.appendChild(mediaContainer);<br> feed.insertBefore(noteEl, feed.firstChild);<br> } catch (e) {<br> console.error('Error creating note element:', e);<br> }<br> };<br> });<br> }<br><br> // Initial connection<br> connect();<br> &lt;/script&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;
David Palk#RejoinEU 💖🇪🇺🤎🕊<p><a href="https://mas.to/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://mas.to/tags/office" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>office</span></a> In case you were wondering about my working conditions chez <a href="https://mas.to/tags/PalkyWorld" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PalkyWorld</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
datatofu<p>Want to use <a href="https://mastodon.social/tags/ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ai</span></a> for your business? Need expert insights at a self-help price? Meet the experienced consultant for the DIY budget. <br>○<br><a href="https://datatofu.wordpress.com/#DIY" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">datatofu.wordpress.com/#DIY</span><span class="invisible"></span></a><br>.<br>.<br>.<br>.<br>Tags: <a href="https://mastodon.social/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://mastodon.social/tags/dataanalyst" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dataanalyst</span></a> <a href="https://mastodon.social/tags/data" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>data</span></a> <a href="https://mastodon.social/tags/datamining" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>datamining</span></a> <a href="https://mastodon.social/tags/datascience" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>datascience</span></a> <a href="https://mastodon.social/tags/datainfrastructure" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>datainfrastructure</span></a> <a href="https://mastodon.social/tags/r" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>r</span></a> <a href="https://mastodon.social/tags/reels" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>reels</span></a> <a href="https://mastodon.social/tags/repost" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>repost</span></a> <a href="https://mastodon.social/tags/cloudcomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cloudcomputing</span></a> <a href="https://mastodon.social/tags/statistics" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>statistics</span></a> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://mastodon.social/tags/linux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>linux</span></a> <a href="https://mastodon.social/tags/entreprenuer" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>entreprenuer</span></a> <a href="https://mastodon.social/tags/bigdata" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>bigdata</span></a> <a href="https://mastodon.social/tags/bigdataanalytics" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>bigdataanalytics</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Habr<p>[Перевод] Пишем контроллеры Kubernetes: что нужно знать о разработке масштабируемых и надёжных контроллеров</p><p>Низкий порог входа в разработку контроллеров Kubernetes часто приводит к проблемам в production. Мы перевели статью, в которой автор делится опытом создания надёжных контроллеров, рассказывает о принципах проектирования API и объясняет важность автономной реконсиляции. Узнайте, как сделать контроллеры действительно масштабируемыми.</p><p><a href="https://habr.com/ru/companies/flant/articles/899184/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/flant/ar</span><span class="invisible">ticles/899184/</span></a></p><p><a href="https://zhub.link/tags/kubernetes" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kubernetes</span></a> <a href="https://zhub.link/tags/controller" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>controller</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>контроллеры</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%BA%D0%BE%D0%BD%D1%81%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>реконсиляция</span></a> <a href="https://zhub.link/tags/crd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>crd</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оператор</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B_kubernetes" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>контроллеры_kubernetes</span></a> <a href="https://zhub.link/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://zhub.link/tags/spec" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spec</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%B0%D0%BA_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80_Kubernetes" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>как_написать_контроллер_Kubernetes</span></a></p>
Adrian Segar<p>Live with the knowledge that "best", while well worth pursuing, is a moving fluid target. Remember, there will always be a next best thing.</p><p><a href="https://www.conferencesthatwork.com/index.php/soapbox/2016/07/the-next-best-thing" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">conferencesthatwork.com/index.</span><span class="invisible">php/soapbox/2016/07/the-next-best-thing</span></a></p><p><a href="https://mastodon.social/tags/marketing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>marketing</span></a> <a href="https://mastodon.social/tags/BestPractices" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BestPractices</span></a> <a href="https://mastodon.social/tags/NextPractices" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NextPractices</span></a> <a href="https://mastodon.social/tags/BeingTheBest" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BeingTheBest</span></a> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Adrian Segar<p>During the last 40 years, I've consulted for over a thousand clients. Here are some of the pros &amp; cons of consulting for large organizations.</p><p><a href="https://www.conferencesthatwork.com/index.php/consulting-2/2022/09/consulting-for-large-organizations" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">conferencesthatwork.com/index.</span><span class="invisible">php/consulting-2/2022/09/consulting-for-large-organizations</span></a></p><p><a href="https://mastodon.social/tags/consulting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>consulting</span></a> <a href="https://mastodon.social/tags/clients" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>clients</span></a> <a href="https://mastodon.social/tags/size" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>size</span></a> <a href="https://mastodon.social/tags/fees" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fees</span></a> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://mastodon.social/tags/wisdom" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>wisdom</span></a></p>
El. Mar - 3MR Fit<p>is mastodon glitching or veganism.social only?.. <br>or my account?</p><p><a href="https://veganism.social/tags/VeganismSocial" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>VeganismSocial</span></a> <a href="https://veganism.social/tags/mastodon" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mastodon</span></a> <a href="https://veganism.social/tags/fediverse" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fediverse</span></a> <a href="https://veganism.social/tags/glitch" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>glitch</span></a> <a href="https://veganism.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
RAWCHILI<p>Mark Pope updates the injury status of Jayden Quaintance: Kentucky Wildcats Basketball <a href="https://www.rawchili.com/4231484/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">rawchili.com/4231484/</span><span class="invisible"></span></a> #<a href="https://channels.im/tags/blue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>blue</span></a> <a href="https://channels.im/tags/a" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>a</span></a>: <a href="https://channels.im/tags/basketball" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>basketball</span></a> <a href="https://channels.im/tags/ExcludeFromStnVideo" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ExcludeFromStnVideo</span></a> <a href="https://channels.im/tags/FrontPage" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FrontPage</span></a> <a href="https://channels.im/tags/injury" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>injury</span></a> <a href="https://channels.im/tags/jayden" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>jayden</span></a> <a href="https://channels.im/tags/kentucky" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>kentucky</span></a> <a href="https://channels.im/tags/KentuckyWildcatsBasketball" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>KentuckyWildcatsBasketball</span></a> <a href="https://channels.im/tags/KentuckyWildcatsBasketballInjuries" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>KentuckyWildcatsBasketballInjuries</span></a> <a href="https://channels.im/tags/mark" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mark</span></a> <a href="https://channels.im/tags/ncaa" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ncaa</span></a> <a href="https://channels.im/tags/NCAABasketball" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NCAABasketball</span></a> <a href="https://channels.im/tags/NCAAB" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>NCAAB</span></a> <a href="https://channels.im/tags/of" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>of</span></a> <a href="https://channels.im/tags/pope" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>pope</span></a> <a href="https://channels.im/tags/quaintance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>quaintance</span></a> <a href="https://channels.im/tags/sea" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sea</span></a> <a href="https://channels.im/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://channels.im/tags/the" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>the</span></a> <a href="https://channels.im/tags/updates" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>updates</span></a> <a href="https://channels.im/tags/Wildcats" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Wildcats</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
SailingNews<p>List of white/grey/black listed flags according to Paris MoU</p><p><a href="https://www.parismou.org/detentions-banning/white-grey-and-black-list" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">parismou.org/detentions-bannin</span><span class="invisible">g/white-grey-and-black-list</span></a> </p><p><a href="https://toot.community/tags/sailing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sailing</span></a> <a href="https://toot.community/tags/flags" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>flags</span></a> <a href="https://toot.community/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Jerome<p>A notification badge is often a red dot that shows a digit. That digit is the unread-message count.</p><p>The digit in the badge must match the unread-message count!</p><p>Lately, I've seen a badge promising 1 or 2 messages in the Google Play Store, a telco app, and a banking app when there were no unread messages.</p><p>Incorrect system-status info is a defect. It'll train users to pay less attention to the badge.</p><p><a href="https://mastodon.social/tags/UX" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>UX</span></a> <a href="https://mastodon.social/tags/UXD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>UXD</span></a> <a href="https://mastodon.social/tags/UserExperience" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>UserExperience</span></a> <a href="https://mastodon.social/tags/design" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>design</span></a> <a href="https://mastodon.social/tags/SystemStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SystemStatus</span></a> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> <a href="https://mastodon.social/tags/notification" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>notification</span></a> <a href="https://mastodon.social/tags/counter" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>counter</span></a> <a href="https://mastodon.social/tags/badge" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>badge</span></a> <a href="https://mastodon.social/tags/usability" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>usability</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Katharine O'Moore-Klopf, ELS<p>I'm so glad the feds reversed course on <a href="https://mastodon.social/tags/student" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>student</span></a> <a href="https://mastodon.social/tags/visa" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>visa</span></a> <a href="https://mastodon.social/tags/cancellations" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cancellations</span></a>. But "the terminations caused <a href="https://mastodon.social/tags/concern" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>concern</span></a> and even <a href="https://mastodon.social/tags/panic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>panic</span></a> for thousands of students who feared the possibility they had lost their <a href="https://mastodon.social/tags/legal" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>legal</span></a> <a href="https://mastodon.social/tags/immigration" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>immigration</span></a> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a> and could be quickly <a href="https://mastodon.social/tags/deported" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>deported</span></a>." <a href="https://www.politico.com/news/2025/04/25/trump-admin-reverses-termination-foreign-student-visa-registrations-00309407" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">politico.com/news/2025/04/25/t</span><span class="invisible">rump-admin-reverses-termination-foreign-student-visa-registrations-00309407</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>
Prijeet Bose<p><span class="h-card" translate="no"><a href="https://observatory.social/@BGO" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>BGO</span></a></span> <a href="https://mastodon.social/tags/status" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>status</span></a></p>