HN user

pointfree

410 karma
Posts33
Comments28
View on HN
www.forth.org 6y ago

“Inspired by bats” Binaural obstacle detection implemented in GA144 [pdf]

pointfree
2pts1
www.ultratechnology.com 6y ago

Levels of code in Forth programming (2002)

pointfree
163pts51
www.nimblemachines.com 7y ago

Symmetric Division Considered Harmful

pointfree
1pts0
fosdem.org 7y ago

FOSDEM 2019 – GBForth: Using Forth to Understand the Game Boy

pointfree
2pts0
www.complang.tuwien.ac.at 8y ago

What is the PDF format good for? Nothing (2006)

pointfree
32pts32
theanarchistlibrary.org 8y ago

An Anarchist Critique of Democracy (2005)

pointfree
57pts85
medium.com 9y ago

You Can’t Code Away Their Wealth

pointfree
2pts0
gopher.floodgap.com 9y ago

Why Is Gopher Still Relevant?

pointfree
119pts95
www.youtube.com 9y ago

Pijul: Sane Version Control

pointfree
1pts0
jordi.inversethought.com 9y ago

Git… enough

pointfree
3pts2
www.youtube.com 9y ago

Over the Shoulder 1 – Text Preprocessing in Forth

pointfree
2pts0
github.com 9y ago

Forth in a spreadsheet

pointfree
4pts0
www.ultratechnology.com 9y ago

A History of Forth and aha

pointfree
2pts0
www.0xff.in 9y ago

When is a forth a better unix than Unix?

pointfree
2pts0
www.ultratechnology.com 10y ago

1x Forth (1999)

pointfree
67pts30
www.ultratechnology.com 10y ago

Levels of code in Forth programming (2002)

pointfree
9pts0
crypto.stanford.edu 10y ago

IBE-Secure Email: email addresses and timestamps can be public keys

pointfree
3pts0
blog.darcs.net 10y ago

Darcs advanced revision control system: darcs hacking sprint 10 report

pointfree
2pts0
sam-falvo.github.io 10y ago

“The Declarative, Imperative, Then Inquisitive Pattern” in Forth

pointfree
1pts0
www.forth.org 10y ago

Forth Coding Practices for High Quality, Maintainable Software [pdf]

pointfree
2pts0
catid.mechafetus.com 10y ago

Online Codes: unencumbered, locally-encodable Fountain Codes alternative

pointfree
11pts3
www.staff.science.uu.nl 10y ago

The Semantics of Version Control [pdf]

pointfree
1pts0
www.complang.tuwien.ac.at 10y ago

Use of Forth to Enable Distributed Processing on Wireless Sensor Networks [pdf]

pointfree
26pts0
pijul.org 10y ago

Pijul combines speed of git, usability of darcs

pointfree
14pts0
blog.darcs.net 10y ago

Darcs advanced revision control system: darcs hacking sprint 9 report

pointfree
1pts0
lists.osuosl.org 11y ago

Darcs 2.10.0 release

pointfree
11pts2
github.com 11y ago

Cypress PSoC without PSoC Creator, using only free/open toolchain

pointfree
2pts0
www.eetimes.com 11y ago

Analog's answer to FPGA opens field to masses (2008)

pointfree
78pts39
forthsalon.appspot.com 11y ago

A Forth haiku is an attempt to mix math, art and Forth

pointfree
47pts10
www.popsci.com 12y ago

Researchers plotting the death of the pixel

pointfree
1pts0

1. Is it possible to write complex, modern applications (things like browsers, photo editors, etc. — things that would take millions of lines of Java or JS) using this style of programming?

If it were a complex application it wouldn't be very forthy would it? Factor the problem instead of trying to factor a preconceived solution.

2. What is “sourceless programming”? Where is a good place to learn more about it?

Sourceless programming was used in Okad a vlsi design tool written by Chuck Moore.

http://www.ultratechnology.com/mofe16.htm

