HNHacker News
TopNewBestAskShowJobs

i4k

96 karma · joined August 6, 2013

[ my public key: https://keybase.io/i4k; my proof: https://keybase.io/i4k/sigs/XJnEOw45eBGDy5L3nYmmRxuo87Io9yBufnAaM84QnJg ]

https://i4k.madlambda.io/

submissionscomments
i4k··on Maybe we shouldn't want a fully decentralized web
Imagine a world where you can create a blog and write anything, even discuss ideas against the "status quo". That's the world the OP lives now and he's arguing against it.

The "status quo" in the dark ages was: bigotry, fanaticism, supremacism, conspiratorial theories, anti-science, slavery, and so on. At this time, writing anything against the masses beliefs would lead to persecution and death. People died trying to educate others and at the same time others extremist ideas were born but the society learned to ignore them. The good ideas were victorious.

Remember: On May 10, 1933 around 25,000 books from 34 university towns in Germany were burned! Some of those books were unique, their ideas will never be known by society.

If you go back in time, 50 years, 100 years, 1000 years back, whatever, the society always approved horrendous ideas and few people fought back. You should never trust the "status quo" or the "justice warriors" of the internet, as they could easily be on the wrong side of history. The access to information is the solution not the problem.

In my opinion, asking for censorship shows no respect for the ones that died trying to change the world.

i4k··on Go 1.8 Release Candidate 1 is released
> To preserve the familiar build semantics

You are trying to build Go in a way it wasn't designed for.

Go encourages absolute import paths (relative to $GOPATH) and solves a myriad of other language faults in this way. A good benefit is go-gettable projects, where all dependencies can be reached without a setup/configuration file (like setup.py, requirements.txt, and so on).

If you do not try to use Go like other language, your build should be something like:

  $ GOPATH=$PWD/some/path go get github.com/foo/bar
i4k··on Ask HN: x86 SMP with cpus on different processor modes
I'd already read the booting process of xv6, but it does IPI in protected mode too. Maybe BSP will need to enter pmode to make any IPI call anyway.

Thanks for the help!

i4k··on 4os – An operating system written completely in Forth
Interesting, but found this:

https://groups.google.com/forum/#!msg/comp.lang.forth/XCtQPZ...

i4k··on Bash 4.4 released
The problem is not only with bash, but with entire gnu ecosystem. Bash disable something ONLY when the parent process is EMACS is totally nonsense. Bash should check for some behavior, instead of some technology... because I'm sure other editors can behave similarly when executing bash inside some buffer.

Doing software this way makes bash and emacs working well, but hard to make other softwares interact with both of them... Sublime, acme, micro, and so on can benefit of a better solution. In the same way, other shell should work fine inside emacs (M-x ansi-term).

But software design is not expected here (see downvotes)

i4k··on Bash 4.4 released
> Bash now checks $INSIDE_EMACS as well as $EMACS > when deciding whether or > not bash is being run in a GNU Emacs shell window.

hahaha

Next release it will check the variables $INSIDE_ACME, $INSIDE_SUBLIME and $INSIDE_NOTEPADPLUSPLUS

i4k··on Bash 4.4 released
Holyshit!

After four releases versions bash starts to get regular syntax?

i4k··on Using docker in GitHub repo names is forbidden
I don't think so. Apparently the problem is only with repos starting with "docker". As an example, the project "dockercli" was renamed to "wharfee" due to legal issues with docker inc.

  https://github.com/j-bennet/wharfee
  https://github.com/j-bennet/wharfee/issues/89
i4k··on Using docker in GitHub repo names is forbidden
https://github.com/search?q=docker&type=Repositories&utf8=%E...

112.567 repositories with docker in name.

Big companies/projects are using docker.* repo names. To cite some:

  spotify/docker-gc
  couchbase/docker
  citusdata/docker
  nodejs/docker-node
i4k··on Go and Docker =
OK, then I will use a complicated, slow and unstable machinery that depends on lots of kernel features, to run a simple, self-contained and fast compiler?

And think, Go was created with intent for faster builds. My bigger go project builds faster than `docker run` starts up...

The author forget to say that this way docker will setup a network namespaces, bridge, mount a unionfs (overlayfs, aufs, etc), lots of other things, make a chroot and then finally execute the go tool...

And Go doesn't even need to be installed on the OS, it can be placed anywhere, you only need to set the GOROOT env var. (For bash-users, the gvm script automate the build/download of every go version you want in your $HOME)

The only point of the article is when you're not a Go programmer and want to test some Go project...

i4k··on Understanding and Hardening Linux Containers [pdf]
Linux being secure is a fallacy too.

Spender talks about it for a long time: https://grsecurity.net/~spender/interview_notes.txt

Linux developers fix security bugs in irresponsible ways, saying nothing about the attack vector or CVE's involved. Sometimes multiple vulnerabilities are addressed in the same patch, making hard to track the fix.

For more information see the exploit below: https://grsecurity.net/~spender/exploits/64bit_dos.c

The list of kernel vulnerabilities involving namespaces is bigger each day, as the paper shows, but the industry still uses "container" and "security" in the same quotes.

i4k··on Understanding and Hardening Linux Containers [pdf]
Container technology is grounded on namespaces and cgroups. Both technologies existed long time ago. Linux namespace is a very limited implementation of Plan9's namespace. Solaris and FreeBSD, to cite only the most famous, have resource limits database for process groups.
i4k··on Show HN: Subgraph OS, the secure os
I really liked the architecture, but I don't think container is a good name for the kind of isolation it has. For the machinery work as expected, the namespaced application must follow the Oz-rules/policies. Container nowadays are complete environments, everyone with different rootfs and so, very different of the kind of container required in subgraph. It can lead to misinterpretation, because I cannot reuse existent distros/rootfs and package managers to run other applications in subgraph. As I've understood, subgraph only bind-mount the common directories from host to the namespace mount point of process on top of a tmpfs. Hard to reuse an ubuntu app.

How persistent data will be managed isn't detailed in the document.

Seccomp-bfp is a good enhancement. It can really fix the well know security issue of docker when using volumes with write permissions.

Still wondering what's the plan for persistent data. If someone has more info, please share :)

i4k··on Show HN: Subgraph OS, the secure os
Trying to achieve Qubes OS concepts with containers is a very hard task. Wondering how this can be achieved. Do they provide any paper or detailed view of the implementation?

Some questions:

  - Do they provide their own implementation of containers or
    rely on some already existing (docker, rkt, etc)?
  - How containers communicate? what protocol?
  - How filesystem is handled? Containers have volumes for file system sharing?
  - What's the plan for devices management? How my USB
    pendrive, speaker or webcam is available inside a 
    container?
i4k··on Meet LKL: Turn Linux Kernel into a Library
I have the same question.
i4k··on Writing Assembly on OpenBSD (x86) (2012)
Not related to your comment, but...

Thanks for Myrddin! It's a very promising language! Well designed and using the right tools.

People of #cat-v showed it to me and since then I look forward to play with it!

i4k··on A Tour of Acme (2012)
Very nice!

Yes, plumber is the app behind the scenes that make acme so much integrated with OS and other apps. The same applies for right-click on the text between '<' and '>' in includes (in C source files) for opening header files. That's the kind of programming environment that I miss when using emacs/vi.

i4k··on A Tour of Acme (2012)
Yes. But the graphical UI interface he's talking about was lost with the advent of Xorg.

The same (or very close) interface was available for unix in 1982 with the Blit graphics terminal. Blit was created by Rob Pike (acme creator) too and it influenced the next Pike's GUIs (rio and 8½).

In Plan9's rio, windows are treated as completely editable text, then the mouse chords for cut-and-paste works for all applications transparently.

Blit promotional video: https://www.youtube.com/watch?v=emh22gT5e9k

Wiki: https://en.wikipedia.org/wiki/Blit_(computer_terminal)

i4k··on A Tour of Acme (2012)
Acme doesn't have web browser and news reader natively.

For terminal, acme have support for windows attached to programs (if the program is a shell, you have something like a terminal). From the manpage:

    Win creates a new acme window and runs a command (default /bin/rc) in it, 
    turning the window into something analogous to an rio(1) window.
    Executing text in a win window with button 2 is similar to using Send.
Mail client is builtin but only for upas/fs. If you want/need another approach you can extend by external programs.

Some other applications of plan9 have taken the advantage of acme UI (like abaco web browser) but they aren't builtin inside acme.

i4k··on A Tour of Acme (2012)
It's definitely a programmer's editor. Some notable programmers used acme (Dennis Ritchie, Russ Cox). A lot of very great ideas/softwares were written inside acme (plan9, UTF-8, Go, etc).

But I agree that it's not the best choice for some languages or environments.

i4k··on A Tour of Acme (2012)
I'm using acme for C/Go development for at least 8 months and I'm very satisfied. Acme is very stable and so much easy to extend using any language or simply shells. This turns the development a task much more painless.

In my current view, the lack of syntax highlighting is a great feature!

For now emacs is only for lisp/scheme languages.

i4k··on How to Use the Plan 9 C Compiler [pdf]
Ken Thompson's C Compiler: http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compile...
← PreviousPage 2 of 2