Yeah, I think that minikanren is a more useful language for embedding than datalog since it is more expressive than datalog and has a more straight forward execution model. The functional style of minikanren makes it easier to create things like parsers easily.
Interesting! I suppose it depends on the context though, right? For answer-set programming like database queries and stuff, I've seen some impressive datalog work done in the past. I'm not well versed in the extensions, and I actually haven't been able to read this post yet, I've been at work since the wee hours, but I was thinking of the success of Datomic. I believe that's datalog under the hood.
I think of miniKanren as relentlessly general purpose, and not so much suited to a demanding niche like databases.
I'm very interested in both. I remember watching a talk called The Promise Of Relational Programming a while back and thinking "this HAS to be the future of programming."
I hope he will cover some other exotic ideas like program inversion which I find really interesting, in the same area there is also specialization, though that is maybe a bit too similar to term rewriting.
I'm searching for an intro to miniKanren that's also an intro to logic programming. Ive never used datalog, clojure, or others. The main miniKanren website assumes preexisting Scheme / logic programming knowledge
I don't think you necessarily need much scheme knowledge to start learning minikanren. You might in order to read the implementation. There are versions out there in most languages
Seconding The Reasoned Schemer for learning miniKanren. It's a complete tutorial compared to most you'll find online that either quickly go from "here's how to start" to "now here's us generating lisp functions from specifications" or never move past the "here's how to start" portion.
And like all the Schemer books, it's a pretty pleasant and easy read. You can go through a chapter sans computer and then revisit it with the computer (I read it while traveling so half the time I was reading, my computer wasn't readily available).
Yeah, the articles title is: “Exotic Programming Ideas: Part 4 (Datalog)”. All the previous times this series has made the front page, it has had the part in the title.
Bitcoin as cult, financial fraud, criminal scam, and religion. I like this guy.
What I didn’t see was any tirade against people? - you don’t tirade against people being taken advantage of by scammers - unless those people are the cult leaders?
> “New religious movements like the cryptocult provide a psychological and philosophical framework that provides sense-making for a world that seems hostile and out of their control. The crypto movement fits all the textbook criteria, it provides a mechanism for determining an in-crowd and an out-crowd (no-coiners vs bitcoiners). It gives a framework for assessing the virtue of other followers based on their faith (HODLing) in the cause. It offers simple answers to complex issues in economics and monetary policy. It gives a linguistic framework of “thought-terminating clichés” and acronyms to quell dissent. It gives a mechanism of social control in which one can acquire influence and status in exchange proselytizing and onboarding more followers to buy tokens. It makes miraculous promises of wealth, not derived from effort but from faith. It presents an eschatological narrative of retributive justice about the end-times of the global financial system, in which the true believers will be reborn with a new life in an anarcho-capitalist utopia. And most importantly, it gives people a sense of a community, hope and belonging which is a powerful force that can be exploited by charismatic leaders.”
I'm not even particularly keen on bitcoin, but that reads like a childish rant against a miscarachterisation of a group he doesn't like. I'd expect this kind of level of discourse in a 4chan thread.
It reads like a concise summary of red flags around cryptocurrency, on many dimensions. It doesn't mention 'tendies' at all, call anyone names, it doesn't reek of someone bitter because they lost all their money or missed out on a get rich quick opportunity, or have that cynical nihilistic "I'm smarter than everyone" geek attitude. And it isn't framed at a rant against a /group/ as much as a warning about being a victim to the (most vocal) self-appointed leaders of the group.
Yes, they're not citations to academic studies, but you don't see an in-group/out-group dynamic of "people who believe in the glorious future of Canadian dollars" vs "people who don't", or the desperation for the world to realise the truth of Mexican Pesos that only the faithful currently know, or etc.
We're getting a bit side tracked but here goes... You can at least critique the ones where he describes what cryptocurrencies do and that cryptocurrencies would be some kind of cult. Paragraph 3 and the last one specifically. Those are opinions, but they are presented as facts. It's certainly true that some cryptocurrencies are marketed as investments but it doesn't describe the market as a whole, there are so many things happening in that space that I would describe it as a mischaracterization. The believer point you bring up is really no different from people believing in a certain stock, they're heavily invested and try to rationalize their choices. This behaviour looks like some form of cognitive dissonance. You see this quite often online in Facebook stock groups and similar groups, typical retail investor behaviour unfortunately.
> Bitcoin as cult, financial fraud, criminal scam, and religion.
So here you are on HN, where most people love complaining about crypto since 2009 -- but they still have a dayjob they sure love to bitch about (even in FANGs!), while those of us who worked on crypto without any specific feelings are early retirees.
> I like this guy.
Me too, but I try to leave aside opinions and focus on interesting content.
If they didn't diversify away from 100% Enron, they are to blame, because retirement is when you reduce risks, the stocks vs bond allocation and all that, you know?
> while those of us who worked on crypto without any specific feelings are early retirees.
Proudly grouping yourself with Peter Popoff and his "debt cancelling miracle spring water", with the justification "I made money so it's not a scam". With your friends Uri Geller, Charles Ponzi, Elizabeth Holmes, Kenneth Copeland, and crew.
> Me too, but I try to leave aside opinions
Sorry, was your first paragraph not gloating about your superiority, and looking down on and mocking people who still have to work for a living for not having your dispassionate visionary insight? Because it sure felt like a big dollop of opinion.
It's funny how people selling addiction (facebook), moral outrage (twitter), online tracking and ads (google) all think they are better than us who worked in crypto.
Personally, I did not run a company. I can just say I got people what they asked for, without false pretense, while being looked down upon by the likes of you.
> looking down on and mocking people who still have to work for a living
Guess what, actions come with consequences. You created your HN account in 2008. You most certainly knew about crypto in 2009. But you decided not to act - again, and again, and again for 12 years. While we both had to work for a living, I was selling my services for various things like sysadmin of mining rigs, and learning finance on the side to get into the industry.
Maybe you have a part of the blame?
> for not having your dispassionate visionary insight
It's never too late to get in the industry if you really want to, we're still in the early days - like the net in 1995.
However, you may have to change your bad attitude. You do not need passion, but you must at least drop the hatred if you want to work in crypto.
We could do the "who looks down on who" thing back and forth, let's pretend we've done that and are both annoyed. I did know about BitCoin in the early years, and did not jump on it, and still have no interest in jumping on it. From what I can see it's an inconvenient, unregulated way to pay for things which incentivises you to not pay for things because your coin will be worth more later if you hold it. Or it's a slow inefficient database which would be better in almost every way if it was a centralised database, along with some investor storytime about smart contracts; nothing I'm interested in. Get-rich-quick I am interested in, but that's because I'm a gullible fool, not because it's a sensible idea.
Last year the BBC ran a news article claiming:
> "Currently, the tool estimates that Bitcoin is using around seven gigawatts of electricity, equal to 0.21% of the world's supply. That is as much power as would be generated by seven Dungeness nuclear power plants at once. Over the course of a year, this equates to roughly the same power consumption as Switzerland."
Dungeness nuclear power plant cost £685 million by the time it was finished and opened in 1983, that's roughly £1.6Bn today. BitCoin (mining) collectively uses as much power as Switzerland, as much as £15Bn of UK nuclear power stations.
Do you honestly think it's added that much value to the world?
If so, what, where?
> "It's never too late to get in the industry if you really want to, we're still in the early days - like the net in 1995."
What's the "AOL of BitCoin" - the "way-in" for a hundred million Americans? What's the "ICQ of BitCoin", the thing that let me talk to my friends without having to call them one by one? What are the "webrings" of crypto, the Drewamweavers or FrontPages, getting the interest of normal people to build or create things? What's the email of crypto, delayed messaging which stores and buffers while offline? What's the equivalent of web developers selling small businesses on the benefits of owning a website to reach a national or international audience with much less marketing and advertising cost? What's the equivalent of Stripe or PayPal or Visa or Mastercard? What's the Amazon of crypto that started in 1996 or so? What's the equivalent of universities having large internet connections and server farms and setting up Grid computing for the research benefits? Where are the things you couldn't do at all before now?
One difference of the net in 1995 is that I wanted more access to the net in 1995 and couldn't have it for age reasons, tech reasons, money reasons. Where's the pent-up demand of people who want crypto and can't have it? Everyone who wants it can have it immediately, and could have had it years ago.
What about it is anything like the net of 1995? (Except your intent to make me dream big about the future growth and associated riches).
If you're a company and you accept bitcoin, it makes life harder for you, for approximately no customers, and the payment you get might lose half its value by next month or be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn? Smart Contracts better be really good to make up the rest.
The easy counter is "no wireless, less space than a Nomad, lame" and I must be blind to its benefits. The easy counter-counter is Sturgeons Law, most things look like crud because most things are crud.
What else did you know about in 2008, not get involved in, which turned out to be crud?
> What's the "AOL of BitCoin" - the "way-in" for a hundred million Americans? What's the "ICQ of BitCoin",
The AOL is coinbase (a YC company!!), for sending money to people that may be disliked, saving, etc.
There's no ICQ because it's not instant messaging - just like there was no fax features for AOL in 1995.
> One difference of the net in 1995 is that I wanted more access to the net in 1995 and couldn't have it for age reasons
Now you're really starting to see it: even if you're under 18, you can create and deploy smart contract, and use your brain to learn more and become big in finance. Or just have fun -- it doesn't matter! No barrier of entry!
I wish I had had that opportunity as a teen!! The net was nice, but it was hard to get real money. I didn't disclose my age so I could get my first pay cheques.
> What about it is anything like the net of 1995? (Except your intent to make me dream big about the future growth and associated riches).
Now you're seing it wrong again. It's not about riches.
It's a brand new domain, full of opportunities to "do things" for a lot of people - especially those not in North America / Europe / the few lucky Asian countries - which is about, the majority of humanity!
I'm sorry to say, you won't get rich. I see only about 50x to 100x left for the near future (the next 10 years), with the possibility of huge swings. It's not much by historic standard -- you and me missed the most of it, that was before 2010.
Still, there's some left, and you should totally put 500 to 1k in coinbase then move it to your offline wallet, but no more - nothing that you can't afford to lose due to unforeseeable regulatory hurdles, hard drive failures etc. It may get you a very nice car, but nothing more unfortunately. Too little too late.
Actually, this is close to the predominant advice that as on lesswrong in the early 2010s, by "moldbug": use about $10 to buy 10 bitcoins, as the odds of success are greater than 1/10000.
Those who followed the advice got >100k - but only 3% did. It's such an obvious failure of LW they did a few postmortems, to try to understand how they could get it so wrong: have the right people tell them exactly what to do, properly see what needed to be done was justified, correctly understand and forecast, yet fail to take advantage of the unique opportunity with all the stars aligned.
> If you're a company and you accept bitcoin, it makes life harder for you, for approximately no customers, and the payment you get might lose half its value by next month or be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn?
Let's rephrase that for 1995:
> If you're a company and you open an online store, it makes life harder for you, for approximately no customers, and the payment you get might be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn?
I only change bitcoin to "an online store", and removed the part about variance as it's different and doesn't need to apply - because you can edge for that buying options, or let your intermediary handle it for you. For example, you can decide to automatically convert to a stablecoin or fiat at the very minute the payment is received!! (or keep a 10% exposure, or whatever)
I respect your stubbornness to pick something and run with it in the face of people saying it won't work, to get great leverage you need to be outside the mainstream view in some way. But, I am not outside the mainstream; I named several things about the internet in 1995 that would draw people in, and asked what would be the comparable ideas for BitCoin. You very bluntly replied that you can't chat to people with bitcoin because it's not a chat protocol. Either deliberately, or accidentally, missing the point. You named savings, and sending people money. Two things I can already do, and am not excited about. And that's ... it.
You tell me "it's not about riches" then say I should invest for a speculative 50x-100x return.
I don't think it's dangerous, I think it's dumb. I think gambling on it paid off, and gamblers think that's proof they were smart. I think your "selling shovels to gold miners'" approach is sensible and a good way to make a more stable but smaller return from it.
> "Let's rephrase that for 1995: If you're a company and you open an online store, it makes life harder for you [...]"
But no, in 1995 you don't open an online store because there isn't a big popular trusted way to pay for things over the internet. You pay someone to develop a website, put your domain on your business cards, have a promotional brochure-style website that acts like your entry in the Yellow Pages. Cheap marketing. Gives people your details, address, phone number, ways to contact you offline. It gets you email, a way for new customers to contact you - and maybe for you to contact your suppliers. It's comparatively low cost, low risk, the tech details are probably entirely handled by a web developer company so you barely have to care at all, but if you do care you can gradually add completely new things to your company like an email newsletter, an inventory of parts too detailed to bother publishing on paper, referral links to companies you have deals with, making more potential customers able to find you.
You apparently can't do anything /new/ if you accept payments by BitCoin or lean on a blockchain. In twelve years, nobody has come up with a killer app, or even a mildly compelling app. Most likely you let your payment provider deal with it, but in so doing it doesn't add any new abilities.
Look at what happened to Git since it appeared in 2005, iPhone in 2007, Apple app store in ~2009, and compare their use to Bitcoin use (not hype, use) in the same time frame.
> "the payment you get might be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next."
But no, because it's US dollars, traded by credit card companies. It's a big, established, regulated industry and credit companies insure you against loss of your funds, because they have an image as a trustworthy financial company to uphold, and all the credit cards are (supposed to be) issued to real people with provable IDs, typically in the same company. Again the risk is low, and often taken by a payment provider. Here, in 1995 or 1999, opening an online store opens up a large new market.
For today, BitCoin? If you have it handled by a payment provider you don't even have to hear or know about it. It opens nothing new, there is approximately nobody who has BitCoin who doesn't also have your local currency and who you want to deal with[1]. If you don't, and you have to deal with it, it opens you to a market of people who are interested in being anonymous, deregulated, anarchic, no companies with insurance or images to uphold, uncertain legal/tax/regulatory status for you to declare your above-board use of it, and developing ecosystem with tons of competing coins and behaviours you have to pay attention to.
> "It's such an obvious failure of LW they did a few...
> You tell me "it's not about riches" then say I should invest for a speculative 50x-100x return. I don't think it's dangerous, I think it's dumb. I think gambling on it paid off, and gamblers think that's proof they were smart
Gambling can be smart, when the expected value is greater than the cost of the ticket - or when ticket price itself is insignificant, like the 10 coins as suggested in 2010.
That's what I meant with my suggestion to waste $500 - you won't miss them much, and even if it won't make you rich, it will have clear upsides for you, like a new car. And I'm sure it's a safe bet for someone reading HN.
But apparently, you are extremely risk averse. I think that's another defining features of a lot of the geeks here.
This is the only way I can frame that, as I just don't understand a refusal to take such a simple action.
If it's not too much to ask, can you better explain me your reasons? Is $500 a large amount of money for your budget? Or is it more about the risks of regrets of taking an action that's greater that then risk of of regret of not-taking an action?
> I never got the "hacker" spirit of "eat ramen, build a startup, sell it for billions".
Exactly what I thought! The hacker spirit is a taste for risk and fun, as understanding things allows you gain more control of your destiny ; it's a bit like "work hard play hard", along with a hefty disdain of the mainstream.
> In twelve years, nobody has come up with a killer app, or even a mildly compelling app
I see fully self managed payment and saving as game changing, you don't. We have very different takes, maybe due to our different preferences: personally, I don't want to ever depend on a payment provider that I don't fully control. "be your own bank" is the killer app for me.
> For someone gloating about being superior and retired, you still end up in the same HN thread as me, with a massive chip on your shoulder and an inferiority complex.
Superior? Gloating? No, I only find it sad.
Because as you correctly noticed, I feel I can't relate to the other hackers anymore. I still help a few projects, and share interesting nuggets, but I feel like I'm in another world now, due to a profound difference in values and understanding. (I seriously wonder about the $500 - which is why I asked you)
After the 50x happens in about 30x years, you may not remember this conversation but I will remember how yet again I was unable to make someone take a clear beneficial action.
It's like a reverse Chicken Little syndrome forcing me to watch as other hackers pass opportunities.
> "If it's not too much to ask, can you better explain me your reasons? Is $500 a large amount of money for your budget?"
BitCoin has no associations in my mind except distasteful scams, hustle and the seedier side of life. The feeling is that you're trying to convince me to buy into Amway or an MLM scheme or a holiday time share. It wouldn't just be "wasting $500" it would be "being scammed". Wasting $500 would be mildly annoying, being scammed while watching it happen and thinking "this is a scam" and still going along with it would be infuriating.
I could spare it. If I lost it, the loss would not inconvenience me. But you are acting as if BitCoin is doing something new here - I can already hold some high-risk/high-return investments, and they are some that I think have a chance of increasing in value for reasons that I understand at least at a high level. For one example, Segway had a very understandable business model: invent and patent a new vehicle, make and sell it. The risk was that nobody would buy, and they didn't. By comparison, I don't understand at any level why BitCoin's price is what it is, and have no confidence it won't collapse suddenly and completely instead of going up. I don't know what it would take to make the price go 50x higher to get any feeling if that's likely or unlikely. I don't know why it would happen to Bitcoin specifically instead of Litecoin, Namecoin, Peercoin, Dogecoin, xRipple, Nxt, Monero, Stellar, Ethereum, etc. Buying a cheap speculative thing and losing it is one thing, throwing away money on an idea I think is supid and overpriced and then losing it, is another.
> "After the 50x happens in about 30x years"
Did you notice that several stocks went up >50x this year alone? Stocks related to speculative COVID-19 vaccines, for example Novacyt went up from £0.14p in January to peak at £11.94 in October - https://finance.yahoo.com/quote/NCYT.L?p=NCYT.L&.tsrc=fin-sr... - that's 85x in 12 months, still ~60x after the pullback from the peak. As a speculative high-risk gamble, 50x in 30 years is not all that compelling.
Are you beating yourself up for not investing in NCYT? Somewhere, on some market around the world, some stock is jumping large multiples every year, or quarter, or month - and missing out doesn't affect you at all. Instead of chasing those, you're chasing something with much less substance, and longer term outlook, why? Is it because you have no information better than anyone else to pick a 'winning stock'? Why do you think you have with BitCoin? Especially if you can't even convince your own kind - techno-geeks?
Worse than all this, if I make a bet with an established regulated gambling company, or visit a casino, or buy penny stocks from a regulated share trading company, or buy some Tesla CFDs, I have some idea what I'm getting and some trust that they will be basically honest - they might fiddle the prices a little, but if I sell up and request money, I'll get some money, and if they go under, the UK government's financial regulation may cover some of my losses (not gambling or investment losses, but company mismanagement or fraud).
With BitCoin, the most famous exchange was Magic The Gathering Online Exchange (MtGOX) which got hacked, had its bitcoins stolen, then CEO(!) Mark Karpeles joined in the fun and stole a million dollars of bitcoin for himself, then another three million, then maybe they got hacked again, then they went bankrupt. Other exchanges have had lots of people able to buy bitcoin, then when they try to sell the exchange gives them the runaround and won't pay any money:
Googling "bitcoin won't let me withdraw", I see "Kraken won't let me withdraw...", "Bittrex won't...
> being scammed while watching it happen and thinking "this is a scam" and still going along with it would be infuriating.
Thanks, I understand much better: it's a fear of the risk of partaking into something you may disapprove if it doesn't become what I think it will become.
What BTC spot price would it take for this fear to go away? Will you always have this fear? Even in say 20 years from now?
> By comparison, I don't understand at any level why BitCoin's price is what it is, and have no confidence it won't collapse suddenly and completely instead of going up.
I understand even better- the fear comes from a lack of deeper understanding. Most people on HN know little about economic and finance: I laughed a lot when reading the reactions to the recent cash flow article!!
Even then, you are right, Bitcoin is not a very clear cut case - it has risks, like everything.
> Buying a cheap speculative thing and losing it is one thing, throwing away money on an idea I think is stupid and overpriced and then losing it, is another.
Except the "stupid" part, I get it know. I would suggest you study economics, if you are interested. It's a great way to have strong bases, on which finance will be a great addition later!
It won't make crypto seem perfect - quite the opposite. After you learn macro, you will see the danger of a pure crypto world where no currency would be a competitor. But you will also learn the difference between normative and descriptive economics, and you will see it can (and likely will) happen, due to game theory.
> Are you beating yourself up for not investing in NCYT?
No, I have more than enough. I don't bother with investment anymore.
> Somewhere, on some market around the world, some stock is jumping large multiples every year, or quarter, or month - and missing out doesn't affect you at all
It's a fun thing for some people, but not for me. Now I'm more interested in pure technology - not in playing the same game again and again, only in some slightly different markets.
> Other exchanges have had lots of people able to buy bitcoin, then when they try to sell the exchange gives them the runaround and won't pay any money:
Yes, lots of shady people. Regardless of what you do, please, NEVER leave any money, crypto or otherwise, on an exchange. Keep everything at home.
> The financial amounts that would make a big difference are: a free house (pay off mortgage / buy a property outright), or instant retirement and freedom from work forever
Sorry, can't do. I don't like giving bad advice. And it would be irresponsible for me to suggest you any course of action without knowing how much you can tolerate losing.
> a few more that could soak up the $500 if that's what I wanted to do with it, that I have more confidence in, and less disgust for, than BTC.
It's interesting how you have "disgust", just like you said "stupid" before.
It seems to me it's not just risk and lack of knowledge, but something else too.
So I still don't understand you :)
> precious metals, real estate, that can't be inflated away as easily by central policies
Actually, one executive order to ban gold (which you can't hide as well as crypto), a few change of laws to cull NIMBY, and they can (and will) be inflated away whenever the government wants.
> What does that gain you? And what about the obvious objection that you don't fully control BitCoin?
Network effect make it stable and large. And the control I have on the very small part I still have is enough to protect me from most risks of inflation.
For the rest, real estate (etc) ensure I won't ever be middle class let alone poor, barring WW3-like scenarios (even then, I may have diversified enough to take it)
> The hacker spirit I respect is Fabrice Bellard writing a JavaScript virtual machine emulator
It's best to seperate the human from their technical work.
I do technical work and unfortunately can't contain my Politics on social media (due to their psychology tricks). I know both Republicans and Democrats will dismiss my math because I don't belong to their side.
I Disagree. But in particular I a think it is important for one to care about the ethics of what one works on and whom one works with. This is an industry where people are generally in a position to be choosy about what they do and it is a myth that it’s generally possible to separate something technical or theoretical from how it is used.
Even if one releases software with a license like the GPL that explicitly doesn’t constrain what the software is used for, I think one should still care about how it is used and the ethical implications of it.
> But in science fields, authors names don't really matter. The same outcome will exist regardless who is studying it.
I'm curious, how much experience do you have in scientific academia? Names matter a great deal in my experience. A lot of results are simply ignored if they're not backed by a big name, and many experiments will simply not be done unless there's a big name to attract funding in the first place.
I may have written ‘Programming’ but so was mostly thinking about mathematics. It is wishful thinking to ignore the ethical implications of one’s work in academia
The article was edited and I hadn't realised. The original version was [0]. And, working in Haskell, I genuinely don't believe there was a better team around!
Yes you're right. Had he not mentioned names I wouldn't have cared as much. Having worked with everyone he mentioned, and knowing how hard they worked & how great they were at what they did, it felt a little too personal attack. Not to mention the author tried to collaborate with said groups on his own decentralised treasury project a while back.
I don't really care about the details: I do not trust anyone who works with cryptocurrency. I don't care how close you were with them, I simply do not trust them and I will not work with them. I will support the denouncement their work. Cryptocurrency is a disease, and I hold those who proliferate it personally responsible.
I do, however, credit the author for denouncing it even after being involved with something similar in the past. That's called personal growth. I won't hold a grudge against your colleagues if they choose a similar path for themselves.
You can’t mention logic programming without talking about the one most folks have interacted with: make.
Facts are files and rules are rules. Make will explore deep chains of rules to find a path to building the targets.
I once (ab)used make so that the mere inclusion of a non-existent header would autogenerate it from a series of different templates combining human-readable structures, marshaling it into binary, then converting it into something a C compiler can read. Importantly, the process was recursive, as the source for a template might have to go through transformation itself.
The key is I never taught make about the whole process. Each individual step in the process is a rule that transforms from one file extension to another. Make automatically searches for a path through the rules, even 9 or 10 deep.
The classic Kernighan and Pike book, The Unix Programming Environment[1], has a good example of advanced make usage (cascading / recursive makes,
multiple (and implied) rules, sources and targets, etc.), along the lines of your example, in the chapter at the end of the book on hoc[2], the higher order calculator. They build multiple, incrementally more powerful versions of hoc in that chapter, as a case study to tie together many key topics in the book.
Make uses dependency graph to track the make rules. Topological Sort can turn however deep dependent rule network into a simple linear ordered list of steps to perform. The matching files are then fed through this list one step at a time and run the matching rules against the files. Repeat the process for newly generated files.
Related: make obviously makes a big dependency graph to keep track of this stuff. Is there a good way to make it show this? How do you debug these kinds of constructions?
Based on my experience of creating MakeMe (https://GitHub.com/OakNinja/MakeMeFish) I would say the only way of creating that graph would be to write a make clone with this feature. While make is an awesome tool, it really lacks good insights.
But considering this seems to explain a lot. Like SQL, make is an integral part of the programming world ... that most people want as little as possible to do with and which some people violently hate and a few people enjoy playing with.
And I think this shows language that just tell the computer "what you want" and not how to get that something tend to not scale with the length of the command or the amount of data processed. SQL was originally created to be something like a human-friendly, natural language interface, if you can believe it. And it's sort of friendly if you only use one or two command-words but after that it gets extremely frustrating.
It might be just me, but having reached over a half of what the series promised, I don't find any of presented ideas "exotic". (I do find posts by their own are good and enjoyable, just that I don't agree to the series title.) They are of course less popular than, well, C, but---reusing the analogy made in the very first post---they are much more like Finnish or Korean more than Navajo or Klingon.
Hmm, thinking about that I don't really have many. I thought esoteric programming languages are a good source of them, but truly exotic ones turn out to be surpringly rare.
Cellular automaton is vastly popular as a concrete mechanism for rule-based programming (PuzzleScript being a good example), reversible computing is no longer interesting because of quantum computers and perhaps homomorphic encryption, probablistic programming is a large enough niche that it was never exotic, circuitry-based declarative programming is not even a niche (cf. HDLs), self-modification as a single control mechanism has been tried multiple times throughout the history (often combined with string rewriting paradigm, which itself has been even more popular than self-modification), ... The list goes on and on.
Probably the most exotic concept that I have ever seen is a multi-dimensional control flow (most famously Befunge [1], with some other lesser-known precedents), but there has been several programming games making use of that. Gravity-based programming [2] and the Infinity Machine [3] might be interesting if you allow hypothetical ideas.
While BLC is neat it is hardly new; it can be seen as a lambda calculus version of Iota and Jot [1]. I think the main selling point of BLC (if it were ever made to sell itself...) is a more considerably concise representation, though unlike Jot but more like Iota, not every bit sequence is a valid BLC program so there might still be a room for improvement. Anyway I consider it as exotic as combinatory logic, that is, not much.
Esoteric languages are create only for the gimmick of being esoteric, and do not represent an actual effort to solve a problem in a novel way. They are really not very interesting as anything other than toys.
Some people write write-only code in perl or in K.
Others using category theory and Monads.
Not sure if abstract colors are any worse.
In practice I doubt there is a significant difference. It's all incomprehensible for the normal coder.
At least in theory you could imagine using new parts of your brain with colorful programming. Kind of analogous to Richard Feynman picturing physical concepts using textures.
There is color forth as an practical attempt to program with the help of colors.
Biut Perl, K, Haskell and its friends, even colorForth, they are trying to solve real problems. They might be using odd ideas to do it, or they might look inaccessible, but that is not the point, they are honestly trying to be useful.
Esoteric languages like Piet, they aren't solving a problem. They are just being obscure for the sake of being obscure. This isn't interesting, and it doesn't really teach you anything of value.
I feel like its fair to call logic programming, including prolog and datalog, exotic. They've fallen out of the mainstream (especially compared to lisp which was a big competitor to it at the time) and are quite different to program in than procedural languages.
My mental model of prolog is to imagine you are constructing a graph, where some of the nodes have side effects, and then tell the compiler to do a depth-first-search, executing any side effects it comes across.
I'm now even less sure that there are truly exotic ideas out there, but my original point was that "exotic" means something foreign, not coming from the mainstream at any point. And the complicated history of programming means virtually anything has been tried at some point.
Those clojure implementations are not datalog. They are an attempt to get datalog-like functionality in a lisp syntax. At best they translate a subset of datalog concepts into a language that is more general purpose in nature.
Therefore, you can use every ISO conforming Prolog system to read and reason about any Datalog database. If your Prolog system supports for example SLG resolution, you will also retain the termination and completeness properties of Datalog when you interpret queries over the database.
Datomic is definitely not Datalog syntax, otherwise it could – and likely would – have been called Datalog.
Thanks for sharing, this was an extremely interesting read. I am somewhat confused regarding casing. In particular, the equivalence example is all lowercase, while other examples seem to indicate that variables should be uppercase. Is souffle case-sensitive, or not?
I'm not sure I would deem Datalog as 'exotic but to each his own. The real question I have his lessons from the use or attempted to use of Data log in Business, Technology or Academia. Does anyone know of any in-depth articles, papers, books or discussions.
The immutable database Datomic (from Rich Hickey, inventor of Clojure) is all based on datalog, and is fairly popular in the nichey world of Clojure development; there are several other similar datalog-based systems outside of Clojure as well.
I've always been mentally tickled by prologue type systems. I suspect but cannot prove that they would be very useful in conjunction with constrained optimization engines.
Specifically: many optimization engines give very arcane feedback about infeasibilities and singularities which cause optimizations to fail and users to be frustrated. I feel like plugging a datalog system into the optimization engine would give end users a really powerful way to ask questions about the sources of infeasibilities and singularities. If changes to the optimization problem were tracked I would expect these systems to be a very intuitive way to say things like "tell me all the rules which participate in an infeasibility that have been changed recently."
The inimitable and ever-present Markus Triska has a fantastic site [1] and he's making some really interesting videos [2] all about Prolog.
I got nerd-sniped the other day by the Interval Tree Clocks post ( https://news.ycombinator.com/item?id=25243376 ) and wrote a crude implementation of ITCs in Prolog[3]. The code is gratifyingly short and closely follows the structure of the notation in the paper.
(As an aside, it's weird and a little absurd that that notation, which Guy Steele Jr. calls "Computer Science Metanotation"[4], has no official name nor standard. He mentions in that talk that he took a stab at mechanizing it by processing the LaTeX in Prolog! That seems like something worth pursuing.)
Gerrit used prolog to determine when to merge patches if i recall. I had to learn prolog in university once upon a time, but gerrit is the only time i have ever encountered prolog in the wild, and it only uses it i one small spot.
I think its more just an accident of history - lisp became popular, prolog faded. Sometimes some technologies just happen to fade out due to chance.
I have heard, that people who have never programmed before often have an easier time learning prolog than people who have, so I think there's an element of forgetting what you already know. When I had to learn it for school, there was this book of small puzzles (Sort of like the little lisper but for prolog) that was really helpful, but I can't remember the name of it.
87 comments
[ 2.2 ms ] story [ 137 ms ] threadI hope he's gonna cover miniKanren!
This title kinda stinks since all the posts in the series have made it to front page.
This is #4, and it's about datalog. Perhaps mods could adjust title.
I think of miniKanren as relentlessly general purpose, and not so much suited to a demanding niche like databases.
I'm very interested in both. I remember watching a talk called The Promise Of Relational Programming a while back and thinking "this HAS to be the future of programming."
Any suggestion of where to start?
I'd suggest just poking around in these first:
http://io.livecode.ch/ online interactive minikanren examples
http://tca.github.io/veneer/examples/editor.html more minikanren examples.
You already mentioned http://minikanren.org/ You may also want to check out the book The Reasoned Schemer.
I did a slightly faulty implementation ( I didn't get the search ordering right) in Julia here https://www.philipzucker.com/yet-another-microkanren-in-juli...
Microkanren implementation tutorial https://www.youtube.com/watch?v=0FwIwewHC3o . Also checkout the Kanren online meetup recordings https://www.youtube.com/user/WilliamEByrd/playlists
And like all the Schemer books, it's a pretty pleasant and easy read. You can go through a chapter sans computer and then revisit it with the computer (I read it while traveling so half the time I was reading, my computer wasn't readily available).
Ed Kmett did a live coding series on his attempt port kanren to Haskell. Hope guanxi makes some progress soon.
Will try look over it and get through this new series but still sour over that blog post...
What I didn’t see was any tirade against people? - you don’t tirade against people being taken advantage of by scammers - unless those people are the cult leaders?
> “New religious movements like the cryptocult provide a psychological and philosophical framework that provides sense-making for a world that seems hostile and out of their control. The crypto movement fits all the textbook criteria, it provides a mechanism for determining an in-crowd and an out-crowd (no-coiners vs bitcoiners). It gives a framework for assessing the virtue of other followers based on their faith (HODLing) in the cause. It offers simple answers to complex issues in economics and monetary policy. It gives a linguistic framework of “thought-terminating clichés” and acronyms to quell dissent. It gives a mechanism of social control in which one can acquire influence and status in exchange proselytizing and onboarding more followers to buy tokens. It makes miraculous promises of wealth, not derived from effort but from faith. It presents an eschatological narrative of retributive justice about the end-times of the global financial system, in which the true believers will be reborn with a new life in an anarcho-capitalist utopia. And most importantly, it gives people a sense of a community, hope and belonging which is a powerful force that can be exploited by charismatic leaders.”
Yes, they're not citations to academic studies, but you don't see an in-group/out-group dynamic of "people who believe in the glorious future of Canadian dollars" vs "people who don't", or the desperation for the world to realise the truth of Mexican Pesos that only the faithful currently know, or etc.
So here you are on HN, where most people love complaining about crypto since 2009 -- but they still have a dayjob they sure love to bitch about (even in FANGs!), while those of us who worked on crypto without any specific feelings are early retirees.
> I like this guy.
Me too, but I try to leave aside opinions and focus on interesting content.
I'm sure all the Enron investors said something similar before they went bust
Proudly grouping yourself with Peter Popoff and his "debt cancelling miracle spring water", with the justification "I made money so it's not a scam". With your friends Uri Geller, Charles Ponzi, Elizabeth Holmes, Kenneth Copeland, and crew.
> Me too, but I try to leave aside opinions
Sorry, was your first paragraph not gloating about your superiority, and looking down on and mocking people who still have to work for a living for not having your dispassionate visionary insight? Because it sure felt like a big dollop of opinion.
Personally, I did not run a company. I can just say I got people what they asked for, without false pretense, while being looked down upon by the likes of you.
> looking down on and mocking people who still have to work for a living
Guess what, actions come with consequences. You created your HN account in 2008. You most certainly knew about crypto in 2009. But you decided not to act - again, and again, and again for 12 years. While we both had to work for a living, I was selling my services for various things like sysadmin of mining rigs, and learning finance on the side to get into the industry.
Maybe you have a part of the blame?
> for not having your dispassionate visionary insight
It's never too late to get in the industry if you really want to, we're still in the early days - like the net in 1995.
However, you may have to change your bad attitude. You do not need passion, but you must at least drop the hatred if you want to work in crypto.
Last year the BBC ran a news article claiming:
> "Currently, the tool estimates that Bitcoin is using around seven gigawatts of electricity, equal to 0.21% of the world's supply. That is as much power as would be generated by seven Dungeness nuclear power plants at once. Over the course of a year, this equates to roughly the same power consumption as Switzerland."
Dungeness nuclear power plant cost £685 million by the time it was finished and opened in 1983, that's roughly £1.6Bn today. BitCoin (mining) collectively uses as much power as Switzerland, as much as £15Bn of UK nuclear power stations.
Do you honestly think it's added that much value to the world?
If so, what, where?
> "It's never too late to get in the industry if you really want to, we're still in the early days - like the net in 1995."
What's the "AOL of BitCoin" - the "way-in" for a hundred million Americans? What's the "ICQ of BitCoin", the thing that let me talk to my friends without having to call them one by one? What are the "webrings" of crypto, the Drewamweavers or FrontPages, getting the interest of normal people to build or create things? What's the email of crypto, delayed messaging which stores and buffers while offline? What's the equivalent of web developers selling small businesses on the benefits of owning a website to reach a national or international audience with much less marketing and advertising cost? What's the equivalent of Stripe or PayPal or Visa or Mastercard? What's the Amazon of crypto that started in 1996 or so? What's the equivalent of universities having large internet connections and server farms and setting up Grid computing for the research benefits? Where are the things you couldn't do at all before now?
One difference of the net in 1995 is that I wanted more access to the net in 1995 and couldn't have it for age reasons, tech reasons, money reasons. Where's the pent-up demand of people who want crypto and can't have it? Everyone who wants it can have it immediately, and could have had it years ago.
What about it is anything like the net of 1995? (Except your intent to make me dream big about the future growth and associated riches).
If you're a company and you accept bitcoin, it makes life harder for you, for approximately no customers, and the payment you get might lose half its value by next month or be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn? Smart Contracts better be really good to make up the rest.
The easy counter is "no wireless, less space than a Nomad, lame" and I must be blind to its benefits. The easy counter-counter is Sturgeons Law, most things look like crud because most things are crud.
What else did you know about in 2008, not get involved in, which turned out to be crud?
The AOL is coinbase (a YC company!!), for sending money to people that may be disliked, saving, etc.
There's no ICQ because it's not instant messaging - just like there was no fax features for AOL in 1995.
> One difference of the net in 1995 is that I wanted more access to the net in 1995 and couldn't have it for age reasons
Now you're really starting to see it: even if you're under 18, you can create and deploy smart contract, and use your brain to learn more and become big in finance. Or just have fun -- it doesn't matter! No barrier of entry!
I wish I had had that opportunity as a teen!! The net was nice, but it was hard to get real money. I didn't disclose my age so I could get my first pay cheques.
> What about it is anything like the net of 1995? (Except your intent to make me dream big about the future growth and associated riches).
Now you're seing it wrong again. It's not about riches.
It's a brand new domain, full of opportunities to "do things" for a lot of people - especially those not in North America / Europe / the few lucky Asian countries - which is about, the majority of humanity!
I'm sorry to say, you won't get rich. I see only about 50x to 100x left for the near future (the next 10 years), with the possibility of huge swings. It's not much by historic standard -- you and me missed the most of it, that was before 2010.
Still, there's some left, and you should totally put 500 to 1k in coinbase then move it to your offline wallet, but no more - nothing that you can't afford to lose due to unforeseeable regulatory hurdles, hard drive failures etc. It may get you a very nice car, but nothing more unfortunately. Too little too late.
Actually, this is close to the predominant advice that as on lesswrong in the early 2010s, by "moldbug": use about $10 to buy 10 bitcoins, as the odds of success are greater than 1/10000.
Those who followed the advice got >100k - but only 3% did. It's such an obvious failure of LW they did a few postmortems, to try to understand how they could get it so wrong: have the right people tell them exactly what to do, properly see what needed to be done was justified, correctly understand and forecast, yet fail to take advantage of the unique opportunity with all the stars aligned.
It's a very nice read: https://www.lesswrong.com/posts/MajyZJrsf8fAywWgY/a-lesswron...
> If you're a company and you accept bitcoin, it makes life harder for you, for approximately no customers, and the payment you get might lose half its value by next month or be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn?
Let's rephrase that for 1995:
> If you're a company and you open an online store, it makes life harder for you, for approximately no customers, and the payment you get might be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next. If you're a normal person, it's a less convenient way to pay for things. Why should you give a damn?
I only change bitcoin to "an online store", and removed the part about variance as it's different and doesn't need to apply - because you can edge for that buying options, or let your intermediary handle it for you. For example, you can decide to automatically convert to a stablecoin or fiat at the very minute the payment is received!! (or keep a 10% exposure, or whatever)
Now do you se...
You tell me "it's not about riches" then say I should invest for a speculative 50x-100x return.
I don't think it's dangerous, I think it's dumb. I think gambling on it paid off, and gamblers think that's proof they were smart. I think your "selling shovels to gold miners'" approach is sensible and a good way to make a more stable but smaller return from it.
> "Let's rephrase that for 1995: If you're a company and you open an online store, it makes life harder for you [...]"
But no, in 1995 you don't open an online store because there isn't a big popular trusted way to pay for things over the internet. You pay someone to develop a website, put your domain on your business cards, have a promotional brochure-style website that acts like your entry in the Yellow Pages. Cheap marketing. Gives people your details, address, phone number, ways to contact you offline. It gets you email, a way for new customers to contact you - and maybe for you to contact your suppliers. It's comparatively low cost, low risk, the tech details are probably entirely handled by a web developer company so you barely have to care at all, but if you do care you can gradually add completely new things to your company like an email newsletter, an inventory of parts too detailed to bother publishing on paper, referral links to companies you have deals with, making more potential customers able to find you.
You apparently can't do anything /new/ if you accept payments by BitCoin or lean on a blockchain. In twelve years, nobody has come up with a killer app, or even a mildly compelling app. Most likely you let your payment provider deal with it, but in so doing it doesn't add any new abilities.
Look at what happened to Git since it appeared in 2005, iPhone in 2007, Apple app store in ~2009, and compare their use to Bitcoin use (not hype, use) in the same time frame.
> "the payment you get might be stolen in ways you don't understand with no oversight or regulation and law enforcement with little experience of what to do next."
But no, because it's US dollars, traded by credit card companies. It's a big, established, regulated industry and credit companies insure you against loss of your funds, because they have an image as a trustworthy financial company to uphold, and all the credit cards are (supposed to be) issued to real people with provable IDs, typically in the same company. Again the risk is low, and often taken by a payment provider. Here, in 1995 or 1999, opening an online store opens up a large new market.
For today, BitCoin? If you have it handled by a payment provider you don't even have to hear or know about it. It opens nothing new, there is approximately nobody who has BitCoin who doesn't also have your local currency and who you want to deal with[1]. If you don't, and you have to deal with it, it opens you to a market of people who are interested in being anonymous, deregulated, anarchic, no companies with insurance or images to uphold, uncertain legal/tax/regulatory status for you to declare your above-board use of it, and developing ecosystem with tons of competing coins and behaviours you have to pay attention to.
> "It's such an obvious failure of LW they did a few...
Gambling can be smart, when the expected value is greater than the cost of the ticket - or when ticket price itself is insignificant, like the 10 coins as suggested in 2010.
That's what I meant with my suggestion to waste $500 - you won't miss them much, and even if it won't make you rich, it will have clear upsides for you, like a new car. And I'm sure it's a safe bet for someone reading HN.
But apparently, you are extremely risk averse. I think that's another defining features of a lot of the geeks here.
This is the only way I can frame that, as I just don't understand a refusal to take such a simple action.
If it's not too much to ask, can you better explain me your reasons? Is $500 a large amount of money for your budget? Or is it more about the risks of regrets of taking an action that's greater that then risk of of regret of not-taking an action?
> I never got the "hacker" spirit of "eat ramen, build a startup, sell it for billions".
Exactly what I thought! The hacker spirit is a taste for risk and fun, as understanding things allows you gain more control of your destiny ; it's a bit like "work hard play hard", along with a hefty disdain of the mainstream.
> In twelve years, nobody has come up with a killer app, or even a mildly compelling app
I see fully self managed payment and saving as game changing, you don't. We have very different takes, maybe due to our different preferences: personally, I don't want to ever depend on a payment provider that I don't fully control. "be your own bank" is the killer app for me.
> For someone gloating about being superior and retired, you still end up in the same HN thread as me, with a massive chip on your shoulder and an inferiority complex.
Superior? Gloating? No, I only find it sad.
Because as you correctly noticed, I feel I can't relate to the other hackers anymore. I still help a few projects, and share interesting nuggets, but I feel like I'm in another world now, due to a profound difference in values and understanding. (I seriously wonder about the $500 - which is why I asked you)
After the 50x happens in about 30x years, you may not remember this conversation but I will remember how yet again I was unable to make someone take a clear beneficial action.
It's like a reverse Chicken Little syndrome forcing me to watch as other hackers pass opportunities.
BitCoin has no associations in my mind except distasteful scams, hustle and the seedier side of life. The feeling is that you're trying to convince me to buy into Amway or an MLM scheme or a holiday time share. It wouldn't just be "wasting $500" it would be "being scammed". Wasting $500 would be mildly annoying, being scammed while watching it happen and thinking "this is a scam" and still going along with it would be infuriating.
I could spare it. If I lost it, the loss would not inconvenience me. But you are acting as if BitCoin is doing something new here - I can already hold some high-risk/high-return investments, and they are some that I think have a chance of increasing in value for reasons that I understand at least at a high level. For one example, Segway had a very understandable business model: invent and patent a new vehicle, make and sell it. The risk was that nobody would buy, and they didn't. By comparison, I don't understand at any level why BitCoin's price is what it is, and have no confidence it won't collapse suddenly and completely instead of going up. I don't know what it would take to make the price go 50x higher to get any feeling if that's likely or unlikely. I don't know why it would happen to Bitcoin specifically instead of Litecoin, Namecoin, Peercoin, Dogecoin, xRipple, Nxt, Monero, Stellar, Ethereum, etc. Buying a cheap speculative thing and losing it is one thing, throwing away money on an idea I think is supid and overpriced and then losing it, is another.
> "After the 50x happens in about 30x years"
Did you notice that several stocks went up >50x this year alone? Stocks related to speculative COVID-19 vaccines, for example Novacyt went up from £0.14p in January to peak at £11.94 in October - https://finance.yahoo.com/quote/NCYT.L?p=NCYT.L&.tsrc=fin-sr... - that's 85x in 12 months, still ~60x after the pullback from the peak. As a speculative high-risk gamble, 50x in 30 years is not all that compelling.
Are you beating yourself up for not investing in NCYT? Somewhere, on some market around the world, some stock is jumping large multiples every year, or quarter, or month - and missing out doesn't affect you at all. Instead of chasing those, you're chasing something with much less substance, and longer term outlook, why? Is it because you have no information better than anyone else to pick a 'winning stock'? Why do you think you have with BitCoin? Especially if you can't even convince your own kind - techno-geeks?
Worse than all this, if I make a bet with an established regulated gambling company, or visit a casino, or buy penny stocks from a regulated share trading company, or buy some Tesla CFDs, I have some idea what I'm getting and some trust that they will be basically honest - they might fiddle the prices a little, but if I sell up and request money, I'll get some money, and if they go under, the UK government's financial regulation may cover some of my losses (not gambling or investment losses, but company mismanagement or fraud).
With BitCoin, the most famous exchange was Magic The Gathering Online Exchange (MtGOX) which got hacked, had its bitcoins stolen, then CEO(!) Mark Karpeles joined in the fun and stole a million dollars of bitcoin for himself, then another three million, then maybe they got hacked again, then they went bankrupt. Other exchanges have had lots of people able to buy bitcoin, then when they try to sell the exchange gives them the runaround and won't pay any money:
Googling "bitcoin won't let me withdraw", I see "Kraken won't let me withdraw...", "Bittrex won't...
Thanks, I understand much better: it's a fear of the risk of partaking into something you may disapprove if it doesn't become what I think it will become.
What BTC spot price would it take for this fear to go away? Will you always have this fear? Even in say 20 years from now?
> By comparison, I don't understand at any level why BitCoin's price is what it is, and have no confidence it won't collapse suddenly and completely instead of going up.
I understand even better- the fear comes from a lack of deeper understanding. Most people on HN know little about economic and finance: I laughed a lot when reading the reactions to the recent cash flow article!!
Even then, you are right, Bitcoin is not a very clear cut case - it has risks, like everything.
> Buying a cheap speculative thing and losing it is one thing, throwing away money on an idea I think is stupid and overpriced and then losing it, is another.
Except the "stupid" part, I get it know. I would suggest you study economics, if you are interested. It's a great way to have strong bases, on which finance will be a great addition later!
It won't make crypto seem perfect - quite the opposite. After you learn macro, you will see the danger of a pure crypto world where no currency would be a competitor. But you will also learn the difference between normative and descriptive economics, and you will see it can (and likely will) happen, due to game theory.
> Are you beating yourself up for not investing in NCYT?
No, I have more than enough. I don't bother with investment anymore.
> Somewhere, on some market around the world, some stock is jumping large multiples every year, or quarter, or month - and missing out doesn't affect you at all
It's a fun thing for some people, but not for me. Now I'm more interested in pure technology - not in playing the same game again and again, only in some slightly different markets.
> Other exchanges have had lots of people able to buy bitcoin, then when they try to sell the exchange gives them the runaround and won't pay any money:
Yes, lots of shady people. Regardless of what you do, please, NEVER leave any money, crypto or otherwise, on an exchange. Keep everything at home.
> The financial amounts that would make a big difference are: a free house (pay off mortgage / buy a property outright), or instant retirement and freedom from work forever
Sorry, can't do. I don't like giving bad advice. And it would be irresponsible for me to suggest you any course of action without knowing how much you can tolerate losing.
> a few more that could soak up the $500 if that's what I wanted to do with it, that I have more confidence in, and less disgust for, than BTC.
It's interesting how you have "disgust", just like you said "stupid" before.
It seems to me it's not just risk and lack of knowledge, but something else too.
So I still don't understand you :)
> precious metals, real estate, that can't be inflated away as easily by central policies
Actually, one executive order to ban gold (which you can't hide as well as crypto), a few change of laws to cull NIMBY, and they can (and will) be inflated away whenever the government wants.
> What does that gain you? And what about the obvious objection that you don't fully control BitCoin?
Network effect make it stable and large. And the control I have on the very small part I still have is enough to protect me from most risks of inflation.
For the rest, real estate (etc) ensure I won't ever be middle class let alone poor, barring WW3-like scenarios (even then, I may have diversified enough to take it)
> The hacker spirit I respect is Fabrice Bellard writing a JavaScript virtual machine emulator
We have similar tastes then!
> The "hacker...
I do technical work and unfortunately can't contain my Politics on social media (due to their psychology tricks). I know both Republicans and Democrats will dismiss my math because I don't belong to their side.
Even if one releases software with a license like the GPL that explicitly doesn’t constrain what the software is used for, I think one should still care about how it is used and the ethical implications of it.
But in science fields, authors names don't really matter. The same outcome will exist regardless who is studying it.
I'm curious, how much experience do you have in scientific academia? Names matter a great deal in my experience. A lot of results are simply ignored if they're not backed by a big name, and many experiments will simply not be done unless there's a big name to attract funding in the first place.
[0] https://web.archive.org/web/20200730131647/https://www.steph...
I do, however, credit the author for denouncing it even after being involved with something similar in the past. That's called personal growth. I won't hold a grudge against your colleagues if they choose a similar path for themselves.
Facts are files and rules are rules. Make will explore deep chains of rules to find a path to building the targets.
I once (ab)used make so that the mere inclusion of a non-existent header would autogenerate it from a series of different templates combining human-readable structures, marshaling it into binary, then converting it into something a C compiler can read. Importantly, the process was recursive, as the source for a template might have to go through transformation itself.
The key is I never taught make about the whole process. Each individual step in the process is a rule that transforms from one file extension to another. Make automatically searches for a path through the rules, even 9 or 10 deep.
That's a nice programming paradigm, unfortunately a bit obscure now.
https://bentnib.org/posts/2015-04-17-propositions-as-filenam...
http://conal.net/blog/posts/the-c-language-is-purely-functio...
[1] https://en.m.wikipedia.org/wiki/The_Unix_Programming_Environ...
[2] https://en.m.wikipedia.org/wiki/Hoc_(programming_language)
If you use GNU make, check out remake http://bashdb.sourceforge.net/remake/ which is GNU make patched with debugging support
But considering this seems to explain a lot. Like SQL, make is an integral part of the programming world ... that most people want as little as possible to do with and which some people violently hate and a few people enjoy playing with.
And I think this shows language that just tell the computer "what you want" and not how to get that something tend to not scale with the length of the command or the amount of data processed. SQL was originally created to be something like a human-friendly, natural language interface, if you can believe it. And it's sort of friendly if you only use one or two command-words but after that it gets extremely frustrating.
So the connection is interesting.
Cellular automaton is vastly popular as a concrete mechanism for rule-based programming (PuzzleScript being a good example), reversible computing is no longer interesting because of quantum computers and perhaps homomorphic encryption, probablistic programming is a large enough niche that it was never exotic, circuitry-based declarative programming is not even a niche (cf. HDLs), self-modification as a single control mechanism has been tried multiple times throughout the history (often combined with string rewriting paradigm, which itself has been even more popular than self-modification), ... The list goes on and on.
Probably the most exotic concept that I have ever seen is a multi-dimensional control flow (most famously Befunge [1], with some other lesser-known precedents), but there has been several programming games making use of that. Gravity-based programming [2] and the Infinity Machine [3] might be interesting if you allow hypothetical ideas.
[1] https://esolangs.org/wiki/Befunge
[2] https://esolangs.org/wiki/Gravity
[3] https://www.chiark.greenend.org.uk/~sgtatham/infinity.html
I like John Tromp's Binary Lambda Calculus and Binary Combinatory Logic[2]
[1] https://esolangs.org/wiki/Language_list [2] https://tromp.github.io/cl/cl.html
[1] https://en.wikipedia.org/wiki/Iota_and_Jot
https://esolangs.org/wiki/Piet
Programming as an abstract painting
Some people write write-only code in perl or in K.
Others using category theory and Monads.
Not sure if abstract colors are any worse.
In practice I doubt there is a significant difference. It's all incomprehensible for the normal coder.
At least in theory you could imagine using new parts of your brain with colorful programming. Kind of analogous to Richard Feynman picturing physical concepts using textures.
There is color forth as an practical attempt to program with the help of colors.
Esoteric languages like Piet, they aren't solving a problem. They are just being obscure for the sake of being obscure. This isn't interesting, and it doesn't really teach you anything of value.
I'd also look at Unison, for a more recent exotic programming language concept.
And what GraalVM is doing with the polyglot layer is quite interesting.
Finally my recent favourite is PPL, probabilistic programming languages.
And for more I'd recommend this podcast https://futureofcoding.org/episodes/
https://en.m.wikipedia.org/wiki/Icon_(programming_language)
Also maybe Self and Joy (IIRC).
My mental model of prolog is to imagine you are constructing a graph, where some of the nodes have side effects, and then tell the compiler to do a depth-first-search, executing any side effects it comes across.
In practice it is used in the Clojure community as a query language for both databases and for in-memory data structures.
Datomic, datascript, datahike are examples.
Also it is used in research, including parsing (programming languages). Someone more knowledgeable might add to this.
https://en.wikipedia.org/wiki/Datalog
Therefore, you can use every ISO conforming Prolog system to read and reason about any Datalog database. If your Prolog system supports for example SLG resolution, you will also retain the termination and completeness properties of Datalog when you interpret queries over the database.
Datomic is definitely not Datalog syntax, otherwise it could – and likely would – have been called Datalog.
Various marketing case study blurbs are here if that's your thing: https://www.datomic.com/nubanks-story.html
Specifically: many optimization engines give very arcane feedback about infeasibilities and singularities which cause optimizations to fail and users to be frustrated. I feel like plugging a datalog system into the optimization engine would give end users a really powerful way to ask questions about the sources of infeasibilities and singularities. If changes to the optimization problem were tracked I would expect these systems to be a very intuitive way to say things like "tell me all the rules which participate in an infeasibility that have been changed recently."
http://dev.stephendiehl.com/hask/index.html
I got nerd-sniped the other day by the Interval Tree Clocks post ( https://news.ycombinator.com/item?id=25243376 ) and wrote a crude implementation of ITCs in Prolog[3]. The code is gratifyingly short and closely follows the structure of the notation in the paper.
(As an aside, it's weird and a little absurd that that notation, which Guy Steele Jr. calls "Computer Science Metanotation"[4], has no official name nor standard. He mentions in that talk that he took a stab at mechanizing it by processing the LaTeX in Prolog! That seems like something worth pursuing.)
[1] "The Power of Prolog" https://www.metalevel.at/prolog
[2] https://www.youtube.com/channel/UCFFeNyzCEQDS4KCecugmotg/vid...
[3] https://git.sr.ht/~sforman/Prolog-Junkyard/tree/master/misce...
[4] https://news.ycombinator.com/item?id=15473199
- "Modes" are dataflow directions (use them for polymorphic dispatch!)
- "Purity" is an effect system
- "Unique" is linear types
- has backends for C, C#, Java, Erlang
I have heard, that people who have never programmed before often have an easier time learning prolog than people who have, so I think there's an element of forgetting what you already know. When I had to learn it for school, there was this book of small puzzles (Sort of like the little lisper but for prolog) that was really helpful, but I can't remember the name of it.