Searching txt.sour.is

Twts matching #follows.
Sort by: Newest, Oldest, Most Relevant
↳ In-reply-to » I like that twtxt moves slow compared to other social media platforms like the fediverse. Though to be fair I follow only about 20 people on here compared to much more on the fediverse. Less people and posts on twtxt and I think that makes me able to keep up with the community better.

@jecxjo@sh0.xyz Also seven people I follow have no feed anymore. So this might just be everyone.

​ Read More

My mate and I went on a hike on Saturday to Germany’s probably most famous tiniest hamlet. Well, not even hamlet, much smaller. It’s a farm (087) and a closed train station (088, 096-102). Okay, and four other houses. But that’s it. Durlesbach is known from the old folk song „Auf de schwĂ€bsche Eisebahne“, literally “On the Swabian Railway”. According to the German Wikipedia article the German Folk Song Archive counts about 100 variants on the lyrics with up to 27 verses. The song enumerates a few stations and the most common version is about a farmer who ties his goat to the back of a train in order to save the freight costs. Alternatively, he’s used to that from previous ox cart trips where the goat just follows along. Of course, the goat doesn’t make it and the angry farmer throws the disembodied goat head at the conductor.

The weather was perfect. Sunny and clouds alternating, lower twenty-something degrees Celcius. Very beautiful. We took the train to Aulendorf and started our hike.

The level railway crossing in 051-054 is always closed and only opened on demand. I didn’t even know that this kind existed. But it’s really quiet there. We pressed the lever to call the train dispatcher who then opened the barriers for us. A few seconds later we told him that we successfully reached the other side and he closed them again. We were confused at first because the sign said only for authorized personnel and we were just two random hikers. But we gave it a shot and the dispatcher was super nice, no worries at all.

The river is always the Schussen. 092-094 is the creek Durlesbach, entering the Schussen, though. The Durlesbach station is now privately owned, unfortunately. However, it’s nicely kept in shape and there’s a cool monument with a historic steam engine, two wagons and four bronze figures reenacting the scene where the farmer is about to tie his goat, being observed by his wife and the conductor.

You can get all sorts of drinks in exchange for a donation at the display. These proceeds are used for the upkeep. I had an ACE juice which was absolutely delicious. A few hundred meters after we continued, I thought that I really should have bought a second one. It was just too good.

In Mochenwagen, we took the train back to Aulendorf. The Mochenwangen replacement service (we luckily didn’t have to take it, in fact, no idea when it is really in place) is 800 meters away from the train station. That fucking nuts.

We then changed trains to Ulm, just because that one arrived two minutes after we reached Aulendorf. But we spontaneously exited early in Biberach because we had some time to kill for the actual train to Stuttgart. The train station underpass there has some really beautiful graffiti. Shortly after, my second camera battery was flattened, too.

Going home worked out amazingly. When I switched again in Geislingen, my connecting train was already waiting on the other platform. 15 seconds before scheduled departure, the doors closed. One second to departure, we took off. That’s very rare nowadays and it was kind of magical to witness this first hand looking at the station clock.

Sorry for the many photos. I was busy sifting through them and only kept about 20%. Still too many, I know. Enjoy, nevertheless: https://lyse.isobeef.org/2026-10-03-wanderung-von-aulendorf-ueber-durlesbach-nach-mochenwangen/

​ Read More

I like that twtxt moves slow compared to other social media platforms like the fediverse. Though to be fair I follow only about 20 people on here compared to much more on the fediverse. Less people and posts on twtxt and I think that makes me able to keep up with the community better.

​ Read More
↳ In-reply-to » @itsericwoodward Not really no đŸ€Ł Did you want to join us and setup your own instance and join the growing aprty? It's turning out to be quie neat actually 😅

@itsericwoodward@itsericwoodward.com Then by all means, follow the instructions at https://git.mills.io/prologic/parley and setup your own instance on your own domain. It’s partly inspired by Twtxt/Yarn.social and Salty.im – in at least the way teh DNS discovery and WKID works. Once your instance is up and running and you’ve gone through the /setup and created yourself an account (or seti it up with an appropraite ODIC IDP) try something like /msg james@mills.io Hey! at which point you should automatically start peering with my instance. You should then be able to /join #lobby1 (a globally federated channel already across 2 instances so far). đŸ€ž

​ Read More
↳ In-reply-to » @prologic Hmm. đŸ€”