Brad Nelson also experimented with sourceless forth:

https://docs.google.com/presentation/d/1wL2eqf7eHGEybsK0C4MU...

https://github.com/flagxor/bicol

Portability is not important. Portability is not possible. Real applications are closely coupled to hardware. Change the platform and all the code changes. If it didn't, you wouldn't have changed the platform.

Anarchism is a political ideology that's never met the real world, like a lot of ideologies on HN and elsewhere. This might convince the random Internet reader, but it's not going to convince anyone who has studied the topic.

Although there have been some widespread and fairly comprehensive implementations of anarchism, namely the Makhnovists in the Ukraine and the Spanish Revolution in Catalonia, Aragon, Andalusia, and some parts of the Valencian Community, anarchism is more of a political tension "from where you are standing right now" than an attempt to conquer a territory to establish anarchism. That should follow from the name itself.

https://theanarchistlibrary.org/library/alfredo-m-bonanno-th...

The Situationist movement had some enduring effect on French culture from the first-person perspective. (Situationism is not anarchist, but it is libertarian and communist). The Spanish revolution less so, because it was followed by General Franco's rule.

With all due respect I would have liked if the hackernews moderators had kept my original headline "An Anarchist Critique of Democracy by Moxie Marlinspike (Signal SMS), Windy Hart"

I thought this article/transcript was of interest to hackernews in a large part due to one of the two authors being the author of the Open Whisper Systems Signal SMS app.

A smaller contact area between implementations means we need only be concerned about compatibility at that interface and the rest is up to you. This keeps the area of software that we can't change to a minimum.

Their programming interface is highly standardized across implementations.

It may be easier to have everyone use the same software and hardware platform everywhere. After all we do want interoperability and we do want everyone to play well with others, but, standardization and portability is a push to stop people from trying new things. The push to standardize everything is an unfortunate consequence of not having a separation of concerns, separate concerns such as content and UI.

Sure you could port webkit to your new OS, but if all the software you use effectively exists only as web apps what would be the point?

The author didn't say "popular" he said "relevant"

The current state of software development has huge issues with needless complexity resulting from poorly chosen abstractions.

Gopher and IRC make it possible to use any client of your choosing, thus keeping innovation and improvements accessible to anyone with an idea.

The web is like an operating system that you are locked into using. This prevents alternative operating systems such as Plan 9 from ever becoming useful, because building a web browser is such a monumental effort. Even if a decent web browser were built for Plan 9 it would defeat the purpose of using such an alternative OS because the web binds software to content.

The web has effectively killed innovation in operating systems. A clean and consistent system will be out of reach as long as this web app nonsense continues.

1x Forth (1999) 10 years ago

https://www.youtube.com/watch?v=NK0NwqF8F0k

"Chuck Moore, the inventor of Forth and ColorForth programming languages, gives a presentation on writing "1x software," or how to avoid common sources of bloat in software. Topics covered include: what it means to be Forth (as distinct from other languages), how ColorForth is simpler still than Forth, how common system services such as files, windows, and even local variables, complexify (complect) the software, the impact of bloat, maintenance on that bloat, etc. And, as is usual for Chuck, deeply philosophical thoughts as well."

Woops, that was a bad link.

http://catid.mechafetus.com/news/news.php?view=281

Ideas for Online Codes [Comment] by catid posted (>30 days ago) 9:35pm Thu. Jan 26th 2012 PST Online Codes are an unpatented approach to rateless forward error correction (FEC) codes from a 2002 paper by Petar Maymounkov. I first learned about Online Codes from a wikipedia article and since then I have been reading as much as I can about how to implement them with good performance.

Since that paper was published, Luby et al have made fantastic advancements in rateless error codes, culminating in RaptorQ last year. Unfortunately they decided to patent their algorithms, which makes their wonderful algorithms worthless for almost everyone on the Internet. So, roll back the clock by a decade and start over. sigh

