Ideas have a 2 week shelf life  - <AUTHOR> http://stevecorona.com/ideas-have-a-2-week-shelf-life?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+stevecorona+%28Steve+Corona%29&utm_content=Google+Feedfetcher <comment><USER2> In psychology (or behavioral economics) you might hear people talking about "hyperbolic discounting", which is basically the fancy version of "something now is better than something later".

This can also have the effect of making your new idea seem better than doing the same thing next year.

This article is hyperbolic discounting in action, and it is irrational. He has actively changed his method so he gets to feel the rush more often, which also inherently maximizes his impulsiveness.

However, I don't think an article called "Be as impulsive as possible" would have the same ring to it.

<http://en.wikipedia.org/wiki/Hyperbolic_discounting>

<comment><USER3> I think you're failing to take into account the author's thesis that an idea not put into action within a reasonable time frame "rots". From my reading of the article, this happens either because i) so much navel-gazing, planning and refining goes into the idea over time that it becomes intimidating to actually start, or ii) the idea is simply on-hold perpetually, and is never actually realized.

In other words, I don't think the author is saying "something now is better than something later". I think he's saying "something now is better than nothing later", or at least, "the certainty of something now is better than the slim possibility of something later".

</comment></comment><comment><USER4> I'm the at the other end of the spectrum. It's too easy to get super-excited about the newest idea. I force myself to sit on new ideas for some period of time, rolling them around my brain. If it's still at the forefront 3 weeks, months our even years later than it's probably got some legs. Plus, I've refined it and answered some key questions by the time I'm ready to execute.

whatever floats your boat...

<comment><USER5> Waiting an idea out does two important things. 1\. It ensures you're objective and clearheaded. There's no reason to value the thinking process of an euphorically happy man over a suicidally depressed one. Both are irrational. 2\. Humans are powered by emotions: love, hope. If an idea is strong enough to emotionally persist for 3 months, then it's a decent bet that the emotions will power the next 3 months also. 3\. After 3 months, it's possible to do a double-take, a gut-check. It's very difficult to do a proper gut-check in the heat of a moment. 4\. Most importantly, if an idea has persisted for 3 months, it is likely founded on some kernel of truth.

After 3 months, I generally take apart an idea over the course of days. I'll destroy it from every angle, and I'll show from as-simple-as-possible logic. Every single sentence has to be sound logic, and every tiny nook and crany needs to be explored.

The first three months are for my emotions to settle and solidify. The next 1-2 weeks are for me to have a logical, impartial, and objective argument with the idea. A portion of it is to assume the role of a 12 year old internet troll and absolutely assault the idea from every angle. There cannot remain even a single facet I am unsure of, or uncertain of, or cannot backup with facts or logic stemming from facts.

If it stands after this, then it becomes second nature to begin. There isn't any giddy enthusiasm, but there also isn't any hopeless depression when encountering an unknown. The fight has been fought, all that remains is execution. Starting is weary, and execution is tame. There is no gut-sinking defeated feeling once the euphoria wears off: there's just a logical argument - written down - for what needs to be done, and why.

This is how I've made some of the most difficult decisions in my life, and it has so far worked. It protracts the decision making process into months, and that's inefficient and sad. But it is guaranteed to work for me. This is how I have lost a very significant amount of weight, and how I have stopped smoking.

A part of it is, for me at least, to acknowledge that I dislike change intensly. I don't think I'm unique in that regard among humans, but it's something I feel passionate about changing. If baby steps is what's required, then baby steps it'll be.

My next goal is to begin running. I'm in the first month of the fermentation stage: the passion to start running 3 times a week has been building within me over the last 3-6 months, but I've gotten serious about it last month. Now the 3 month waiting period begins. During those 3 months, I'll begin kicking things around my head. Just this morning, it occurred to me that I'll need to keep a precise schedule, and if I lax from it, then I'll miss a day, and this makes me very worried. I want to be disciplined about it. I'm not sure how I'll solve that - perhaps run in the afternoon? It's something I'm going to work out by the end of January.

<comment><USER6> I was there 6 months back where you are today when it comes to running. It takes a lot of mental strength to nurture good habits but when you do so it becomes a way of living, your second nature. For first few months I had to consistently pushy myself but now it is a part of routine just like taking bath.

</comment></comment></comment><comment><USER7> I have manifesto fatigue.

<comment><USER8> There's a lot of fluff on HN lately, which is why I'm slowly transitioning back to Slashdot (where I was before for about 10 years).

While HN has its highs and lows, Slashdot is consistently better.

<comment><USER8> BTW, I wasn't referring to or including this article when I said fluff. This article wasn't bad at all, but it does remind me of the 'get 6-pack abs' story I see on the cover of every men's magazine, Every. Single. Month.

There are worse offenders, and that's why Slashdot has been looking so good lately.

<comment><USER7> For me it's more that HN-oriented bloggers seem to think every two-sentence thought they have is so profound and success-guaranteeing it should be broadcast to the world.

I think of it as business-oriented trolling.

</comment></comment></comment></comment><comment><USER9> Related: Zefrank on unexecuted ideas as 'brain crack':

<http://www.zefrank.com/theshow/archives/2006/07/071106.html>

</comment><comment><USER10> for actually starting on a project, being broke and needing money is perhaps the strongest motivator out there. the part about outlining for two minutes and acting immediately is great.

</comment><comment><USER11> I'm not convinced. 100% original research.

<comment><USER12> That's entirely the point. Nobody said that this is the one true way to do things, the post isn't arguing that. If there is one thing I have realized from reading this forum it's that there is no one way to do things. This presents a method for getting those side projects of life started; the audience: people who need a push in a productive direction. I hate the ridiculous stance this community has on anecdotal posts. Obviously it's "original research" it's an example from his life, that statement doesn't apply here.

</comment></comment><comment><USER13> Node.js guy?</comment>


StripeSpotter, open source barcode scanner for Zebra's and other animals - <AUTHOR> http://code.google.com/p/stripespotter/

<comment><USER2> For a minute I thought this was an April Fools joke, but it looks like an awesome idea. Wonder in what other ways this would be do-able. Antlers I imagine would need much higher resolution images from a fixed vantage point to detect similarity...

