Jeffrey Snover and the Making of PowerShell
https://corecursive.com/building-powershell-with-jeffrey-snover/ [corecursive.com]
2024-07-04 23:31
tags:
admin
development
sh
swtools
windows
What if you had to fight against your company’s culture to bring a revolutionary tool to life? Meet Jeffrey Snover, the Microsoft architect behind PowerShell, a command tool that transformed Windows system administration. Initially met with skepticism, Snover’s idea faced resistance from a company that favored graphical interfaces.
source: HN
UML: My Part in its Downfall
https://tratt.net/laurie/blog/2022/uml_my_part_in_its_downfall.html [tratt.net]
2024-03-15 23:15
tags:
development
standard
swtools
With the benefit of hindsight, I think UML had quite possibly reached not only its actual, but also its potential, peak in 2000: as a medium for software sketching, people only ever needed the basics from it. However, the standardisation community developed an ambitious vision for UML that far exceeded sketching. Whether or not that vision could ever be realised can be seen as a matter of genuine debate: what seems unarguable to me is that such a vision was deeply unsuited to any standardisation process.
The day my ping took countermeasures
https://blog.cloudflare.com/the-day-my-ping-took-countermeasures/ [blog.cloudflare.com]
2023-07-12 00:08
tags:
development
investigation
linux
networking
swtools
While this doesn’t happen too often, a computer clock can be freely adjusted either forward or backward. However, it’s pretty rare for a regular network utility, like ping, to try to manage a situation like this. It’s even less common to call it “taking countermeasures”. I would totally expect ping to just print a nonsensical time value and move on without hesitation.
Ping developers clearly put some thought into that. I wondered how far they went. Did they handle clock changes in both directions? Are the bad measurements excluded from the final statistics? How do they test the software?
source: L
gotraceui - an efficient frontend for Go execution traces
https://github.com/dominikh/gotraceui [github.com]
2023-03-31 02:29
tags:
development
go
perf
swtools
Gotraceui is a tool for visualizing and analyzing Go execution traces. It is meant to be a faster, more accessible, and more powerful alternative to go tool trace. Unlike go tool trace, Gotraceui doesn’t use deprecated browser APIs (or a browser at all), and its UI is tuned specifically to the unique characteristics of Go traces.
source: L
XTerm: It's Better Than You Thought
https://aduros.com/blog/xterm-its-better-than-you-thought/ [aduros.com]
2021-01-18 01:49
tags:
admin
swtools
x11
Some useful config options showing off flexibility beyond the basics.
source: Dfly
A handy diff argument handling feature that's actually very old
https://utcc.utoronto.ca/~cks/space/blog/unix/DiffOldArgumentsFeature [utcc.utoronto.ca]
2020-10-07 21:42
tags:
retro
standard
swtools
unix
If only one of file1 and file2 is a directory, diff shall be applied to the non-directory file and the file contained in the directory file with a filename that is the same as the last component of the non-directory file.
present - A terminal-based presentation tool with colors and effects.
https://github.com/vinayak-mehta/present [github.com]
2020-08-30 21:36
tags:
release
swtools
text
tty
Slides follow Markdown syntax.
And there’s fireworks!
source: HN
A 35-year-old bug in patch found in efforts to restore 29 year old 2.11BSD
http://bsdimp.blogspot.com/2020/08/a-35-year-old-bug-in-patch-found-in.html [bsdimp.blogspot.com]
2020-08-17 17:46
tags:
c
programming
retro
swtools
text
Larry Wall posted patch 1.3 to mod.sources on May 8, 1985. A number of versions followed over the years. It’s been a faithful alley for a long, long time. I’ve never had a problem with patch until I embarked on the 2.11BSD restoration project. In going over the logs very carefully, I’ve discovered a bug that bites this effort twice. It’s quite interesting to use 27 year old patches to find this bug while restoring a 29 year old OS...
source: HN
xi-editor retrospective
https://raphlinus.github.io/xi/2020/06/27/xi-retrospective.html [raphlinus.github.io]
2020-07-01 00:55
tags:
compsci
concurrency
development
programming
rust
swtools
text
I still believe it would be possible to build a high quality editor based on the original design. But I also believe that this would be quite a complex system, and require significantly more work than necessary.
A few good ideas and observations could be mined out of this post.
source: L
Input events on X have an old world and a new world
https://utcc.utoronto.ca/~cks/space/blog/unix/XInputOldAndNew [utcc.utoronto.ca]
2020-06-18 01:48
tags:
swtools
ux
x11
One of the important consequences of this split between core input events and XIE events is that events that look identical at the core input event level (for example, as shown by xev) may be different at the XIE level (as interpreted by libXi and then toolkit libraries, and perhaps as shown by xinput). This means that some programs will treat them exactly the same because they’re indistinguishable and some programs may react to them differently. This can cause rather odd issues, but that’s a story for another entry.
Also: https://utcc.utoronto.ca/~cks/space/blog/linux/XInputGtkScrollPuzzle
Dumbindent: When 93% of the Time was Spent in Clang-Format
https://nigeltao.github.io/blog/2020/dumbindent.html [nigeltao.github.io]
2020-06-16 15:57
tags:
programming
swtools
Summary: The Wuffs compiler outputs C code. When compiling its standard library, over 93% of the time (2.680 out of 2.855 seconds) was spent formatting that C code with clang-format. dumbindent is a new command-line tool (and Go package) that formats C code. Its output is not as ‘pretty’, but it can be over 80 times faster than clang-format (0.008 versus 0.668 seconds to format 12k lines of C code).
source: L
The Deprecated *nix API
https://www.bitquabit.com/post/deprecated-nix-api/ [www.bitquabit.com]
2020-05-21 16:40
tags:
development
swtools
unix
But for “*nix”, without any clarifying context, I for one think in terms of shell scripts and their utilities. And the problem is that my own naïve scripts, despite being written on a legit *nix variant, simply will not run on a vanilla Linux, macOS, or *BSD installation. They certainly can—I can install fish, and sd, and ripgrep, and whatever else I’m using, very easily—but those tools aren’t available out-of-the-box, any more than, I dunno, the PowerShell 6 for Linux is.
source: L
The Success and Failure of Ninja
http://neugierig.org/software/blog/2020/05/ninja.html [neugierig.org]
2020-05-20 06:47
tags:
development
swtools
Ninja has been by far my most successful open source project, depending on how you quantify success. (Other projects of mine like Chrome have more users, but I was responsible for only parts of Chrome; Ninja also has had important contributions by collaborators but it feels more like “mine”.) I released Ninja in 2011, gave ownership of the Ninja project away in 2014, and it has since been passed on again to a third maintainer, so now that my part in the story is pretty much over I here would like to reflect on what I learned.
source: trivium
In Praise of AutoHotKey
https://www.hillelwayne.com/post/ahk/ [www.hillelwayne.com]
2020-05-13 00:20
tags:
programming
swtools
ux
windows
People think it’s weird that I do all my development on a Windows machine. It’s definitely a second-class citizen experience in the wider development world, and Windows has a lot of really frustrating issues, but it’s still my favorite operating system. This is for exactly one reason: AutoHotKey.
AHK is an engine for mapping keystrokes to scripts. I wouldn’t call it particularly elegant, and it’s filled with tons of redundancy and quirks. Even its fans admit how nasty the language can be. But it hooks into the whole Windows system and makes it easy to augment my workflow. It’s given me a far greater degree of control over my computer than I ever managed to achieve with another OS.
source: L
GNU Binutils: the ELF Swiss Army Knife
https://interrupt.memfault.com/blog/gnu-binutils [interrupt.memfault.com]
2020-04-16 16:03
tags:
development
swtools
There’s a lot that takes place between the C code you write and the binary that winds up executing on a device. Understanding how to look at and inspect what is emitted by the compiler saves time and can improve your efficiency in many areas of the development lifecycle – such as debugging system problems, identifying issues with compilers or debug info emitted, reducing the size of binaries, and optimizing an application for performance and latency.
In this article, we will explore some of my favorite binary introspection tools, such as GNU Binutils. The material is geared toward the embedded software crowd that typically writes C and C++, but many of the ideas, tools, and lessons learned can be applied to a variety of low-level software. We will walk through practical examples of how the tools can be leveraged to aid in the development process irrespective of the compiler you are using (e.g. GCC, Clang, IAR, ARMCC, etc).
Comparing Alternatives to top Written in Rust
https://www.wezm.net/v2/posts/2020/rust-top-alternatives/ [www.wezm.net]
2020-03-21 17:53
tags:
admin
swtools
Recently I aliased top to ytop. Then I became aware of bottom, and zenith. These are all terminal based system monitoring tools that you might use instead of top. In this post I set out to compare them.
source: L
gter - a terminal for GUI apps
https://github.com/raoofha/gter [github.com]
2020-01-14 22:02
tags:
sh
swtools
ux
x11
A shell may be more accurate?
source: HN
age is a simple, modern and secure file encryption tool.
https://github.com/FiloSottile/age [github.com]
2019-12-28 02:50
tags:
crypto
release
security
storage
swtools
A simple, modern and secure encryption tool with small explicit keys, no config options, and UNIX-style composability.
I think it’s ready now?
source: L
Introducing Glush: a robust, human readable, top-down parser compiler
https://www.sanity.io/blog/why-we-wrote-yet-another-parser-compiler [www.sanity.io]
2019-12-18 17:54
tags:
compiler
compsci
programming
release
swtools
text
It’s been 45 years since Stephen Johnson wrote Yacc (Yet another compiler-compiler), a parser generator that made it possible for anyone to write fast, efficient parsers. Yacc, and its many derivatives, quickly became popular and were included in many Unix distributions. You would imagine that in 45 years we would have further perfected the art of creating parsers and would have standardized on a single tool. A lot of progress has been made, but there are still annoyances and problems affecting every tool out there.
This is great, even just for the overview of parsing.
The CYK algorithm (named after Cocke–Younger–Kasami) is in my opinion of great theoretical importance when it comes to parsing context-free grammars. CYK will parse all context-free parsers in O(n3), including the “simple” grammars that LL/LR can parse in linear time. It accomplishes this by converting parsing into a different problem: CYK shows that parsing context-free languages is equivalent to doing a boolean matrix multiplication. Matrix multiplication can be done naively in cubic time, and as such parsing context-free languages can be done in cubic time. It’s a very satisfying theoretical result, and the actual algorithm is small and easy to understand.
source: trivium
Your Makefiles are wrong
https://tech.davis-hansson.com/p/make/ [tech.davis-hansson.com]
2019-12-17 23:29
tags:
development
sh
swtools
Your Makefiles are full of tabs and errors. An opinionated approach to writing (GNU) Makefiles that I learned from Ben may still be able to salvage them.
I don’t agree with everything, or even most of this, but worth considering.
source: HN