@movq@www.uninformativ.de So the way this works in my design/prototype is this. You fork my repo in the app, it clones it to your own forge, follows my instance and it’s repo for updates and ping my instance to indicate “you’ve forked me”. Then when you publish changes, I can see them by pulling your instance’s feed. It all works on the same plain text principles of Tstxt itself. The feeds are “pull”-based with push-based “pings” on things like “someone forked your repo”, “a new issue has been raised against your repo”, etc.

​ Read More

Literally just a day after Elon came out with his legal threats towards all of Nitter and people like me complained about it, Open AI decides to no longer work with Cursor (acquired by Space X), explicitly saying it’s because Elon wouldn’t stop breaking their signed contracts and scraping (distilling) their models, behind their back.

https://openai.com/index/our-decision-on-cursor-following-its-acquisition-by-spacex/

This is not even the only instance of this happening, many mentioned having similar problems with Elon in the past. Not too long ago Kylie Robison shared a rumor xAI engineers were banned from using Anthropic models through Cursor, because of their scraping, though they seem to have later patched things over with Elon, when they had to start renting his data centers.

​ Read More

Yesterday, my mate and I left the house at 10 in the morning around 15 or 16°C. There was a steady wind blowing, the sun came and went every two minutes. The clouds looked really nice. Temperatures peaked at 21°C I reckon. Certainly great t-shirt weather. It was supposed to slightly rain at some point in the morning, but all we got was less than two hand full of drops and later the tiniest amount of drizzle for not even half a minute. So, nothing.

The weathermen also called for a cloudy arvo and partially sunny evening. The forecast must have scared off people right away, because there was noone around. We saw very dark clouds in the distance and there was certainly rain in the town. But out in nature, just a constant alternation between the sun and clouds.

Just before noon, we arrived at the bakery two villages over and got four fire brezels (with pepper, extremely tasty, but the fingers are an oily mess after that) and two nut sticky buns for provisions. This is where the small bird (19-23) was giving us a show.

It’s so dry, the landscape looks already like autumn for several weeks. Sooo many orange and brown leaves on the ground, it’s crazy. I hope we still get a real autumn and head not straight from summer into winter. Last weekend was still an awful 37°C.

This time, we paid the small entrence fee to walk around inside the ruin of Hohenrechberg Castle. The red sandstone looks super sick. I really dig it. It’s actually purplish at parts, no kidding. Absolutely unreal! At least for me, I normally only see the beige sandstone around here.

Right when we went down the castle ditch, both camera batteries were completely drained after just 880 photos in total. What a bummer. I saw a guy with a leather glove coming out of a door and immediately followed him to the aviary in the hopes of a show or something. That flight cage wasn’t there last time I visited the ruin. And we were lucky, the falconer fed his harris’ hawk and explained us along the way. Other families came and went, but we talked to him for at least 20 minutes. Super interesting. I think that was easily the best part.

At exactly 19 o’clock I unlocked the front door. Our feet were done. It was an amazing nine hours hike. :-)

The gallery is a tiny bit larger than usual, enjoy: https://lyse.isobeef.org/wanderung-auf-die-burgruine-hohenrechberg-2026-08-22/

​ Read More
↳ In-reply-to » It is such a nice feeling that Mu is such a capable little language 😅 And I decided to write code code in Mu by hand đŸ€š haha đŸ€Ł and start solving Project Euler problems, like Problem 8 which works out to be a nice elegant solution in Mu:

Oh man wow 😼 Problem 9 was quite hard đŸ˜± I had to build two new functions in the Mu stdlib for computing combinations and permutations, but then the combinations of range(1000) for triples such as a + b == c is enormous! So i had to write iterator versions of these to do lazy evaluation. Anyway solution follows:

#!/usr/bin/env mu

// Special Pythagorean Triplet

import "iter"

fn usage() {
  print("Usage:", args()[0], "<n>")
}

fn sqr(x) { x * x }