Online Codes are a great place to start. I like the layered approach where there is an inner code and an outer code. After reading about a lot of modern implementations I have some ideas to try and see what will help Online Codes reach good performance:

(1) Peeling decoder. This is an unpatented approach to decoding sparse low-density parity check (LDPC) codes. It's O(N) and fast, and is pretty easy to get running.

(2) Gaussian elimination decoder. This is also an unpatented approach used to solve linear systems of equations when the equations are not sparse.

(3) Combine (1) and (2). This is an unpatented approach that provides maximum likelihood decoding in roughly O(N) for good performance. I noticed that the "Raptor Codes" monograph includes a description of this algorithm, so it must be excellent in practice. I've implemented it myself and managed significant performance (300 MB/s) before optimization. I have a few ideas for how to optimize this:

+ Reduce the number of variables needed by analyzing how data is passed between parts of the algorithm and eliminating unneeded data. + Profiling the application to see where hot spots are, and storing pre-processing in parts of the code that are taking up less time. + When back-substituting the Gaussian elimination decoded (2) symbols back into the peeling decoded (1) symbols, the check matrix is pretty dense. Borrowing a trick from windowed modular exponentiation, combinations of bits can be precomputed and then stored in a table to greatly reduce the number of XORs required. I think this can be implemented without any additional memory since at that point in the algorithm many of the received rows have been copied over to the output file. + Reduce the number of memory copies by waiting for memcpy() until back-substitution and using memxor() where possible to avoid the copy.

(4) Use two inner codes instead of one. The second inner code will be based on GF(256) octets instead of GF(2) like the rest of the check matrix. Since the normal overhead is low, adding just a few more check matrix rows in a higher field should help out the recovery properties a lot. This seems like a logical extension to the layered approach of Online Codes.

(5) Decode all codes at once. The outer code might be combined with the inner codes into one large matrix to solve. This would improve decoding performance to that of the maximum likelihood decoder, and should work well with the decoder I'm writing. We'll see...

(6) Since A = Decode(Encode(A)) and A = Encode(Decode(A)), the code can be made systematic by precomputing Decode(A) on the transmitter, and then running Encode() forward so that the first symbols sent are equal to the input data file. This can reduce processing time but still allows check symbols to be generated afterwards with good recovery properties. There should be a lot of room for optimization on the transmitter side too since it already knows what the output should be.

(7) Raptor codes are using some kind of "permanent inactivation" thing that makes the outer code more complicated but apparently helps with the recovery properties when the number of symbols is lower. Might be patented and unusable, we'll see..

The only other work that deals with rateless codes that we are aware of is a forthcoming paper [6] by Luby. Since the author declined to provide us with a copy of his paper, we are unable to compare our results until his paper becomes public at FOCS’02. The final version of our paper will include a comparison with Luby’s work.

Online Codes: https://www.cs.nyu.edu/media/publications/TR2002-833.pdf

Rateless Codes and Big Downloads: https://pdos.csail.mit.edu/~petar/papers/maymounkov-bigdown-... (Start here)

How about giving the domain to another entity that is willing to pick up the hosting and/or redirection costs?

GitLab bought Gitorious so they could shut it down, not so they could give it to someone else. That is the purpose of acquisitions within the same field.

darcs has been improving at a good rate and http://hub.darcs.net/ is good enough for me to use for my projects.

I use darcs because we would all enjoy more innovation if were to resist the inertia of the status quo and work on improving the tools we like. Unfortunately git's slipshod user interface design can't be easily fixed through incremental development and the underlying model won't be changed.

How about "DARCS did some things right that git could learn from" as a different way to present this material?

git could not switch from their history centric model to darcs' patch centric model and fix the schizophrenic ui without breaking everything built around git. In such a case a different project is useful. See python2 vs python3.

Why the change to an uninformative title from 'A CPU with 144 "tiny" computers, without clock and 5-bit instructions'?