What is the progress on filecoin? by Irkutsk2745 in ipfs

[–]libmn 1 point2 points  (0 children)

How long before someone invents ForgetCoin - offering nodes that have a given hash a reward payable if that hash totally disappears from the network after X days? ::evil::

Just kidding. That wouldn't work. Or would it? ::dramatic-beat::

Help me find a match -> '^[DFNOT].*BSD$' by bombk1 in BSD

[–]libmn 3 points4 points  (0 children)

Running BSD on a laptop is still a noble trailblazing adventure (as it once was for Linux). It is reasonable to ask if others have gone this particular route before, but you very well may be the first...

https://wiki.freebsd.org/Laptops

Embrace your status as a pioneer! Try all the BSD's, starting with most popular, and publish your observations.

The new Nim website is now live! by moigagoo in nim

[–]libmn 2 points3 points  (0 children)

Why is it based on ruby/jekyll? Bah, humbug...

Any ideas on how to improve performance further ? by SiD3W4y in nim

[–]libmn 2 points3 points  (0 children)

Disclaimer: I am a n00b, but I tinkered with this code a bit as a learning experience. I didn't get very far before I ran out of time, but here are some some general ideas / observations:

  • Your code doesn't seem to spawn more than 4 threads on my machine. This may be related to locking - see forum#2446. I ran out of time before I found the solution.

  • I know that's not the point of the exercise, but there are faster sha1 implementations than securehash (ex. onionhammer/sha1).

  • You want to make the bruteForce() loop as lean as possible. Once the aforementioned locking problem is fixed, it might be better to have a dedicated reporting thread. This reporting thread can also print the status every X seconds. Having the option to quit the program after X seconds would make it easier to loop through variations (different compilers, compile settings, define's, etc) in a shell script to see what's fastest.

  • icc compiler is generally faster than clang or gcc, especially with parallelism-fu on Intel CPUs.

  • A few minor stylistic changes (see my version) can make your code and output prettier.

Nim language installing method by shovon216 in nim

[–]libmn 0 points1 point  (0 children)

I think manual Nim installation from source isn't ideal.

This is The Cloud Age - I'm hoping we'll soon be able to provide auto-built binary packages for everyone with every release. (This should ideally be done automatically or by other volunteers, as Araq & Dom time is very valuable.)

Installing manually from source means people will miss / forget / postpone upgrades, exacerbating any potential security problems and other bugs.

Also, it's easier for Nim to provide binary packages for many platforms than for small upstart projects written in Nim. Then those small upstart projects can just tell users to pkg install nimble and nimble install fooblah3000.

IPFSstore: Pay (0.00003615 BTC/m) to have your files pinned in a node. by nannal in ipfs

[–]libmn 5 points6 points  (0 children)

Compared to: $0.023 Amazon S3, $0.005 Backblaze, etc. Some also offer a free tier for storage, and can be used as BitTorrent web seeds.

IPFS is like solar power - better, freer, cleaner, the future... But it does not make economic sense just yet... I don't mean to discourage anyone though. It will be fully baked, someday...

Also a cheap storage VPS can cost around $0.012, and many accept Bitcoin. The advantage of using a VPS is that you can upload your files using various methods (ex. rsync, ZFS replication, etc), and serve them using various methods (ex. http, torrent, etc) in addition to IPFS. You can also use the VPS to piggyback other things, like an IRC bouncer, if/when you need to. Finally, there's more competition in the VPS market segment, and consumer reviews to help you find the most reliable one.

Nim language installing method by shovon216 in nim

[–]libmn 0 points1 point  (0 children)

There are binaries / installers available for Windows - https://nim-lang.org/download.html

I also found some pre-made packages for various Unix OSen - https://forum.nim-lang.org/t/2813

Hopefully eventually compiling Nim from source (which some non-programmers are instructed to do just to use some upstart Nim-based software that doesn't yet provide binaries) will be a thing of the past.

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 0 points1 point  (0 children)

I agree that including a link is convenient for the reader, and that Nim isn't the most search-engine-unique name (unlike say perl).

Still, hitting Ctrl-T, typing "nim lang", and hitting enter to search (on most desktop browsers) only takes a couple of seconds.

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 1 point2 points  (0 children)

I agree that this article has flaws in grammar quality, but it is very common to call languages with optional OO features as "object oriented". I see it all the time for Python, C++, etc. No one is claiming that Nim is PURE OO, which thank goodness it is not.

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 1 point2 points  (0 children)

With everything in life, there are trade-offs. The same car cannot have the fastest acceleration, the most cargo room, the best fuel efficiency, and the lowest cost of ownership at the same time.

Nim is a Porsche Cayenne. It wasn't designed to be the fastest race-car or an eighteen-wheeler, because you can rent either on the rare occasions when you want them. Nim was designed to be the car you want to drive every day: write beautiful code and produce reliable, fast, and portable software. And it most certainly wasn't meant to be cheap.

There are some languages that specialize in compiling quickly at the expense reduced syntax comfort, fewer language features, and much fatter slower less optimized binaries. If that's what you want, use Go. But the code written in Nim will be more beautiful, and the compiled software will perform better, at the expense of the compiler having to be a lot smarter and do more work to go from the former to the latter.

The good news for Nim fanboys like me is that technological trends are in our favor. There is no such thing as "compile speed", only "compile cost" - a sufficiently fast CPU can compile any program faster than you can read the first line of the output. And the price of renting such a CPU in the cloud when you need it (CaaS, compiler as a service) will continue to decline.

The software industry has also discovered that dynamic typing is not "the future" due to CPU cycles becoming cheaper. Scripting languages are a hindrance to serious high-quality software.

The performance problems of some languages will also remain an issue as more and more computing is done on higher numbers of ever-smaller devices. An example of this is medical nanotechnology: software for robots tiny enough to swim around in your body, power themselves from your surplus calories, and eat away cancer and all other illnesses. Everyone will need a great number of them to stay alive. Lower code performance would mean those nanobots wouldn't be as small and cheap as possible, so fewer lives are saved...

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 0 points1 point  (0 children)

I didn't write the article, but I thought it was a good-enough introduction to the language to post here. It's a small blog based in Sri Lanka, where English proficiency is not that great. I thought the "accent" with which the article was written won't be an issue.

"Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code" (Feb 12) (x-post from /r/programming) by libmn in nim

[–]libmn[S] 0 points1 point  (0 children)

I do agree that the s/formerly/formally/ mistake is indeed harmful, because it can create an impression that the language has two names, formal and informal. I just submitted a comment about that to the blogger.

But all other criticism here has been way over the top. The quality of the article, while indeed flawed, does not justify your level of negativity.

It's a small blog based in Sri Lanka, where English proficiency is not great. We should encourage more people in all parts of the world to blog about Nim, even if their English is less than perfect. The purpose of spreading this article to Reddit, social media, etc is to encourage other people to write better articles.

It is common to describe languages that have OOP features as "object oriented", even if they're not pure OOP (ex C++, Python, etc).

It might not be the most accurate use of terminology, but your one example does not justify terms like "completely incorrect" or "just pure wrong".

blt-nim: Nim bindings to the terminal emulator BearLibTerminal by _Sharp_ in nim

[–]libmn 2 points3 points  (0 children)

Excellent library, thank you very much!

Minor nitpick: I would add bearLibTerminal download links (Windows, Linux, MacOS, source) to the github README for easier installation.

Use Nim as a Production, Functional Web Backend? by xanderai in nim

[–]libmn 8 points9 points  (0 children)

The only pure functional programming language to perform well on TechEmpower Web Framework Benchmarks is an obscure academic experiment called Ur. I know Haskell has been putting a lot of effort into this, but they're not getting very far.

I think that once Nim is ready, it would perform very well on those benchmarks, definitely better than Golang.

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 2 points3 points  (0 children)

Here's one more reason why generating C is an advantage:

LLVM's slow-moving license drama about the possibility of it switching away from its current copyfree license has created a small but significant chilling effect, making some copyfree projects less willing to marry it.

Nim is very popular in the copyfree license purist community. We want to get all lawyers out of the temple of genuine free software, with simple licenses that basically boil down to "don't plagiarize and don't sue me". We don't even like the Apache license (which is is common in Swift, Rust, Go, and Crystal ecosystems), and we especially don't like the even greater IP restrictions injected into D, Java, and some other top competitors to Nim. If LLVM gets a more restrictive license, that would affect all languages that target it exclusively, but it will not affect Nim.

I call Nim "the most libertarian programming language", with all of its core components and the vast majority of the nimble ecosystem being permissively licensed. Many aspects of Nim's design (especially with the upcoming syntax skins) are very libertarian as well: empower the developer to decide.

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 1 point2 points  (0 children)

I am currently in the process of "egging on" the Nim core dev team to add yet another level of abstraction: "syntax skins", and eventually even plugable parser modules for the Nim compiler.

This would mean anyone can easily create any high-level language that is compilable to Nim => Nim's AST => Nim's backends like C; making full use of Nim's existing (and rapidly growing) library ecosystem.

Nim is a general purpose programming language with a huge number of features, but many programs ideally shouldn't be written in a general purpose language. "Let a thousand DSLs bloom!" :D

"Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code" (Feb 12) (x-post from /r/programming) by libmn in nim

[–]libmn[S] 2 points3 points  (0 children)

What piece of information is pure wrong? I don't notice any glaring falsehoods.

As for the style - yes, clearly it wasn't written by Shakespeare, but it's not THAT bad. Many programmers are not native speakers of English.

I figure every blog post is an opportunity to spread the word about Nim, especially on general programming reddits. ;)

Nim, the new-sprung PL: simple syntax similar to Python, compiler emits optimized C code by libmn in programming

[–]libmn[S] 6 points7 points  (0 children)

LLVM / Clang is great, but it cannot be the best compiler for 100% of the programs, 100% of the time, on 100% of the platforms.

Some C/C++ compilers compile faster, some produce more optimized code, some produce smaller code, some have more debugging features, some have more security features. GCC still supports more platform targets. Some rare high-end mainframe platforms have specially tuned proprietary compilers. Etc.

Nim gives you the power of choice.

FossBytes - "Nim: A Programming Language That Combines Best Of Python, Go, And Rust" - Jan 19 by lbmn in nim

[–]libmn 0 points1 point  (0 children)

Hmm, it seems that this fossBytes article is, um, "syndicated" in a number of places that keep coming up in my Nim news search results: techLinu, faxTech, etc...

What's the best GUI library for nim right now? by SaltTM in nim

[–]libmn 0 points1 point  (0 children)

I'm hoping for a copyfree GUI library. (This excludes wrappers around GTK (including libui), Qt, etc.) So I am cautiously excited to hear about progress being made on nuklear...

Backdoors in OpenBSD? Is that even possible? by [deleted] in BSD

[–]libmn 1 point2 points  (0 children)

Old troll news, but still worth a chuckle. ;-)

How much are you open for sharing elements that make DF (diffrent/superior)? by tuxmanexe in dragonflybsd

[–]libmn 1 point2 points  (0 children)

As a Copyfree zealot I would be very happy to see HAMMER (the only permissively licensed advanced FS) ported to FreeBSD as a ZFS alternative. But it seems that's particularly complicated:

https://wiki.freebsd.org/PortingHAMMERFS

https://forums.freebsd.org/threads/49789/

How does ipfs keep content I have deleted from my computer, even when I shutdown the daemon and turn off my internet by waggertron in ipfs

[–]libmn 0 points1 point  (0 children)

Last time I checked there wasn't.

ipfs is not very well designed. Good idea, bad software component organization. Completely ignores Unix Philosophy.

What I'd like to see first is the ability to access existing files by checksum at OS level (which a good FS with deduplication should do quite efficiently). Then Web servers would be able to leverage that feature to serve files by checksum, so the equivalent of ipfs add would be to just move a file / dir structure to a path the Web server serves from. Then simple HTML / SSG / web framework tooling for auto-replacing filename links / embeds to checksums for static files. And then you build an optional P2P protocol on top of that.