HN user

spit2wind

479 karma

~twst~

Posts1
Comments185
View on HN

Depending on the job, you can likely be fired without cause anyway. You can pretend to not poke the bear, but in a place that plays power games like that, it doesn't really matter.

Presumably performance matters above all else (although it likely doesn't in such a place). If Emacs actually makes a meaningful difference, then just use it to do your work more efficiently.

You can run a batch/shell script, right? Of course you can. Would you ask for permission to write and run a script? If not (and presumably you wouldn't because that would be silly) then you shouldn't ask to run Emacs. You "own" both and take on all the "risk". There's really no difference.

But really, truly ask yourself, is whatever cause you're working towards (that is, the mission of the company) worth sacrificing your dignity for?

I taught a remedial math class. There are thousands of books for such a topic. I was required by the university to use a specific new edition (something like 9th) from a specific publisher. I went to the university library and found the 2nd edition. The questions were more or less verbatim but in a different order. The lesson portions were more or less the same and tended to be better. I explicitly directed students to this edition, which they could purchase for something like 2$ (vs $150). In 10 years in post-highschool eduction, and 4 institutions, I never once heard or had a teacher do that. It's a choice and the majority of educators don't do it.

Tip for learners: find an early edition of a book. They're often vastly cheaper and much better written. It stands that if a book warrants a 12th edition, then the 1st edition must have been decent enough to get wide adoption. Often revisions are bloat or, when they're not, it's educational to see the difference between then and now (eg Andre Tanenbaum's OS books)

Dead wrong.

Because I see so many people who believe otherwise, here's a direct quote from a prior contract:

I UNDERSTAND AND ACKNOWLEDGE THAT MY EMPLOYMENT WITH THE COMPANY IS FOR NO SPECIFIED TERM AND CONSTITUTES "AT-WILL" EMPLOYMENT. I ALSO UNDERSTAND THAT ANY REPRESENTATION TO THE CONTRARY IS UNAUTHORIZED AND NOT VALID UNLESS SIGNED BY THE PRESIDENT OR CEO OF THE COMPANY. ACCORDINGLY, I ACKNOWLEDGE THAT MY EMPLOYMENT RELATIONSHIP MAY BE TERMINATED AT ANY TIME, WITH OR WITHOUT GOOD CAUSE OR FOR ANY OR NO CAUSE, AT MY OPTION OR AT THE OPTION OF THE COMPANY WITH OR WITHOUT ME NOTICE. I FURTHER ACKNOWLEDGE THAT THE COMPANY MAY MODIFY JOB TITLES, SALARIES, AND BENEFITS FROM TIME TO TIME AS IT IS NECESSARY.

Every job I ever held but the unionized ones had some variation of that.

If you're talking about binary files, then it has similar limitations to Git and Mercurial, AFAIK. Fossil, git, and Mercurial are not really designed for large binary files.

Otherwise, in Fossil, any text is just another artifact. Wiki pages can be stored as files in the repo ("embedded") and versioned in the same manner as code files (that is, exposed through the same interface), or tracked behind the scenes (in a separate database, IIUC, with a different interface). Tickets and forum entries are also tracked and versioned similarly to non-embedded docs.

Aside from everything being versioned, the visibility of the objects is quite good. The user interface, both command and web, is light-years better than anything Git related.

I highly recommend you check it out. Even if you find it doesn't meet your needs, many of the design decisions are instructive. I find it quite inspiring.

only a handful of VCS besides git have ever managed a full import of the kernel's history. Fossil (SQLite-based, by the SQLite team) never did.

I find this hard to believe. I searched the Fossil forums and found no mention of such an attempt (and failure). Unfortunately, I don't have a computer handy to verify or disprove. Is there any evidence for this claim?

I love it how RMS has both these quotes in the same text: "Please don't fall into the practice of calling the whole system “Linux,” since that means attributing our work to someone else. Please give us equal mention." "This makes it difficult to write free drivers so that Linux and XFree86 can support new hardware." And there are only a few lines between those quotes.

I'll be honest, I don't understand your point here?

I never understood the Handmade Network. AFAIU, it came from people who watched Casey Muratori's Handmade Hero, a game developed on video over several years from scratch. But Casey, as far as I know, didn't start the Network and it never seemed to align with the intent of Handmade Hero.

The purpose of Handmade Hero was to show people that they are capable of making a game themselves and to learn things which have a reputation for being too hard. There was, of course, an emphasis on the hard things being hard because of complexity introduced by things like OOP, C++, etc. But the main purpose always felt like education and enablement. Casey's a great teacher and the videos are very informative.

The Network, on the other hand, was some weird "we want to make stuff by hand", whatever that means. That's fine. But that's not what Casey spent like 7 years doing. He didn't do it "just cuz". Instead, it was to teach and share. That seemed lost on the Network.

As a result, it seemed just like a less toxic Suckless project without the focus on making a new ecosystem. It was just a forum to say, "Hey I made this thing", all the while co-oping the feel-goods from Casey's Handmade Hero.

Americans are not passive. Look at the videos of any of these incidents. People are supporting those under attack, collecting evidence, and protesting. The message is clear.

Peaceful protest is the key. Riots, violence, and fighting are not peaceful and only play into the administration's aims.

When Americans resist and protest peacefully, as they have been in the largest numbers ever in the country's history, it exposes the brutality and baseness of those commiting the heinous acts.

Through such peaceful protest as we see, America will overcome this.

The big question is, what next? How to hold people accountable, fairly, while rebuilding the system and rebuilding trust?

This is pretty neat! The calendar didn't work well for me. I could only seem to navigate by month. And when I selected the earliest day (after much tapping), nothing seemed to be updated.

Nonetheless, random access history is cool.

This is an interesting observation. One could argue that some AI generated or driven things does have utility, and thus qualifies as "slop" (although not for those on the receiving end). For example, when used to drive clicks and generate revenue, to troll, or to spread propaganda. You get the idea.

In this instance however, I agree, barf is more accurate.

I'll also take the bait. As far as I understand it, these rules come, fundamentally, from the German Basic Law which was drafted, in part, with direct support from the US after the war. There's certainly always room for healthy debate about what is meant by freedom of speech. But it strikes me as ignorant to come from a US "absolutist" perspective and not understand the history (of US involvement). No clue if the poster is approaching it from that perspective; I'm trying to raise the point of historical context in response to the category of such responses I've encountered.

Re: 8 complete info-manual

Yes, it has an info manual and, I agree, info is the superior documentation viewer. However, a good browser is no replacement for bad writing.

The Guile manual is not well written. The organization seems almost random. The text emphasizes minutia while glossing over fundamental details. It off-loads much to RnRSs and SFRIs (whatever those are). Basically, it suffers badly from The Curse of Expertise.

The documentation's shortcomings might be okay except that Guile is, or was, the premier extension language for the whole of the GNU project.

I considered trying to improve the manual, but why would I dedicate time and effort to a language that I don't know and whose community can't follow it's own advice?

Consider the following:

"Make sure your manual is clear to a reader who knows nothing about the topic and reads it straight through. This means covering basic topics at the beginning, and advanced topics only later. This also means defining every specialized term when it is first used." https://www.gnu.org/prep/standards/html_node/GNU-Manuals.htm...

Most of these points: https://www.fsf.org/campaigns/gnu-press/GNU-Press-styleguide...

Maybe at FOSDEM this year, people could do a Hackathon and knock out some basics, like defining acronyms or using terms only after they're defined.

PS: every Python tarball for quite a while has instructions for building the documentation, including in info format

Excuse me if someone already asked and I missed it: how does one prepare for such a world?

Is it some Viktor Frankl level acceptance or should I buy a copy of the Art of Electronics or what?

Advice welcome.

That's interesting. I consider git the worst software ever written!

I speak specifically of the UI. Obviously the underlying system works. Yet it's totally within reason that the UI has wasted trillions of money and many person years in lost productivity.

Napkin math. It's easy to waste 30 minutes figuring out what the heck is going on after a command didn't work, or explaining what a detached head is to a newbie, or any number of completely avoidable issues were the UI better.

Consider the 26.9 million developers in North America[1]. How does one estimate the average salary across NA? Some in SV make 3x that. Elsewhere, it's conceivable that people make considerably less. Let's just say 100k. That's 100,000÷52÷40=48/hr or 24 per half hour. Anyone with git, I think it's safe to say, has had at least one stupid issue that took 30 minutes because of the UI. That's 26.9×24=645,600,000 monies.

In my experience and what I've seen of anyone who'a used git, 30 minutes is a gross underestimate. And people use git outside of NA. It's easily trillions in waste.

https://en.wikipedia.org/wiki/Software_engineering_demograph...

I've wondered if there's a good "standard" project a person could use to get up to speed on a new language and get an intuitive sense for working with it. For example, plenty of Java programmers can write a working Python program, but it's not "pythonic".

Would writing a CHIP-8 emulator be such a project? It seems non-trivial, yet not too big, the kind of thing that if you implemented it once, implementing it again in another language would be much faster (apart from the language learning).

Bring up AI in a Seattle coffee shop now and people react like you're advocating asbestos.

I don't know who first uses the asbestos analogy, but it's 1000% on point.

I think Cory Doctrow says it best,

"AI is the asbestos we're shoveling into the walls of our society — and our descendants will be digging it out for generations."

I believe that's exactly the language to combat AI hype.

Termux isn't required, unless you want other applications (e.g. git, python, or GCC).

If you do want Termux, a signed and compatible version is provided by the Emacs devs. It should all be in the README (at least it always has been, through various updates, since I started using the Emacs on Android before it was merged into the main branch).

The menus have all you need. It's not ideal, of course, but it's enough to get you going. Otherwise you can remap the menu and toolbar to your needs.

There are several developer oriented keyboards. I found the Unexpected Keyboard quite good.

This is my Unexpected layout:

  <?xml version="1.0" encoding="utf-8"?>
  <keyboard bottom_row="false" name="Emacs-rev1" script="latin">
    <row>
      <key c="q" sw="1" nw="loc esc"/>
      <key c="w" sw="2" nw="~" ne="\@"/>
      <key c="e" sw="3" nw="!" ne="\#" se="loc €"/>
      <key c="r" sw="4" ne="$"/>
      <key c="t" sw="5" ne="%"/>
      <key c="y" sw="6" ne="^"/>
      <key c="u" sw="7" ne="&amp;"/>
      <key c="i" sw="8" ne="\*"/>
      <key c="o" sw="9" ne="("/>
      <key c="p" sw="0" ne=")"/>
    </row>
    <row>
      <key shift="0.4" c="a" nw="loc tab" ne="`"/>
      <key c="s" ne="loc §" sw="loc ß"/>
      <key c="d"/>
      <key c="f"/>
      <key c="g" ne="-" sw="_"/>
      <key c="h" ne="=" sw="+"/>
      <key c="j" ne="}" nw="{"/>
      <key c="k" nw="[" ne="]"/>
      <key c="l" nw="|" ne="\\"/>
    </row>
    <row>
      <key width="1.5" c="shift" ne="loc capslock"/>
      <key c="z"/>
      <key c="x" ne="loc †"/>
      <key c="c" sw="&lt;"   ne="."/>
      <key c="v" sw="&gt;"   ne=","/>
      <key c="b" sw="\?"     ne="/"/>
      <key c="n" sw=":"      ne=";"/>
      <key c="m" ne="&quot;" nw="'"/>
      <key width="1.5" c="backspace" ne="delete"/>
    </row>
    <row height="0.95">
      <key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key3="loc switch_clipboard" key4="switch_numeric"/>
      <key width="1.7" key0="alt" key1="loc change_method" key2="fn" key3="switch_emoji" key4="config"/>
      <key width="3.5" key0="space" key7="loc home" key8="loc end"/>
      <key width="1.6" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc page_up" key3="loc page_down"/>
      <key width="1.5" key0="enter" key1="loc voice_typing" key2="action"/>
    </row>
  </keyboard>