</comment><comment><AUTHOR> Story on it; [http://www.newscientist.com/blogs/onepercent/2011/04/barcode...](http://www.newscientist.com/blogs/onepercent/2011/04/barcode- scanner-for-zebras.html)

</comment><comment><USER3> Nice - could also have a Tartan scanner (to identify Scottish clans) or a tree trunk scanner to age a tree, or a wood grain scanner to identify different types of wood...

</comment><comment><USER4> Idea: create a startup that sews unique barcode tshirts so that this technique can be used to identify anything.

<comment><USER5> You may be vaguely interested in this: <http://en.wikipedia.org/wiki/Jennifer_Government></comment></comment>


Why the Z-80's data pins are scrambled - <AUTHOR> http://www.righto.com/2014/09/why-z-80s-data-pins-are-scrambled.html <comment><USER2> _The motivation behind splitting the data bus is to allow the chip to perform activities in parallel. For instance an instruction can be read from the data pins into the instruction logic at the same time that data is being copied between the ALU and registers._

Essentially pipelining, several years before the RISC movement popularised it? Could the Z80 have been one of the first pipelined single-chip CPUs?

That was a very interesting article. I've tried staring at the Visual6502 chip images for a long time, and although I understand the principles behind how diffusion/polysilicon/metal layers are put together to form transistors, for some reason I feel absolutely lost trying to follow the connections and find the borders between the regions especially when one layer is hidden beneath another.

Even looking at the NOR gate with its layout side-by-side I can't see much beyond the metal layer, despite it being partially transparent. I have no problems with transistor-level schematics, however. Is there some sort of trick to being able to easily read and follow the circuitry in die images and layout-level diagrams? It's like some people can read these and visualise/draw the schematic immediately.

<comment><USER3> The 6502 also has a similar 1-stage pipeline, and the concept was old already at that point, though not used much commercially outside of Cray's designs for CDC.

</comment></comment><comment><USER4> There was a JPL probe years ago (can't remember which, and can't seem to find a reference) that had a radiation hardened memory IC with error correcting codes and a system to detect and correct the bit flips that were expected due to cosmic rays.

After launch, the number of unrecoverable errors (due to multiple bits flipped within the same codeword) was higher than expected. It turned out that someone had swapped some combination of address or data lines, which ended up changing the physical grouping of bits within the codewords. Some of the bits within a logical codeword were so close together that a single event was able flip both of them, causing the error correction to fail.

</comment><comment><USER5> Back in the days of hand made printed circuits, I randomly assigned both data and address pins on a microprocessor circuit, and got everything onto a single side with just one or two jumpers.

I felt so clever. Then I remembered that the program in the ROM assumed a particular bit numbering, literally while my board was bubbling away in the ferric chloride. Oops.

Rather than re-design the board, I thought about writing a program to rearrange my binaries, or make a socket adapter for the EEPROM programmer. The socket adapter won out.

<comment><USER6> That's kind of how the TMS1000 microcontroller (used in the Speak n Spell) works. Instead of incrementing the program counter on each instruction (like every normal processor), they saved a few gates by using a linear feedback shift register. The result is the program counter goes through a pseudo-random but predictable sequence. So they just program the code into the ROM in the same sequence and everything works just fine. (Some day I'll write a blog post about this, since it's interesting to look at the silicon that does this.)

<comment><USER7> This is a very weird and specific question I know, but I figured I'd ask anyway because you seem to have experience with this chip.

In 'Halt and Catch Fire,'[0] one of the characters loads his children's names onto a Speak n Spell's memory. He's portrayed as a very talented engineer, and a lot of the show seems to be pretty true to the tech.

My question is, would this be possible for someone with a lot of patience, experience, and a home workshop at that point, or is it an apocryphal story?

[0] A last TV season about an early PC startup in the 80s

<comment><USER6> I'd say its possible but unlikely that someone reprogrammed their Speak n Spell. The first tricky thing is the TMS5100 voice synthesis chip uses a complex LPC-10 encoding to encode the sound with a very low bit rate (1100 bits/sec). Basically it's modeling the filter characteristics of the vocal tract. So the first problem is you have to convert your audio signal into this representation, which is going to be really, really hard unless you have access to the TI system that does this conversion.

The second problem is the speech data is stored in a TMS6100 ROM which is kind of a strange chip: the 14-bit address is loaded 4 bits at a time, and then the ROM steps sequentially through memory from there. The point is that you can't reprogram this chip (since it's a ROM), and emulating it with a standard EPROM would be a big pain.

I should point out that I don't have firsthand experience with these chips (apart from using a Speak n Spell years ago). But I happen to have been studying them in detail a couple weeks ago for random reasons.

For more information on this chipset, the datasheets are at [http://www.datasheet-pdf.com/datasheet- html/T/M/S/TMS5100_Te...](http://www.datasheet-pdf.com/datasheet- html/T/M/S/TMS5100_TexasInstruments.pdf.html) and [http://www.ti99.com/exelvision/website/telechargement/tms610...](http://www.ti99.com/exelvision/website/telechargement/tms6100-80-data- manual.pdf)

I just did a search and found someone who hacked new words into a Speak n Spell a couple years ago. But he needed to use a CPLD (like a FPGA) to simulate the ROM, and a Windows LPC encoding program, so this wouldn't have been possible in the 80s. [http://furrtek.free.fr/index.php?a=speakandspell&ss=1&i=2](http://furrtek.free.fr/index.php?a=speakandspell&ss=1&i=2)

<comment><USER8> Looked it up and that show is set in 1983 so it does seem rather implausible but not impossible of course. :) Here's a good run through using the Windows LPC encoding program. [http://www.youtube.com/watch?gl=GB&v=wVDE-6TtmFQ](http://www.youtube.com/watch?gl=GB&v=wVDE-6TtmFQ)

</comment></comment></comment></comment></comment><comment><USER9> > I have been reverse-engineering the Z-80 processor using images and data > from the Visual 6502 team.

Many moons ago, I heard a seventh-hand rumor that the guy doing the layout of the Z-80 chip had a nervous breakdown, because of the difficulty of the work.

I have no idea if there was any truth whatsoever to that, but I'm glad to find it's not a Langford Blit thing which maddens those who see it ;-)

<comment><USER6> The Computer History Museum's oral history of the Z-80 has some interesting stories about the layout (but doesn't mention any nervous breakdown). The Z-80 project hired some layout draftsmen, but they were slow and the chip was running behind schedule. So CEO Federico Faggin starts helping with the layout and ends up doing 3/4 of the chip layout himself after 3 1/2 months of 80-hour weeks. "You know, a CEO doing layout draftsman job was not something that would be normal, but that's what I had to do, and I did it." By comparison, the simpler 8080 took six months of layout.