fn main() {
  if len(args()) < 2 {
    usage()
    exit(1)
  }

  n := must(int(args()[1]))
  print("n:", n)

  // For a < b < c and a + b + c == n, both a and b are strictly less
  // than n/2. Generate only (a,b) combinations and derive c directly. This
  // keeps the search lazy and reduces n=1000 from C(999,3) = 165,668,499
  // candidate triples to C(499,2) = 124,251 candidate pairs.
  pairs := iter.combinations(iter.range(1, n / 2), 2)

  triples := iter.map(pairs, fn(xs) {
    a := xs[0]
    b := xs[1]
    return [a, b, n - a - b]
  })

  // Enforce b < c; a < b is already guaranteed by combinations over an
  // increasing range, and a + b + c == n holds by construction.
  triples = iter.filter(triples, fn(xs) {
    return xs[1] < xs[2]
  })

  // Euler 9 has one answer for n=1000. find() stops the entire upstream
  // iterator chain as soon as the first Pythagorean triple is found.
  answer := iter.find(triples, fn(xs) {
    return sqr(xs[0]) + sqr(xs[1]) == sqr(xs[2])
  })

  print(answer)

  if answer != nil {
    print(answer[0] * answer[1] * answer[2])
  }
}

main()

​ Read More

I really do find it difficult to follow anyone that basically posts to a wall, or doesn’t follow back. It’s utterly pointless not being able to have a conversation, like basically, at all. Maybe it’s not even anyone’s fault? Maybe just a sucky client that doesn’t understand how User-Agent works in Twtxt Discovery? 💡

​ Read More

Bwahahaha, these security folks have a great sense of humor! :-D Got a phishing test e-mail disguised as an overdue anti-phishing training e-mail:

Image

We receive these test phishing e-mails every now and then at work. When you follow the links and log in at the fake login, you probably get assigned another (real) training.

When I got this e-mail, I immediately thought of such a test. Since I actually do have some stupid training deadlines coming up soon, I wasn’t 100% sure, but still doubted that this was one of them. To make the timing even better, in the team meeting last week, our bosses reminded us to complete outstanding trainings before the deadlines. Ideally well in advance. Notifications about deadlines coming closer are sometimes not only sent to the individuals but also to the bosses and their bosses. And then things can get out of hands when somebody doesn’t read the e-mails properly and mistakes them for deadline exceeded reports.

Anyway, the URL also looked kinda legit. It really doesn’t help a single bit that domain names change all the fucking time. So, still with the test program in mind, I thought, I just give it a quick shot out of curiosity. Since I just had logged in before, the empty SSO username field was totally obvious then. Looking at the e-mail headers confirmed that this was indeed one of security’s field checks. :-)

​ Read More

@GabesArcade@gabesarcade.com twtd landed too đŸ„ł Hosted feeds (twtpub.com) and self-hosted twtd can publish # follow = now — the operator offers it with --allow-follows, then it’s the same toggle in Settings. Off by default at both ends 👌

​ Read More

Also a “Publish who I follow” toggle: writes # follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph đŸ€”), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next đŸ€ž

​ Read More

@GabesArcade@gabesarcade.com Both 😅 Just shipped: Settings → Backup & restore. Export everything (or follows only) as a JSON file and import it back — or feed it any twtxt.txt and it’ll harvest the # follow = lines. There’s a copy-paste # follow = block in there too if you’d rather hand-edit 👌

​ Read More

📣 ACTION REQUIRED: Hey folks 👋 For those of you whom are using the Twtxt App either via the Hosted option or on your own twtd instnace or via Github/Gitea or any other publishing backend (doesn’t amtter). Please read.

Please open the app and you should be prompted to save your recovery code for your device. This basically is all of your settings, follows, etc in the app itself. This is synced to the Origin everytime you make a change, and also stored on-device. This is what makes it possible to sync your setting across services, move to another device, etc.

Please save a copy of the recovery code somewhere. This is only your only way to recover your settings.

Thank you 🙏

​ Read More

the only reason twtd has and records a followers.json is because that’s where your feed is hosted from and where the UA discover occurs

​ Read More

You may have noticed I am not as active as I used to be here. Old @bender@twtxt.net isn’t going anywhere, though! But
 I am Hyde, and my Jekyll resides at @david@daiwei.me. Jekyll is having his turn more often now, so if you follow my pure, unrestrained evil, you may as well follow my dark desires, hypocrite counterpart. đŸ˜ˆđŸ€Ł

Follow @david@daiwei.me, or I will bend you!

​ Read More

Some further ideas/enhancements for Twtxt App 


  • On the “Followers” tab, new followers should appear at the top I thnik.
  • On the Following/Followers, each feed should be clickable/tappable.
    • Maybe also tidy it up a bit, displaying the full raw Feed URI is messy.

​ Read More

Hurray, I can now press gg instead of g to go to the top in tt. Much better! :-) Other multi-key combinations are also easily possible now.

