department of hack
1602 stories
·
16 followers

awaken->web sutras->feather

1 Comment
# I have this theory. It is a theory about pattern, chaos, humanity and the Web. When I talk about this theory, I always talk about sheep. There is a farmer and he has a herd of sheep that is rather large. One night, the farmer goes to sleep, and the next morning he goes out to his sheep to let them into the pasture. He notices one of his sheep is dead. He gathers it up in his arms and takes it to the place where farmers dispose of their dead animals. He wonders about disease, but there is none. He wonders about wolves, but there is no sign of struggle. He wonders about weakness, but this is a good strong sheep. His sheep has simply died and there is no explanation for its death. Being the practical man that he is, he stops thinking about the dead sheep and tends to the live ones. He considers it odd, but not too odd. In his county there are seven other farms. They are very large farms and he rarely sees the other farmers, except maybe at the county fair or the cattle auctions, but those events will not be for a few months now. When he sees the farmers again, he will have forgotten entirely about the sheep that died. Yet, something very strange has occurred. Something this farmer will never know about in his narrow view of his one farm. For if we in our omnipotence were to look at the county as a whole, and were to be awake and paying attention on the night that the one sheep died, we would see that on that same night our farmer's sheep died, one sheep from each of the seven farms died. Each farmer went through the same process of discarding the sheep. And each farmer went through the same process of shrugging off the death. We would not be able to dismiss these facts as mere coincidence, nor would we be able to shrug them off. This event demands to be labeled a phenomenon, and we would be moved to investigate and define the phenomenon, because humans are naturally moved to find meaning in strange occurrences. Now apply this phenomenon to the Web. If each of us were to catalog our own human experience and make it available on the web, we could lend to each other an omnipotence unattainable prior to the existence of the Net. We could take events in our own lives, which have mystified us since their occurrence, and search the web for similar encounters. We could compare and contrast other's experiences and draw deeper meaning into our own experience. We might too, find the one piece of information that will transform an experience we had nearly forgotten into a life changing moment which has been waiting years to unfold. Using the Web, we could study humanity in a way unavailable to us prior to the existence of the Net. We could take a cross section of the human experience, revealing different layers of expression provided by other examinations of a particular experience. We could collect individual accounts of such experiences and benefit from the various levels of analysis drawn from religion, mythology or archetype, as well as wholly uneducated or raw versions of the experience. And we could track the experience across boundaries of age, gender, era, and culture. The Web may provide us with a way to transcend our current and limited spheres of knowledge to grasp a further and deeper understanding of what it means to be human and to be alive. We can not know at this point what will occur, but I feel that it is wholly unlikely that nothing will occur, for I have had enough encounters on the Web to convince me that something is waiting for us out here. Something is drawing us together, if only our need for each other, our need to understand what is happening to us, our need to undo the mystery of life. When you are ready, bring your experiences to the Web. Put pointers to yourself wherever appropriate so that you may make your experiences known to us. Make yourself available for contact, and then wait. Do not wait anxiously or obsessively, simply put it out of your mind and wait. "Something wonderful is going to happen."
Read the whole story
brennen
12 hours ago
reply
I remember this kind of optimism about what would emerge from the web. I think in fairness that some of it came to meaningful fruition. Sure is a tragedy about everything else.
Boulder, CO
Share this story
Delete

America Is Choosing to Stay Vulnerable to Pandemics - The Atlantic

2 Shares
Read the whole story
brennen
3 days ago
reply
Boulder, CO
acdha
3 days ago
reply
Washington, DC
Share this story
Delete

Ken Thompson Really Did Launch His "Trusting Trust" Trojan Attack in Real Life

2 Shares
Read the whole story
brennen
3 days ago
reply
Boulder, CO
acdha
3 days ago
reply
Washington, DC
Share this story
Delete

GitHub's missing merge option

1 Share

github is a perfectly fine hosting site, and it does a number of other things well too, but merges is not one of those things.

Linus Torvalds

Git possesses parts of a decent software forge.

When git was developed by the Linux kernel community, they already had bug tracking, documentation, and a mailing list, so (unlike fossil) git has none of those things.

Enter GitHub. It uses “issues” for bug tracking and discussion, and its code browser is unrivaled.