[http://archive.computerhistory.org/resources/text/Oral_Histo...](http://archive.computerhistory.org/resources/text/Oral_History/Zilog_Z80/102658073.05.01.pdf)

</comment></comment><comment><USER10> So, I'm thinking

I think to connect a memory chip you just don't care and you can swap them as you want (as long as you connect the 8 data pins to 8 data pins in the memory)

For IO you care, of course, or you "just" shuffle all data that you want to write (which is a sure way of making someone go crazy)

<comment><USER5> For old fashioned RAM and ROM chips, you'd be OK, and you're probably generally OK with data pins.

Address pins are another matter. The Z80 had a built in static RAM refresh circuit, and there is some schtick about which addresses are refreshed as a group (rows or columns, I forget which). So, rearranging the address bus might result in some nasty surprises. And it might get even more interesting with more modern memory devices, which are way over my head.

On a whim, I got the Howard Sams book on the Z80 while I was in high school, around 1981, and I devoured it.

<comment><USER11> Modern DDR2 SDRAM busses are a bit more involved. They use the address lines as a command word for putting the chips in the correct "link trainging" mode at startup, selecting burst access lengths, enabling self-refresh mode, setting on-die termination values, &cetera so they may not be swapped. Each "byte lane" of 8 data lines is allowed to have a different signal path length difference between clock and data (that is measured during training for compensation during operation) and signals may be swapped arbitrarily within the byte lanes.

Furthermore, the high-performance DDR3+ controllers typically hash the data word with the address so that when a repetitive data stream is transmitted it doesn't generate more EMI. (Some controllers also hash with a random seed gaining resilience against chilling the DIMMs of a running machine and reading them out on another machine in search of sensitive data.)

I find it really cool that any time you change the DIMMs in your computer, it essentially has to measure the length of the wires to the ICs on it. (I've found it less cool to have to manipulate timing values to compensate for deviation from PCB design rules, but thankful that it's possible. The fun of board bring-up.) If your BIOS has a "fast boot" option, mostly that means it remembers the wire lengths from last time so it doesn't have to do the measurement again every boot.

<comment><USER12> In the "good old days" it was certainly possible to do board design using 2x or 4x sized Bishop Graphics tape for lines, vias, etc. You applied them to transparent mylar sheets corresponding to board layers.

But now, sheesh! You need to carefully constrain the PCB CAD program so that all the lines match to within 0.1" or less. And, as you mention, that's just the tip of the design iceberg.

It's no longer possible to layout computers at low cost in a garage. Oh, well. Now hipsters sit around in open offices in SOHO and create silly apps.

<comment><USER13> [http://electronics.stackexchange.com/questions/13372/how- to-...](http://electronics.stackexchange.com/questions/13372/how-to-build-a- custom-laptop-computer-with-original-chassis-keyboard-etc/13374)

Notice the reason why! In fact, I think the idea of a startup producing laptops targeted at developers has been mentioned before here on HN.

<comment><USER14> [http://www.bunniestudios.com/blog/?tag=novena](http://www.bunniestudios.com/blog/?tag=novena)

<comment><USER13> Not the kind of laptop the link I posted is talking about, which is x86-based. And I found the HN comment where the idea was mentioned BTW: [https://news.ycombinator.com/item?id=7079053](https://news.ycombinator.com/item?id=7079053)

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Amazing analysis. Another reminder we're all standing on the shoulders of giants every time we whip out our phones carrying billions upon billion of gates...

<comment><USER16> It's giants all the way down.

</comment></comment><comment><USER17> While layouting an full-custom SPI bus for an IC I had to do the same thing. It simply made sense to sacrifice programming model in that case to layout simplicity.</comment>


A not-so-brief chat with Randall Stephenson of AT&T - <AUTHOR> http://www.fakesteve.net/2009/12/a-not-so-brief-chat-with-randall-stephenson-of-att.html

<comment><USER2> Amen.

The one thing I'll add is that AT&T is now really so only in name. SBC bought the remains of AT&T -- largely for the name, ran most speculation at the time -- a few years ago. And a bigger/worse set of _beep_ than SBC management you'll be hard pressed to find (IMHO).</comment>


"JSONx is an IBM standard format to represent JSON as XML" - <AUTHOR> https://twitter.com/DanHarper7/status/514822464673951744 <comment><USER2> This comes up every so often on Hacker News. The truth is that this isn't a bad joke by IBM. Rather, it was a stopgap measure that was created at a time when DataPower had native support for XML but not for JSON. A later release of DataPower added native JSON support and removed the need to use JSONx.

Disclosure: I work for IBM and I asked a member of the DataPower team about JSONx the last time that it came up on Hacker News.

<comment><USER3> I still don't get why they couldn't just reuse existing semantically equivalent XML serialisation formats e.g. as far as I can tell, with the <nil/> extension XML-RPC's serialisation format is a superset of JSON. ASN.1/XER too.

<comment><USER4> jsonx comes with a schema, so you can validate it and mix it with other xml if you namespace it. I actually see nothing wrong with jsonx if you're moving json data in and out of a system that natively uses XML. Some people need that stuff. Ten years ago I was working on a system that required me to format data as an APL data file because that's what format the the system expected data in.

<comment><USER3> > jsonx comes with a schema, so you can validate it and mix it with other xml > if you namespace it

And you can't do that with pre-existing _XML-based_ formats… why?

</comment></comment></comment></comment><comment><USER5> Its just a way to connect new stuff that outputs JSON to legacy software that expects XML input. Yes, this is what enterprise customers pay companies like IBM to do.

<comment><USER6> Enterprise software is an adventure, you can easily end up in a parallel dimension of technical debt inception.

<comment><USER7> You can easily witness organizations that have crossed over the technical debt event horizon, from which they have no hope of reaching escape velocity.

</comment></comment></comment><comment><USER8> It seems pretty ridiculous, but think about it for a moment. There are myriad ways of serializing XML into JSON and viva-versa. Having a published agreed upon standard could help for interoperability if you have some application that needs to interface with an application that uses the other format.

</comment><comment><USER9> Don't forget: Apple also replaced their lovely JSON-like "plist" format with an XML encoding of the same when they released OS X.

And then it turned out that XML was expensive and inefficient to read, so they replaced it with even uglier binary goo.

</comment><comment><USER10> ... also this would allow for people who already invested in xpath/xquery/xslt to use those languages to process json data.

</comment><comment><USER11> I want to know the use case that required this

<comment><USER12> It's in the comments below "JSONx is a workaround in older DB2 versions to process JSON through the XML system."

<comment><USER13> At least that is a reasonable, sane explanation. Otherwise, the idea of encoding data in JSON and then transforming that to XML seems a little ... convoluted.

<comment><USER12> It's particularly relevant on IBM as they have hardware-accelerated XML processing [http://www-03.ibm.com/systems/z/hardware/features/zaap/](http://www-03.ibm.com/systems/z/hardware/features/zaap/)

<comment><USER14> From what I read about zAAP and zIIP, they're not actually hardware accelerators like a DSP or a purpose built processor, rather they're a way to reduce the cost of running specific workloads on a mainframe, and IBM markets them that way[1].

The zIIPs themselves seem to be standard z processing units that have been loaded with microcode that prevents them from doing anything other than run the workloads they were purchased for[2]. Adding (or activating/licensing) a general processing unit instead would get you the same "acceleration", but it would cost more due to the way IBM structures mainframe pricing.

They know you can't use these zIIP licensed processors for general processing tasks, so they don't charge you as much for them upfront, and they don't count for software licensing charges in other ways.

Nothing quite like this exists in the x86 world, but it does remind me a little of the time when AMD/Intel were selling 1/2/3 core CPUs that technically had 2/4 cores in the package, with the extras intentionally disabled to create CPU models for a specific market price point, or because they didn't work properly when tested at the fab. I still have a motherboard here that can enable the disabled cores on certain AMD processors (with a warning in the BIOS that they may not actually work).

[1] [http://ibmdatamag.com/2013/04/performance-and-capacity- consi...](http://ibmdatamag.com/2013/04/performance-and-capacity- considerations-for-ziip-engines/)

[2] [http://www.itjungle.com/big/big013106-story01.html](http://www.itjungle.com/big/big013106-story01.html)

</comment></comment></comment></comment></comment><comment><USER15> So am I allowed comments in this?</comment>


Pirate Bay: Making sense of the sale - <AUTHOR> http://www.errant.me.uk/blog/2009/07/pirate-bay-considering-the-sale/

<comment><USER2> That's the most thorough analysis I've seen yet.

<comment><AUTHOR> Thanks. If anyone spots an error or something missed out please do say. Calling things "confused" might be an understatement :D

<comment><USER3> There's some speculation[1] at metafilter that the prices and stock percentages involved might make TPB a majority stakeholder in GGF.

[1] <http://www.metafilter.com/82889/Pirate-AB#2629173>

<comment><AUTHOR> Indeed. You might notice too that I skipped over the "PB owning GGF" part in the conspiracies section very briefly. To muddy the waters even more it emerged trading was stopped on GGF shares at one point after suspicions of insider trading.

Honestly? I cant put an opinion to that angle yet: probably I'll either update or re-blog once things start to clear up. It's an important thread for certain (maybe the most important?) but one too many for the moment :P

Lots of thanks for the link, more material to wade through :)

</comment></comment></comment></comment><comment><USER4> Personally I think the sale will fall though, and TPB will shut down.

Or more accurately, they will _say_ they will shut down, then there will be a big tumult, and someone else will take it over.

When people want to sell something like that, it's because they are tired (or bored). And they just don't want to do it anymore.

And I don't think the sale will go though because the plan makes no sense.

So that leaves shutting down.

But because it's their "baby", they don't really want to kill it - they want someone to take it over. So they will say they are shutting down, wait for the tumult, and someone to offer to take it over.

Time will tell if I am right, but I have seen this pattern many many times.

</comment><comment><USER5> "Follow the money" is Deep Throat's famous line in _All the President's Men_ :

<http://www.imdb.com/title/tt0074119/quotes>

Great article, by the way.

<comment><AUTHOR> Good spot :) That's one of my fav films. And thanks.

</comment></comment><comment><USER6> You essentially skipped over the fine, the jail time and other considerations from the case. i'd answer those if you want to make it a better analysis.

<comment><AUTHOR> I did mention that it was probably a strong reason for the to extract themselves from the site. But do note the court case refers to 2006. Since then non of the 4 defendants have been in a position where you could take legal action.</comment></comment>


Ask HN: What do you think about product hunt? [producthunt.com] - <AUTHOR> <comment><USER2> Even the stupidest product ideas make the front page. I would hate to see what gets discarded.

<comment><AUTHOR> Haha. One I can recall is [https://www.hundredunderhundred.com](https://www.hundredunderhundred.com)</comment></comment>


Naga: Datalog-based rules engine in Clojure - <AUTHOR> https://github.com/threatgrid/naga <comment><AUTHOR> Here's Paula Gearon's ([https://github.com/quoll](https://github.com/quoll)) talk on Naga at Clojure Conj 2016:

Production Rules on Databases: [https://www.youtube.com/watch?v=8rRzESy0X2k](https://www.youtube.com/watch?v=8rRzESy0X2k)

</comment><comment><USER2> I'm curious what the state of the art in rule engines is? I feel this is a neglected topic these days. I'm almost surprised to see new work on the topic.

<comment><USER3> I'm curious too - particularly horizontally-scalable distributed rules engines. I realize that might be contradictory since the Rete algorithm scales by throwing memory at it, but what if you want to throw more facts at an expert system than you can reasonably put in one server?

</comment></comment><comment><USER4> Isn't Prolog the better language for this? Don't get me wrong I love clojure, and one of the best things about dialects of lisp is that they are pretty much always multi-paradigm, but...

Pretty sure this is exactly what you would use Prolog for.

<comment><USER5> Exactly.

While Datalog is a subset of Prolog, Datomic isn't Datalog. From their tutorial:

        [:db/add "foo" :db/ident :green]

This isn't Prolog syntax at all. Prolog would be

        assert("foo", ident, green)

Franz, Inc. does it as well - calling something Prolog for their Lisp product which it just isn't.

I've nothing against Clojure but I wish the functional programming fans wouldn't call their DSLs Prolog or Datalog. If you're using Prolog or Datalog, you're expecting it to be (reasonably) portable accross Prologs, which this isn't at all.

<comment><USER6> 'Prolog' in Lisp exits for decades. During the 80s several Prolog implementation had been developed for research systems and also for commercial systems. Many used an s-expression syntax for Prolog, but some could also read 'Edinburgh' syntax.

Most of the time these 'Prolog' implementations are not as powerful/complete like a typical modern Prolog implementation.

LispWorks for example has an expert system development extension with an integrated Prolog.

[http://www.lispworks.com/documentation/lw70/KW-M/html/kwprol...](http://www.lispworks.com/documentation/lw70/KW-M/html/kwprolog-m.htm)

It also offers to read Edinburgh syntax and also has a command line interface for this syntax.

[http://www.lispworks.com/documentation/lw70/KW-M/html/kwprol...](http://www.lispworks.com/documentation/lw70/KW-M/html/kwprolog-m-135.htm#pgfId-869241)

But it still is far from ISO Prolog compatible.

<comment><USER5> > 'Prolog' in Lisp exits for decades.

I sure hope so ;)

Also it's clear ISO Prolog isn't universally embraced ([http://www.cs.unipr.it/~bagnara/Papers/Abstracts/ALPN99a](http://www.cs.unipr.it/~bagnara/Papers/Abstracts/ALPN99a)) since most popular Prolog implementations based on WAM were started way earlier.

I guess there are worse things Prolog had to suffer; namely, Perl insensitively took away the .pl file suffix and made it its own.

</comment></comment></comment></comment><comment><USER7> This looks really good. Make sure to watch the talk that espeed mentions. In the 1980s I spent a fair amount of time hacking Rete networks, mostly in a commercial version of OPS5 I sold for Xerox Lisp Machines, and also a modified version of OPS5 that had meta actions for spawning separate 'worlds, etc.

Rete scales well for huge numbers of rules, but not so well for large data sets. I haven't played with Naga yet, but I am curious if that is an issue.

</comment><comment><USER8> There is also miniKanren, available as core.logic.

<comment><USER9> Seemed like abandonware the last time I tried. Has it been picked up again?

<comment><USER10> core.logic has been in continuous commercial use pretty much from its inception, and that continues presently. I'd argue that calling a continuously high rate of change a prerequisite towards usefulness is an attitude which makes more sense in communities where there's little respect for backwards compatibility and thus a high rate of bitrot, ie. Ruby.

<comment><USER11> Exactly. I'd rather use something stable that doesn't need much (if any) continuous change.</comment></comment></comment></comment>


The Michelson Language - <AUTHOR> https://www.michelson-lang.com/ <comment><USER2> As I understand it, Michelson (The language used to write smart-contracts in Tezos) is better suited for high-value applications where you want to extract strong correctness guarantees out of the code you write.

I think it's a promising development in the field (blockchain meets PLT)

More resources on Michelson I found helpful:

[https://youtu.be/4oG4Ead74xA](https://youtu.be/4oG4Ead74xA)

[https://www.tezos.com/static/papers/language.pdf](https://www.tezos.com/static/papers/language.pdf)

[https://www.reddit.com/r/tezos](https://www.reddit.com/r/tezos)

<comment><USER3> You should check out Kadena's FOSS Pact[1] smart contract language as well.

Though it currently only runs on our (disclosure: am co-founder) high- performance private blockchain stack we're prepping it for use on a public blockchain (the first presale opens in Sept). It's a pretty different approach from Ethereum/Tezos in that it doesn't use a VM and instead is a Turing incomplete interpreted language (still metered though). You can think of it like LISP (for computational logic) + SQL (for storage) + Bitcoin script (for auth/capabilites logic).

Pact, like Tezos, supports direct whole-program formal verification but, unlike Tezos, you don't have to write in a stack-based language nor learn Coq/SMT to be able to use the FV system. It has a doc-string annotation DSL that describes the code's intended properties[2] so that non-PhD's can leverage at least some of formal verificaiton's power.

Also, like Tezos, Pact supports on-chain governance but, unlike Tezos, this governance doesn't perform a hard-fork and is instead limited to specific contracts and their data. As a touch of background, Pact has a native notion of modules, which syntactically require their upgrade workflow (i.e. governance), and imports. The upgrade workflow function's only requirement is that it is pass/fail (so it can be single-sig/multi-sig/decentralized vote/hybrid).

When a transaction attempts to perform an admin-only operation on a given contract the governance function fires which, if passed, grants the transaction admin-rights (allowing for arbitrary upgrades/data migrations/change governance) over the code and data the governance function protects. We expect voting-based governance to revolve around voting on the hash of a proposed transaction ahead of time (via other functions in the contract with interact with tables that record the vote) where the actual governance function's role is to tally the votes (fail if no winner) and then check that the triggering transaction's hash matches the hash that won.

Take the DAO debacle as an example: community leaders notice the problem and propose an upgrade which fixes the bug + refunds the affected users out the exploiter's account in the cold wallet + removes the exploiter's account -> users check that the upgrade does what it's supposed to and vote yay-nay on the upgrade -> community leaders submit the upgrade once it's won the vote. No hard forks, no white-hats, same result.[3]

[1]: [http://kadena.io/try-pact](http://kadena.io/try-pact)

[2]: [https://youtu.be/Nw1glriQYP8?t=1060](https://youtu.be/Nw1glriQYP8?t=1060)

[3]: Given that the exploiter could attempt to shuffle their accounts once the upgrade is publicized, I'd expect this class of response to be closer to: spot the problem -> elect a board of directors to take control of the contract (users vote on this upgrade, effectively granting the board god-powers over the contract+data) -> board locks the contract -> board fixes the contract + refunds the impacted accounts -> board returns the contract to decentralized control.

PS: if you want a fun problem to chew on w.r.t. strong correctness consider this -- if smart contract B imports A (both are on-chain) and A later upgrades what should happen to B? B's author couldn't have tested/verified B's logic with A's new version as it doesn't exist yet so it shouldn't auto-upgrade (what if A has introduced an exploit intentionally?). Moreover, A may be upgrading to add new features (so previous versions of A maybe should still work) or it may be upgrading to fix an exploit (so previous versions should be banned).

In Pact we solve this problem by inlining the code used from A into B at creation. Thus, A's upgrade cannot change B's logic and B's author is assured that the code they tested/ran formal verification on is the only logic that will run until they decide to upgrade B. There is, however, one caveat: any inlined code from A that is impure (touches A's data/tables) is inlined with the version hash of A. Everytime B tries to execute A's code (even before A is upgraded) this hash it checked against a whitelist associated with A's data. If the hash isn't found, the transaction fails. When A upgrades, the authors can choose to grandfather in previous versions hashes of A (in the case of new features that don't conflict) or not (in the case of exploit upgrades). Thus, A can ban impure code but not pure code (equations).

We jokingly refer to it as the "no-leftpad approach."

</comment></comment><comment><USER4> Michelson language is the smart contract language of Tezos, which is a competitor to Ethereum with flexibility in governance changes. Tezos is not fully live yet, but has active development.

[https://github.com/tezos/tezos](https://github.com/tezos/tezos)

[https://www.tezos.com/](https://www.tezos.com/)

</comment><comment><USER5> A piece of interesting trivia:

Albert Michelson is one of the architects of the Michelson-Morley experiment, which was conceived to test for the existence of "aether" (ether). The experiments ultimately showed that ether does not exist.

"Ether" is also the name of the token that can be traded on the Ethereum blockchain, which some would consider a competitor of Tezos.

<comment><USER6> The ether Michelson and Morley were looking for is also the ether in Ethernet.

</comment></comment><comment><USER7> > Disclaimer: this contract can be attacked. Do not use the code in production > unless you are aware of the risks you introduce.

I wish people didn't do this. If you're going to post an example, post correct/secure usage. People _will_ copy and paste the code and it _will_ end up in production.

Better to post no example at all than to post something you know is unsafe.

</comment><comment><USER8> I don't see how this language enables writing safe contracts. You can still go wrong using the primitives (paraphrasing an example - "don't copy this contract I gave you to illustrate how to use my safer language because it can be attacked". The lower level primitives they discuss in the article would still make it hard to reason about what is happening. I think they need higher level operators that are trustworthy. You need a language that compiles down maybe into these primitives, but if you have operators that people reason about and trust you'll be more likely to be successful, like java synchronized.

</comment><comment><USER9> I'm lazy today, can anyone link to a context document or something for this?

<comment><USER10> See: [https://github.com/tezos/tezos/blob/master/src/proto/alpha/d...](https://github.com/tezos/tezos/blob/master/src/proto/alpha/docs/language.md)</comment></comment>


Computers used to be so rare they got their own retirement parties - <AUTHOR> http://www.vox.com/2015/4/21/8463329/computer-retirement-party

<comment><USER2> _" Operator Bill Moore performing the last rites before turning the Philco off."_

back in '95, the Cyber mainframe I used in my undergrad years had a _bust-up_ party where you could take a piece of it home.

<comment><USER3> I think I got in on the tail of this trend in late 2004 when I got a free couple of 50GB hard drives from the retired SAN. I also recall seeing kids at school with retired 512K memory chips on their key chains.</comment></comment>


Ask HN: Is it me or AI is the new Cloud? - <AUTHOR> I hear AI here and AI there. Throw in bigdata and blockchain you have the perfect marketing combo. Question remains, is AI actually useful for most of us, and as a developer am I qualified enough to work with it. Tensorflow being quite complex. <comment><USER2> In a few years, what we now call "AI" is probably going to be a necessary part of at least most user-facing systems.

Like, we'll go from calling this thing "AI" into just thinking that systems that don't have these basic cognitive functions are really stupid and tedious.

Decades ago, you might have considered spell checking a form of "AI". Now, maybe we would consider an advanced grammar checker "AI". Maybe in five years, we will appreciate "semantics checkers" that check if what we say actually makes sense, or "pragmatics checkers" that make sure we aren't using an inappropriate tone of voice.

In a way "AI" is just a name for the frontier of making computers work for us.

But just like you don't need to be a compiler engineer to use advanced programming languages, you probably won't need to be a machine learning engineer to build user-facing systems.

So a lot of "AI" companies are focusing on building APIs for other systems to utilize. Double buzzword whammo: AI in the cloud!

</comment><comment><USER3> You're a little late to the game :) It's been at least 2 years since people started throwing the word "AI" everywhere. Amazon was intensively using AI in 1999. As someone mentioned, it's been out since the 50s.

Buzz words are essentially generated by investors, used by companies and then consumed by the media. When you hear about something from the media, it's already too late.

<comment><USER4> Something I think is new in current cycle for AI is how often we hear prominent people citing it. For example Putins recent comments. I personally don't recall world leaders talking about it this way the last time around (80's).

</comment></comment><comment><USER5> Personally I don't believe a real AI currently exists today (with one military caveat bellow).

I am not in the filed and I am not even a developer, but I do enjoy building trading algo robots on the side (they are quite successful, so I am not sure what is the side anymore, my real job or my side project earning me more on a monthly basis) and I really keep an eye on the so called AI space, because I believe my systems will be profitable as long as humans are involved and trading the market (either manually or with algos)... Essentially what we see today are rule based and data driven systems, but the logic behind is all human with its own greed and fears (especially talking into the stock market context)

I think the real AI will come form the military (as all other great live changing inventions), so what I am looking for the determine if the singularity already occurred is something like this: news report about a drone swarm enters in to ISIS controlled city and kills all terrorists and not a single civilian casualty...

I hope you get the idea and who knows, the real AI might be as greedy and fearful as us humans, which will not be a good thing about the human race to say the least...

<comment><USER4> Interesting viewpoint, a couple of thoughts. Please consider the role of the largest bull market in history when judging your success. Many people have made this mistake, myself included.

Your example of singularity indicator is very Hollywood-esque. When i consider what an ai system would have to do to first determine _who to target_ in such a scenario is much more illuminating. There are many paths to the singularity and strong ai, not all them involve software running on hardware, human augmentation and group minds being two. Your scenario may very well be possible today, though not desirable.

<comment><USER5> Thanks for the points, I have been trading trough 2 bear and 2 bull markets and back tested a lot more, so I have this one covered until the AI arrives :-)

For the my singularity scenario, it is just an example, but I do think it will come form the military, just like the jet engine, the digital photography, the internet, the gps... only this time around it might not be the US military complex, which can make it even more dangerous... in the end we all know what is most likely to happened when we meet more advanced civilization, especially home grown and "infected" with the "human dna" (greed, fear, etc)

</comment></comment></comment><comment><USER6> AI has been a field since the 50s ([https://en.wikipedia.org/wiki/Artificial_intelligence#Histor...](https://en.wikipedia.org/wiki/Artificial_intelligence#History)). Methods have been developed over the years, but the primary blocker has been computing power and data sizes in order for them to be effective. That is the primary reason they appear "in vogue" now because we have access to cloud computing and large datasets (or synthetic ones can be generated).

The best thing you can do as a developer to determine if AI is relevant to you, is read about how AI is being applied (the use cases) and if they sound interesting, learn the methods. Eventually you will discover if and how they apply to your work.

I can't speak to blockchain but that is orthogonal to AI.

</comment><comment><USER7> TL;DR; tooling is improving rapidly, and while this AI boom will someday end, we'll be left with tools to incorporate the things that do work in our everyday work.

Working for a "digital innovation lab" where a big part of my job is sorting out things that developers can actually use to make cool products from Gartner report buzzword hell, I have a few thoughts about this.

Historically, AI has seen boom and bust cycles. AI, unlike other buzzword technologies, has a large cultural mythos about it - Asimov didn't write "I, EC2 Instance", after all. Thus, non-technical people have very strong and often unrealistic set of expectations around AI, so every time there are technological advances, people expect that general AI is right around the corner, and are disappointed when it doesn't materialize. Right now, we're experiencing a boom cycle as a result of the emergence of deep learning techniques. After every boom, funding dries up and investors loose interest, but the techniques that really work stick around and become part of a developers everyday toolkit.

Like all "black sorcery" technologies, AI has a ways to go in terms of building convenient tooling. Tensorflow is a huge improvement over writing low level CUDA code, but it's still too low level for folks without a strong background in mathematics and machine learning. That said, it's been improving in usability, documentation, and tooling, and just a couple of weeks I was part of a hackathon where we turned their pet recognition demo[1] into software to detect objects of interest to my company in satellite images.

At an even higher level are a number of startups (such as Clarifai[2]) that offer AI-as-a-service. In Clarifai's case, you can train your own image recognition models and apply them with a few lines in your favorite programming language (yeah, yeah, I'm shilling them a bit, but I really like their product ;-).

So at the end of the day, I think we'll all be building various kinds of AI into our products in the not-so-distant future, but you won't really need to go deep into tensorflow and similarly low level tools to do so.

[1] [https://github.com/tensorflow/models/blob/master/object_dete...](https://github.com/tensorflow/models/blob/master/object_detection/g3doc/running_pets.md)

[2] [https://clarifai.com/developer/quick- start](https://clarifai.com/developer/quick-start)

<comment><AUTHOR> Very interesting. But often it seems that AI is an alias for image or voice recognition, would love to see more of those AI-as-a-service for different use cases. Or more tutorial on some behaviour patterns for example :)

</comment></comment><comment><USER8> Will probably need a vague working-knowledge of it.

Even if AI stalls out again for a while, you'll probably still have to integrate some piece of ready-made AI into a product at some point during your career.

</comment><comment><USER9> And also the new scapegoat. AI is gonna fire nukes, AI is racist, AI is the end of the world. Not the men behind the algorithms and their functioning, blame the AI.

</comment><comment><USER10> AI is going to be next API.. every Dev will use it in some form</comment>


Conway's Game of Life - <AUTHOR> http://experimentgarden.blogspot.com/2009/07/conways-game-of-life.html <comment><USER2> I've been on a little Conway's Game of Life kick for the past couple weeks myself. Such a simple algorithm like this is great for learning a new programming language.

I recently started learning python, so I wrote an implementation using the pygame library. If you're interested, you can see it here: <http://readysquid.com/blog/programming/conways-game-of-life/>

Feel free to take the source and play with it if you'd like.

<comment><AUTHOR> Nice share. It probably can't compete with a major Game of Life simulator such as Golly, but I agree that Conway's Game of Life is an excellent little programming project that is entertaining to implement in different languages.

</comment></comment><comment><USER3> So rarely are the theoretical aspects written about. At least this one mentions a Turing Machine in passing.

Think about that. We can build a Life pattern that looks for a counter-example to the Goldback Conjecture (GC). We can build a Life pattern such that if the GC is true, the pattern will grow forever, but if it's false, then the pattern self-destructs.

With our current knowledge in mathematics, no one can tell the eventual fate of the pattern. That's a pretty deep result, equivalent (sort-of) to the Halting Problem.

I wish someone had told me _that_ when I was writing my first "Life" simulators in 1979.

Note: The GC says every even number from 4 onwards can be written as the sum of two primes. If you like you could use another unsolved problem, like the Collatz conjecture - <http://en.wikipedia.org/wiki/Collatz_conjecture>

<comment><AUTHOR> Good point. The theoretical aspects of Conway's Game of Life are really eye opening. Interestingly I have found research material that hints that Conway designed the rules specifically so that it would not be possible to determine whether or not a pattern would grow indefinitely.

It is not possible to prove that there is a pattern which can grow endlessly.

<comment><USER4> That's not quite right. Conway originally intended that no pattern could grow indefinitely, but a pattern was quickly found that could grow forever: the Gosper glider gun. <http://en.wikipedia.org/wiki/Gun_%28cellular_automaton%29>

<comment><USER5> What process did people use to discover patterns like this? Is there a special rule for being able to incrementally build up a pattern in Life?

</comment></comment></comment></comment><comment><USER6> Interesting, I just ran across this wiki a couple of days ago

<http://www.conwaylife.com/wiki/index.php?title=Main_Page>

Conway's - too damn - interesting. After a few months I saw myself in one of those flip-flops.

</comment><comment><USER7> I posted this the other day : <http://news.ycombinator.com/item?id=725017>

More life patterns than you can view in a week.

</comment><comment><USER8> This applet has a bunch of interesting patterns. Click "Enjoy Life" then "Open"

<http://www.ibiblio.org/lifepatterns/>

</comment><comment><USER9> someone should write an iPhone app for this. it would be a big hit

<comment><USER10> There already are a number of iPhone implementations of Conways game of Life: [http://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa...](http://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?entity=software&media=all&submit=seeAllLockups&term=Conway)

Reading the reviews, its not really a hit; people don't always seem to get the game.

<comment><AUTHOR> Too bad. Perhaps if it was made into more of a game, with a multiplayer aspect it would be possible.

<comment><USER10> How could you make Life into "more of a game"? Let two people make figures and hope they move in the general direction of one another to "fight"?

<comment><USER11> I played a version once that shipped with an old windows game pack. Each turn, each player was allowed to add one cell of their color and remove one of their opponent's, after which the rules were applied. The goal was to eliminate all of your opponent's cells. I remember finding it fun at the time, but I haven't played it in years.

Edit: I found the wikipedia article for the game: <http://en.wikipedia.org/wiki/Life_Genesis></comment></comment></comment></comment></comment>


The Twitter DDoS - <AUTHOR> http://www.blyon.com/blog/index.php/2009/08/06/twitter-down-due-to-ddos/

<comment><USER2> Well, you know. Twitter has put themselves right in the middle of a national uprising in Iran and so are facilitators or perhaps enablers of conflict. I don't want to get moralistic or anything like that, but it should be expected that if you are helping one one side of a conflict that could potentially errupt into a full on civil war, that you are not immune to attack yourself.

I'm not saying this DOS or DDOS is related to the Iran issue, but I am saying that twitter has become a weapon of sorts, a communication enabler that benefits one side of a conflict more than another, so an attack like this is inevitable, even if this particular one isn't coming from the Iranian incumbents.

<comment><USER3> The timing is all wrong for that analysis to make sense. It's much more likely to be a script kiddie trying to build "street cred." Or an extortion attempt ("pay us, or we take your site down").

If I were an attacker, though, I'd attack for a bit, then back off, then attack, then back off, and so on. Intermittent disruption is far more annoying for the users than a sustained attack.

</comment></comment><comment><USER4> I'm curious to know the scale of this attack. It doesn't appear to be an exploit-based DDOS, just a raw flood of traffic. I don't know how built out they are in terms of upfront hardware, but ideally it should be 10G to the load balancers. And protecting that level of traffic isn't exceptionally difficult. Pop in 4 Cisco Anomaly Guard Modules and you've got 10G of DDOS coverage. And given Twitter's visibility and potential for angering folks indirectly, I think investing in that kind of hardware would be very wise.

<comment><USER5> The worst DDOS attacks aren't going to melt your load balancers; they're just going to saturate your connection.

Cisco's anomaly products are designed for service providers, so that they can build "scrubbing centers" in their POPs. Trying to block DDOS traffic at the target is playing to lose.

</comment></comment><comment><USER6> just to be clear they are calling it a DOS and not a DDOS - it could well be the latter but it could also point to another form of attack.

<comment><USER7> TechCrunch is calling it a DDOS, but as we know accuracy isn't their strong point.

<comment><USER8> Just be grateful they're not calling it MSDOS.

<comment><USER9> Or 'Doctor' DOS!

</comment></comment></comment></comment><comment><USER10> that illustration cracked me up. i don't use twitter but i'm guessing that it's better than what they have on their app's error 500 message. maybe they should buy it.

<comment><USER2> Their typical error image is a whale carried by birds. This image is funny because it's bird carried by whales. The image is a little more lively as well, with gradients and such.</comment></comment>


The Startup MBA  - <AUTHOR> http://venturehacks.com/articles/startup-blogs <comment><USER2> I'd say the startup MBA is starting one.

I don't mean that just as a metaphor, either. I wouldn't be at all surprised if it one day starting a company is considered an acceptable educational experience, in the same way an internship or apprenticeship is.

<comment><USER3> I would like to hear a great public speaker put that in to the right words.

It seems perfectly natural to hear currently successful people recall the learning experience of running a business early in life. It's seems perfectly natural that if you meet a 21 year old that has been running a business for some time, you will expect future success from them. This is obviously due to the (a)educational value of these activities & (b) what personality traits these suggest (It is usually not because this business is especially successful). You can speculate about which one is dominant, but (a) is unlikely to be insignificant. Already this sounds like a discussion about the value of going to a top Uni.

Like I said, I think a good speaker could take a friendly audience through something like this thought process & come to the conclusions that spending time & money running a business early on is valuable.

But if it comes to making a practical decision based on the above it quickly starts to feel radical. A proactical decision could be to take the time & money it takes to attend University & spend it creating a business. If the educational & associated benefits are similar to a University education, there are two outcomes. (1) The business fails - Education is acquired (2) The business succeeds - Education is acquired + the business can be sold or operated.

The risk doesn't seem _that_ big.

Where I live (Australia) International Undergraduates typical need are: 20k-30k USD * 3-5 years. Students are often from Malaysia, Indonesia, China & India.

60k - 150k buys you a fairly substantial education business experience in these countries. But even some place like England, it is substantial.

In essays, PG implies "risking" about a year and little or nothing out-of- pocket. That is an order of magnitude less "risky" then University typically is.

The logical case is there. What's needed is the emotional resonance. I don't think it applies only to startups in the YC sense.

</comment></comment><comment><USER4> Hate to be negative but reading blogs by accomplished and knowledgeable entrepreneurs does not an MBA make. Please stop devaluing the MBA degree by using it willy-nilly. This would be like linking to authors on arXiv and saying "The Physics PhD."

On the flip side, I think this is a pretty good list though it could use some diversity. One blog I like is <http://sivers.org/blog> \- Derek is a coder at heart but manages a very popular music storefront ( www.cdbaby.com ). Blogs like his may not tell you how to sell your company but will encourage you to keep going, despite all technical difficulties.

Reading what the VCs say is great, but ONLY reading what VCs say is setting yourself up for failure and narrowing down your perspective.

<comment><USER5> There is a lot to be learned from a lot of "MBA" professors including Drucker, Christensen, Pfeffer, Ackoff, and more. And there are a lot of great graduates of MBA programs.

But the MBA programs have already de-valued themselves into the garbage can. The burden is on MBA programs to prove that they are valuable as these blogs, not the other way around.

<comment><USER6> I like venturehacks (actually a lot) but blogs in general have just as much "de-valued themselves into the garbage can." At least when you are in an MBA program you receive information from different disciplines (HR, Strategy, Operations, etc, etc.) With blogs you first have to get past the fact that the top 20 are just one big echo-chamber.

</comment></comment></comment><comment><USER7> As a not-so-famous blogger once said, the government will give you 200k of debt to go to college, but not to start a business. For some people, one might be more beneficial than the other.

<comment><USER8> You're right. The government will give you $1500k of debt to start a business. [http://www.sba.gov/services/financialassistance/sbaloantopic...](http://www.sba.gov/services/financialassistance/sbaloantopics/7a/index.html)

</comment></comment><comment><USER9> I read 90% listed. Good read. I would suggest one more: <http://marketingstartups.com/>

<comment><USER10> I read a fair number of them too, but it worries me. Between my feed reader, twitter, and HN, I feel like I'm in a startup echo chamber. I need to diversify my knowledge generating assets.

<comment><USER9> Learn to use these resources effectively. It can feel overwhelming. Tip: limit time for feed reading/twitter/HN... if you have a limited time you'll use it better.</comment></comment></comment>


Xinu Is Not Unix - <AUTHOR> https://xinu.cs.purdue.edu/ <comment><USER2> I took the course at Purdue that built on Xinu (CS 354, Operating Systems) — Xinu is really just used for teaching purposes. Doug Comer (the creator of Xinu) was my favorite professor — it was inspiring to hear from someone who was pretty close to the development of the Internet and TCP/IP in the 70s ([https://en.wikipedia.org/wiki/Douglas_Comer](https://en.wikipedia.org/wiki/Douglas_Comer)).

</comment><comment><USER3> Took this epic course. Getting virtual memory to work on x86 is still one of the most satisfying projects ever done! Thanks Dr Comer and everyone.

<comment><USER4> How does it compare to os161 as a teaching OS ? What I really like about it is how fast it builds and runs and how comprehensive the course is with a decent amount of assignments.

<comment><USER3> I never did CS161. They look similar from the course page.

</comment></comment></comment><comment><USER5> Huh - my old RTOS professor from undergrad contributed a lot to Xinu and used to shill it to us in class. Didn't think I'd ever see it again.

<comment><USER6> Agreed, I was an EE at Purdue but still familiar with Xinu from CS clubs. Didn't expect to see it on HN, but a fun throwback!

</comment></comment><comment><USER7> Not to be confused with the Berkeley software company "Mt Xinu". (The operating system's name is a recursive acronym, while the company's name is a backwards spelling.)

"We know UNIX TM backwards and forwards." -Mt Xinu

[https://en.wikipedia.org/wiki/MtXinu](https://en.wikipedia.org/wiki/MtXinu)

Famous for the great posters they handed out at Usenix:

"4.2 > V" BSD -vs- System V, X-Wing / Death Star Poster

[https://raw.githubusercontent.com/ashaferian/Drive/master/Mt...](https://raw.githubusercontent.com/ashaferian/Drive/master/Mt.Xinu%20BSD%20Poster.png)

[https://www.ericconrad.com/2008/12/](https://www.ericconrad.com/2008/12/)

I love all the old telephone equipment in the explosion!

</comment><comment><USER8> Very little info on the website and Wikipedia about this OS.

<comment><USER3> You could find more in the book. The OS was done mostly for teaching purposes. You could write the building blocks of the OS: virtual memory, context switch etc in an easier environment than Linux/UNIX.

</comment></comment><comment><USER9> I'm sorry, but I don't see why anyone should waste a moment with a proprietary operating system with such limited use.

If you need a simple educational operating system with a book, Minux is available and open source software.

If you need a fully capable operating system kernel, Linux is available and is open source.

There are also many other open source software systems, including the *BSDs, Zephyr, and so on.

It takes time to learn the details of an operating system. I read parts of those books years ago, but I wouldn't waste any of my time with them today. Better to learn details of something you can use, or at least something you are legally allowed to change and share.

If it is open source software, and my comments don't apply, but then they should make that much clearer on their front page.

<comment><USER10> $ tar xzvf Xinu-code-Galileo.tar.gz

$ cd Xinu-code-Galileo/

$ cat COPYRIGHT

<<<begin COPYRIGHT>>> Portions of this software are covered by the following copyright:

            Copyright (c) 2012, 2015 Douglas E. Comer and CRC Press, Inc.
                            All rights reserved.

Redistribution and use in source and binary forms are permitted provided that this notice is preserved and that due credit is given to the copyright holders. The names of the copyright holders may not be used to endorse or promote products derived from this software without specific prior written permission. This software is provided `as is'' without express or implied warranty. The author assumes no liability for damages incidental or consequential, nor is the software warranted for correctness or suitability for any purpose. Portions of this software are documented in the book:

            Operating System Design -- The Xinu Approach, CRC Press,
            Boca Raton, FL, Linksys version 2012, Second Edition 2015.

This software may not be sold or published in printed form without written permission from the copyright holders. <<<<end COPYRIGHT>>>

<comment><USER9> The first part is a standard BSD license, however it has a weird extra restriction. It cannot be sold or published in printed form. That is a restriction on use that almost certainly makes it _not_ open source software. It certainly isn't a common license. Game over.

But even if it was open source software, it's unreasonable for people to have to untar that file on a phone. As I posted earlier, if it's OSS, that info needs to be a lot clearer. It certainly needs to be on the front pagd. Requiring a untar is absurd for such basic information.

As a piece of history, it's cool, though I think the Lyons book is more important.

<comment><USER11> In years gone by, it was common practice to look inside archive files to inspect README files and suchlike. Certainly, one is quite reasonably expected to look inside an archive of a teaching operating system where reading and understanding the source tree is part of the process. I think that you are unwittingly making a strong case for your 'phone being the wrong tool for the job. (-:

<comment><USER9> > In years gone by, it was common practice to look inside archive files to > inspect README files and suchlike.

That's true, I did it many times. But those years are long ago. Good riddance.

Most of the time today, for most people, a smartphone is the _only_ tool you have available at the moment. When I made that comment I was nowhere near my laptops or desktops or tablet, and I think that's true for many people today. According to Statcounter the _majority_ of pages viewed today are viewed using a smartphone: [https://gs.statcounter.com/platform-market-share/desktop- mob...](https://gs.statcounter.com/platform-market-share/desktop-mobile- tablet)

> Certainly, one is quite reasonably expected to look inside an archive of a > teaching operating system where reading and understanding the source tree is > part of the process.

Not to find out the license. A license is important information that you need to know _before_ you look at the archive.

I'm don't think it's even reasonable today to ask that people unarchive just to look at some code. GitHub, GitLab, SourceForge, and many other forges/repo sites make it quite easy to look at code without having to download and look inside an archive. By all means provide a simple link to download its archive (GitHub does this automatically), but it's also important to give people an easy way to look at its individual source files using a URL. I'll note that the Linux kernel does this just fine.

Things are hard enough on potential developers and potential users. Developers should work to make it _easy_ for potential users and potential users. If nothing else, their projects are more likely to do well that well.</comment></comment></comment></comment></comment>


Work Alone? How to Force Yourself to Get Shit Done. - <AUTHOR> https://medium.com/p/a9f8b84aa94f

<comment><AUTHOR> Author here if you have any questions about interviewing/podcasting/anything else...

Cheers, Matt</comment>


The End of Policing is available as a free Ebook - <AUTHOR> https://www.versobooks.com/books/2426-the-end-of-policing <comment><USER2> In Minneapolis, they are going to vote for the dismantling of the police department, to switch to community based policing.

While this sounds good on the surface, the reality will unfortunately be quite a bit messier. It will lead to what some call the "San Francisco" model of policing: Crime is allowed to happen, in open view and without any risk of prosecution, in a concentrated area of the city, which already has a lot of crime. The implicit agreement is that it's ok for crime to occur there, as long as it doesn't spill outside of that area. In San Francisco that area is called the Tenderloin. Of course, policing and enforcement will continue as always in the wealthy areas, which will be protected from crime as they always have.

The end effect is that you have very little policing and enforcement, as people wished, but the crime becomes highly concentrated in one area. This is terrible for the people living there.

I hope people understand this before they decide to dismantle police departments.

<comment><AUTHOR> The thesis of the book isn't that eliminating policing will solve the problems that create violent crime, but that policing itself doesn't prevent crime or fix those underlying problems. I'd really suggest giving the book a read.

</comment></comment><comment><USER3> Fascinating how alternative policing ideas went from a fringe to mainstream overnight. Whomever said "slowly at first then at all once" wasn't lying.

Another interesting book for those who are curious about these topics is The Private Production of Defense by Hans Hoppe which is also available for free: [https://mises.org/library/private-production- defense](https://mises.org/library/private-production-defense)

<comment><USER4> [https://en.wikipedia.org/wiki/Hans- Hermann_Hoppe](https://en.wikipedia.org/wiki/Hans-Hermann_Hoppe):

> In 2001, Hoppe published Democracy: The God That Failed which examines > various social and economic phenomena which, Hoppe argues, are problems > caused by democratic forms of government. He attributes democracy's failures > to pressure groups which seek to increase government expenditures and > regulations. Hoppe proposes alternatives and remedies, including secession, > decentralization of government, and "complete freedom of contract, > occupation, trade and migration". Hoppe argues that monarchy would preserve > individual liberty more effectively than democracy....

> In Democracy Hoppe describes a fully libertarian society of "covenant > communities" made up of residents who have signed an agreement defining the > nature of that community. Hoppe writes "There would be little or no > 'tolerance' and 'openmindedness' so dear to left-libertarians. Instead, one > would be on the right path toward restoring the freedom of association and > exclusion implied in the institution of private property". Hoppe writes that > towns and villages could have warning signs saying "no beggars, bums, or > homeless, but also no homosexuals, drug users, Jews, Moslems, Germans, or > Zulus"....

> As a self-proclaimed anarchist who favors abolishing the nation-state, Hoppe > believes that as long as states exist, they should impose some restrictions > on immigration. Hoppe has equated free immigration to "forced integration" > which violates the rights of native peoples, since if land were privately > owned, immigration would not be unhindered but would only occur with the > consent of private property owners. Hoppe's Mises Institute colleague Walter > Block has characterized Hoppe as an "anti-open immigration activist" who > argues that, though all public property is "stolen" by the state from > taxpayers, "the state compounds the injustice when it allows immigrants to > use [public] property, thus further "invading" the private property rights > of the original owners".

<comment><USER3> > The genetic fallacy (also known as the fallacy of origins or fallacy of > virtue) is a fallacy of irrelevance that is based solely on someone's or > something's history, origin, or source rather than its current meaning or > context. This overlooks any difference to be found in the present situation, > typically transferring the positive or negative esteem from the earlier > context. In other words, a claim is ignored in favor of attacking or > championing its source.

[https://en.m.wikipedia.org/wiki/Genetic_fallacy](https://en.m.wikipedia.org/wiki/Genetic_fallacy)

<comment><USER4> Huh? I was merely pointing out some relevant context of the work you cited. Context that people might want to be aware of as they consider its arguments and perspectives.

<comment><USER3> You're actually breaking the HN guidelines which I suggest you read [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

> Be kind. Don't be snarky. Have curious conversation; don't cross-examine. > Comments should get more thoughtful and substantive, not less, as a topic > gets more divisive.

> When disagreeing, please reply to the argument

And a few other relevant things.

<comment><USER5> Posting a quote of a logical fallacy is breaking your own rules. Consider pointing out which rules you think are being broke and why (the "why" being the important part of that sentence).

Note that the genetic fallacy is similar to Godwin's Law: it specifically doesn't apply when pointing out a pattern of behaviour.

For example, pointing out that the author of a particular philosophical piece is from a certain school of philosophy is important to people who do not understand the background of philosophical schools.

It's a form of reality check: would you accept relationship advice from a person who has never had a meaningful relationship?

</comment></comment></comment></comment></comment></comment><comment><USER6> The only option I see is "Hardback with free ebook $26.95".

<comment><AUTHOR> Hit the "Ebook" tab. You have to create an account, but then it's free to download. Doesn't require credit card info or anything like that.

</comment></comment><comment><USER7> Not quite free, it costs an email address.</comment>


That Sherlock Holmes line is interesting. It's false, arrogant, and dangerous. - <AUTHOR> http://www.grantland.com/story/_/id/6739353/bill-james-crime <comment><USER2> Here is the relevant piece:

There's a section in Popular Crime where you create a mathematical system that could be used by juries in order to deduce an accused person's guilt, built around a list of criteria. It's basically a weighted point system. The example you use is Lizzie Borden,6 who you feel was not guilty (as least according to this point system). However, two murders were committed that day, and there does not appear to be any potential suspect except Lizzie Borden. She seems to be the only real option. So what do you make of Sherlock Holmes' fictional axiom that states, "When you have eliminated the impossible, whatever remains, however improbable, must be the truth"? If there is no other explanation for the Borden murders, what else are we supposed to conclude?

That Sherlock Holmes line is very, very interesting. It's false, and extremely arrogant, and very dangerous. That's not a real way to think about the world. This concept of eliminating the impossible — we could never do that. The whole idea of Sherlock Holmes is dangerous because it encourages people to think that — if they're intelligent enough — they could put all the pieces together in absolute terms. But the human mind is not sophisticated enough to do that. People are not that smart. It's not that Sherlock Holmes would need to be twice as smart as the average person; he'd have to be a billion times as smart as the average person.</comment>


Ask HN: Should I change my passwords frequently? - <AUTHOR> That seems to be the general guidance (my company forces us to change our system passwords every 60 days), but I am unsure why this is the case. If someone were to bypass / obtain my password, couldn't they do it immediately? If changing passwords is helpful, how frequently should you do it to be effective? <comment><USER2> Changing credentials is helpful if you assume they're compromised every once in a while. These days if a unique and random password is used for each service and/or with 2fa enabled, that assumption is not that great anymore. Adding to that the fact that most people will just add "1" or the current year at the end, it makes updating the password much less useful - it will only stop completely trivial malware.

The recommendation has actually changed in high level policies relatively recently: [https://nakedsecurity.sophos.com/2016/08/18/nists-new- passwo...](https://nakedsecurity.sophos.com/2016/08/18/nists-new-password- rules-what-you-need-to-know/)

</comment><comment><USER3> No. [https://securityboulevard.com/2019/03/nist-800-63-password-g...](https://securityboulevard.com/2019/03/nist-800-63-password- guidelines/)

</comment><comment><USER4> Changing passwords frequently leads to trends in password reuse. Ie increasing 1 to 2 and then to 3 etc.

Best password is a long random words password as explained by xkcd!</comment>