I should probably write a real article about this at some point, but here we go. The only downside with my new key binding system is that it breaks tview’s established pattern. You’ve got an InputHandler(), that is implemented using WrapInputHandler(
). It typically then directly implements the switching logic depending on the key press. Something like this:

func (w *Widget) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    // WrapInputHandler allows for intercepting key events with SetInputCapture(
)
    // from the outside for customization. This handles the default key bindings.
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        switch event.Key() {
        case tcell.KeyRune:
            if event.Modifiers() == tcell.ModNone {
                switch event.Rune() {
                case 'k':
                    w.scrollUp()
                    return // we already handled the event, stop processing

                case 'j':
                    w.scrollDown()
                    return
                }
            }
        }

        // We didn't handle the key event. Maybe the parent
        // widget knows what to do with it.
        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    })
}

From the outside, you can intercept and either stop or continue the widget’s original key handling with a potentially rewritten key event using SetInputCapture(
):

w := NewWidget()
// customized or additional key bindings
w.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
    switch event.Key() {
    case tcell.KeyUp:
        // Rewrite the event, so the "cursor up" key is an alias
        // for the vim key binding "k", that is handled by the
        // wrapped input handler above. (I know, I know, this is a
        // completely unrealistic example, why would anyone use
        // cursor keys when there are vim key bindings available?!)
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)

    case tcell.KeyRune:
        if event.Modifiers() == tcell.ModNone {
            switch event.Rune() {
                case 'q':
                    app.Stop()
                    // we already handled the event, do not pass it
                    // to the wrapped input handler above
                    return nil

                case 'r':
                    toggleMessageReadStatus()
                    return nil
            }
        }
    }

    // we didn't handle the event, pass it to the wrapped
    // input handler above
    return event
}

Since they all expect a single key, I’ve noticed that using multiple dedicated KeyBindings of mine on these different levels kinda breaks multi-key handling with common prefixes. The outer-most KeyBinding captures the prefix, but it can’t transfer it to the inner one if not handled by the outer one. At least not without some more (potentially ugly) changes. So, I now have to work with just a single KeyBindings object for the entire widget chain (if it consists of multiple other widgets or the regular input handler and input capture are in the game). The outside needs to register all its key bind customizations or extensions at the same level that the original widget handles its default ones. Doable by exposing the widget’s KeyBindings instance, but not pretty. You always have to keep this in mind.

With the KeyBindings, it will look like that:

type Widget struct {
    parent tview.Primitive

    // make it available to children or the outside either by
    // direct field access or by providing a getter method
    KeyBindings *bind.KeyBindings
}

func NewWidget() *Widget {
    w := &Widget{KeyBindings: &bind.KeyBindings{}}
    w.KeyBindings. // default key bindings
        Bind0(bind.KeySequence('k', w.scrollUp).
        Bind0(bind.KeySequence('j', w.scrollDown)
    return w
}

func (w *Widget) InputHandler() InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        // also note the missing support for focus transfer at the moment
        event = w.KeyBindings.Capture(event)
        if event == nil {
            return
        }

        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    }
}

And then from the outside, or in a child widget:

w := NewWidget()
w.KeyBindings. // additional or customized key bindings
    Bind1(bind.KeySequence(tcell.KeyUp), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
    }).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind0(bind.KeySequence('r'), toggleMessageReadStatus)

When directly working with tview primitives that are not part of custom widget implementations, the following works well so far:

textView := tview.NewTextView().
    SetWordWrap(true).
    SetText("
")
    SetScrollable(true)
textView.SetInputCapture((&bind.KeyBindings{}).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind1(bind.KeySequence('g', 'g'), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
    }).
    Capture)

I need to sleep on this some more.

Also, writing very long messages like this one is really not all that fun in tt’s editor. I should absolutely provide a way to shell out to vim.

(Took me about one and a half hours to compose, holy crap. But not only because of not using vim. Although, that might have saved me a quarter hour or so for sure. Proof-reading this message also uncovered quite a few bugs in my real documentation. So, that’s a big win!) Good night!

​ Read More
↳ In-reply-to » @prologic @bender is it normal that twtxtapp's <tab> (white space) between the timestamps and posts look a bit shorter than the ones from jenny? just noticed that and thought maybe it's someting you'd want to know.

@aelaraji@aelaraji.com @david@daiwei.me @prologic@twtxt.net It depends on the tab size, but often, a tab aligns the following character to next column that is a multiple of eight.