But for all of its features, GitHub implements only a subset of git. For instance, GitHub lacks the default merge strategy of git—the fast-forward merge.

And after some pondering I realized there’s a good reason for that: it’s a cop-out.

git log can be clean or accurate, not both

I want clean history, but that really means (a) clean and (b) history.

Linus Torvalds

Git log will always suck for someone.

An eternal war rages between team “git log should be clean” vs. team “git log should have an accurate history.”

  • 📚 Team History
    • Method: git merge --no-ff
    • 🟢 Pros: A complete history of how everything was developed
    • 🔴 Cons: You’ve opened a pandoras box of strange git situations. And your git log looks like this now1:
    * (refs/heads/B)
    * * Merge 'C' into 'B'
    * |\
    * | | * (refs/heads/C -- git revert B8)
    * | | * Merge 'B' into 'C'
    * | |/|
    * | |/
    * |/|
    * * | B8
    * | * C3
    * |/
    * * A (refs/heads/A)
Team history uses git merge --no-ff to ensure a merge commit is always created
  • Team Clean
    • Methods: git merge --ff-only or git rebase && git merge (extreme clean freaks add the --squash option)
    • 🟢 Pros: Linear history, git log is easy to read, git revert requires no thought.
    • 🔴 Cons: You’re erasing history—you can no longer tell if two commits were written together on a single feature branch.
Team clean uses git rebase && git merge --ff-only to make it appear there was never a feature branch at all

Why is git merge bad?

git merge opted out.

If a branch can be fast-forwarded, git merge sticks the commits on the end of the branch and never tells you there was a merge—team clean.

But if a branch has conflicts, you’ll need to fix them and create a merge commit to say what you did—team history.

Sometimes there’s a merge commit; sometimes not: Madness.

What does GitHub do?

When you mash “merge” in GitHub it never executes plain git merge.

The GitHub merge options (the command line instructions are a lie)

And sussing out what git command it will run is kafkaesque. I spent some time mapping all the checkboxes and merge strategies into something you could type into bash.

command GitHub Alignment
git merge not implemented ¯\_(ツ)_/¯
git merge --ff-only not implemented ✨ Team Clean
git rebase && git merge --ff-only Rebase and Merge ✨ Team Clean
git merge --no-ff Create a merge commit 📚 Team History
git merge --squash --ff-only BRANCH Squash and merge ✨ Team Clean
git merge --is-ancestor && git merge --no-ff Create a merge commit + Require linear history ✨ Team Clean2

There is a distinction between git rebase && git merge --ff-only and git merge --ff-only. Rebasing modifies the commit—you end up with a different SHA1.

By not using the “merge if necessary” strategy of git merge, GitHub forces you to choose a side in the eternal war. And that’s a good thing.


  1. This is a contrived example of a “criss-cross merge↩︎

  2. In GitLab this is “Merge Commit with Semi-linear history” which seems like a nicer UI vs the buried option to “Require linear history”. This option mitigates some of the pain of an ugly git log.↩︎

Read the whole story
brennen
4 days ago
reply
Boulder, CO
Share this story
Delete

Saturday Morning Breakfast Cereal - Hemingway

1 Comment and 8 Shares


Click here to go see the bonus panel!

Hovertext:
Tolkien ends up in Heaven but is secretly disappointed Valhalla wasn't available.


Today's News:
Read the whole story
brennen
4 days ago
reply
Boulder, CO
Share this story
Delete
1 public comment
rraszews
4 days ago
reply
"Okay so the bad news is that it's Rowling, but the good news is you are definitely not going to run into her here."
Columbia, MD

vim-css-color

1 Share

Last year I wrote about a subset of the vim plugins I was using, specifically those created by master craftsman Tim Pope. Off and on since then I've reviewed the other plugins I use and tried a few others, so I thought I'd write about them.

automatic colour name colouring

automatic colour name colouring

vim-css-color is a simple plugin that recognised colour names specified in CSS-style: e.g. 'red', '#ff0000', '#rgb(255,0,0)' etc., and colours them accordingly. True to its name, once installed it's active when editing CSS files, but it's also supported for many other file types, and extending it further is not hard.

Read the whole story
brennen
4 days ago
reply
Boulder, CO
Share this story
Delete
Next Page of Stories