1      8       |16     |24     |32
2026-07-12T08:11:34+02:00      Here goes the text
2026-07-12T06:11:34Z   Here goes the text

​ Read More

@movq@www.uninformativ.de this one:

2026-07-11T17:28:31Z	(#fcyeeyd3ii2o) No yet. Let’s keep it rolling a little bit longer. I am reply to “[..] I don’t see any broken threads here. đŸ€”â€œ. I can’t tag followings while on mobile. <-- THIS BROKE

Was a reply to:

2026-07-11T16:39:22+00:00	(#iqqsqst5vokf) @<david https://daiwei.me/twtxt.txt> Well, I don’t see any broken threads here. đŸ€”

​ Read More
↳ In-reply-to » And if we can compile a list and file issues for feeds, twtxt.app and anything else as issues for when i get back 🙏 feature requests, bug reports. etc đŸ€ž

Also, if bots/spsiders hit your feed, they are showing as followers. Certainly not true. Right now I am blocking all bots, but that’s not the proper approach, I think.

​ Read More

@david@daiwei.me as you alter ego, I seriously recommend you stop creating feeds left and right. But whom am I kidding, right?! 😅

I wonder how long will it take to show a follower on twtd. It only shows the feed’s owner, so far.

​ Read More
↳ In-reply-to » I went to check on the fireflies this season. But I didn't see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, it's probably just another or two weeks until my glowing friends will finally show up.

A deer, multiple frogs, several thousand fireflies and something else. It was already very dark when I was silently drifting along on a nice soft mossy path, enjoying the firefly show left and right and in front of me. I then heard some rustling about 30 meters in the distance in the shrubs. I thought that I must have scared up a deer. But it kept on rustling without any worries. And I closed in without seeing anything.

Only when I heard the quick oink from just 10 meters away, I froze. Shit, no deer, but a boar! Suddenly, I was the one who was scared. It probably hadn’t noticed me before. But did it notice me now? Was that grunt a warning or just completely unrelated? The rustling appeared to slowly come closer. What if there were also piglets around? I couldn’t figure out how many boars there were. Maybe just one, possibly more. A wild boar easily rips a hunting dog apart, so I didn’t want to take any chances and decided I will not wait for them to eventually pass me behind the brush in just a hand full of meters, so I can keep on going. While I was just turning around, I heard another oink and was frighened to death. I ran 20 meters, before calming down a little bit. I listened for half a second and nobody was following me. Phew. I then walked back the path.

What an adventure, I tell you. That was my second (or maybe third?) wild boar encounter in the woods ever. A hell lot more scary at night than during daylight when you can actually see something.

​ Read More

FIFA World Cup 2026 Live updates: Germany thump Curacao 7-1 as Japan take on the Netherlands
The Netherlands and Japan kick-off our coverage this morning before we take the Ivory Coast take on Ecuador and later, Sweden v Tunisia. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 Live updates: Germany thump Curacao 7-1 as Japan take on the Netherlands
The Netherlands and Japan kick-off our coverage this morning before we take the Ivory Coast take on Ecuador and later, Sweden v Tunisia. Follow all the action. ⌘ Read more

​ Read More

Formula 1 LIVE: Russell leads the grid for Barcelona-Catalunya GP with Piastri in seventh
Brits George Russell and Lewis Hamilton lead the grid for the Barcelona-Catalunya Grand Prix. Can a seventh-placed Oscar Piastri spoil their fun? Follow all the action ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Irankunda scores as Socceroos start with a bang against Turkey
Coach Tony Popovic has made some bold selection calls as the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Australia’s Socceroos start campaign against Turkey
Coach Tony Popovic has made some bold selection calls as the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Australia’s Socceroos start campaign against Turkey
Coach Tony Popovic has made some bold selection calls as the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Scotland up against Haiti, Brazil and Morocco draw 1-1 in New Jersey, Australia’s Socceroos start campaign against Turkey
Scotland are leading against Haiti, before the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Scotland up against Haiti, Brazil and Morocco draw 1-1 in New Jersey, Australia’s Socceroos start campaign against Turkey
Scotland are leading against Haiti, before the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

FIFA World Cup 2026 LIVE updates: Brazil and Morocco draw 1-1 in New Jersey, Australia’s Socceroos start campaign against Turkey
Brazil and Morocco go head-to-head before the Socceroos begin their World Cup campaign against group favourites Turkey. Follow all the action. ⌘ Read more

​ Read More

Champion cyclist allegedly caught behind the wheel despite driving ban
Champion cyclist Rohan Dennis has allegedly been caught behind the wheel despite being banned from driving following a crash which killed his Olympian wife. ⌘ Read more

​ Read More

Champion cyclist allegedly caught behind the wheel despite driving ban
Champion cyclist Rohan Dennis has allegedly been caught behind the wheel despite being banned from driving following a crash which killed his Olympian wife. ⌘ Read more

​ Read More

ICAC Operation Navarra LIVE updates: Inquiry to stretch into next week as sacked Parramatta Council boss Gail Connolly resumes evidence
Connolly has returned for a fourth day in the witness box, as she answers questions about accusing council staffers of “dressing like homeless people”. Follow live. ⌘ Read more

​ Read More

ICAC Operation Navarra LIVE updates: Inquiry to stretch into next week as sacked Parramatta Council boss Gail Connolly resumes evidence
Connolly has returned for a fourth day in the witness box, as she answers questions about accusing council staffers of “dressing like homeless people”. Follow live. ⌘ Read more

​ Read More

ICAC Operation Navarra LIVE updates: Inquiry to stretch into next week as sacked Parramatta Council boss Gail Connolly resumes evidence
Connolly has returned for a fourth day in the witness box, as she answers questions about accusing council staffers of “dressing like homeless people”. Follow live. ⌘ Read more

​ Read More

ICAC Operation Navarra LIVE updates: Inquiry to stretch into next week as sacked Parramatta Council boss Gail Connolly resumes evidence
Connolly has returned for a fourth day in the witness box, as she answers questions about accusing council staffers of “dressing like homeless people”. Follow live. ⌘ Read more

​ Read More

Australia news as it happened: Coalition leaders rubbish idea of One Nation non-compete clause; Optus breached privacy rules; JB Hi-Fi to refund customers over misleading prices
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Coalition leaders rubbish backbencher’s suggestion of seat sharing deal with rising One Nation; Optus breached privacy rules in White Pages data bungle
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

‘Snozzle’ at the ready: State-of-the-art fire station set for Sydney’s new airport
Firefighters are readying the new station and gigantic trucks for the first cargo flights late next month, followed by passenger aircraft three months later. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; One Nation continues to dominate political debate
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; JB Hi-Fi to refund 200 customers over misleading prices
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Experts demand inquest for Epstein survivor Giuffre
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Chalmers launches most impassioned defence of budget yet
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson’s fundraising blitz raises more than $1.5 million on first day; Iranian officials confirm Strait of Hormuz closed as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson claims funding blitz after launching anti-Albanese ‘Fire the Liar’ website; Neale Daniher farewelled; Immigration detainees held unlawfully win right to sue
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Hanson claims funding blitz after launching anti-Albanese ‘Fire the Liar’ website; Neale Daniher farewelled; Immigration detainees held unlawfully win right to sue
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Albanese ‘very worried’ about renewed Middle East violence; Neale Daniher farewelled; Latham loses defamation appeal
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Albanese ‘very worried’ about renewed Middle East violence; Neale Daniher farewelled; Seven to cut up to 200 jobs
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Chalmers eyes 50 per cent CGT for start-ups after backlash; Albanese ‘very worried’ about renewed violence in Middle East as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Chalmers eyes 50 per cent CGT for start-ups after backlash; Albanese ‘very worried’ about renewed violence in Middle East as US strikes Iran
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: Chalmers eyes 50 per cent CGT for start-ups after backlash; Trump says Iran shot down US helicopter as he vows to retaliate
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Jetstar flights lock in date for opening of Sydney’s new airport
The long-awaited launch of passenger flights to Western Sydney Airport will follow the start of cargo aircraft taking off from the new aviation hub next month. ⌘ Read more

​ Read More

Australia news LIVE: Albanese says Allan ‘absolutely’ the best to lead Victoria after dire state poll; One Nation leads in third federal poll
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: PM speaks in Bendigo, vows to cut migration; One Nation leads in third poll; Former senator warns changes to NDIS will ‘push more families into crisis’
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More

Australia news LIVE: PM vows to cut migration; One Nation leads in third poll; Changes to NDIS will ‘push more families into crisis’, says former senator
Follow along as we bring you the latest live news updates from Australia and beyond. ⌘ Read more

​ Read More