Open Source Needs FPGAs; FPGAs Need an On-Ramp - <AUTHOR> https://www.blinklight.io/blog/2017-03-31/ <comment><USER3> I am currently waiting for my MATRIX Voice to arrive.

[https://www.indiegogo.com/projects/matrix-voice-open- source-...](https://www.indiegogo.com/projects/matrix-voice-open-source-voice- platform-for-all#/)

I have a Spartan 3AN dev board, another Spartan6 board, and an Arty. I was using Xilinx ISE free version to develop for the other boards until I bought the Arty. It came with a one year license for Vivado. I did not know that activating the Vivado license locked me in to developing only for Arty. ISE will no longer synthesize for any other target. I strongly dislike the closed nature of their software licensing.

I am retired but the last 10 years I worked writing VHDL. I can kind of read Verilog and understand what it does but do not know it well enough to write in it. The systems I worked on were for oil well logging. My circuits went down a 16,800 ft. hole where it was 350° F and the pressure was over 7000 PSI. Production quantities were typically less than 100. We used no bigger an FPGA than was needed to keep power at a minimum as there was no way to dissipate heat. Also the circuit boards were quite small since they needed to fit into a housing less than 2" in diameter. Frequent design changes were needed but all ran on the same boards.

I am currently working on a processor design that I call NISC. The set of all opcodes is the null set. It's a single instruction machine that does a move instruction with two operands, Source Address and Destination Address. I have considered putting the specifications and design on the internet as open source but am not sure where I should put it. Would anybody be interested in seeing it and where do you think I should put it?

<comment><USER4> Curious, how would one implement adding two numbers on your NISC architecture?

Or is the idea that you move the operands to the inputs of an adder circuit, and then move the result?

How would conditional control flow work?

<comment><USER5> [https://recon.cx/2015/slides/recon2015-14-christopher- domas-...](https://recon.cx/2015/slides/recon2015-14-christopher-domas-The- movfuscator.pdf)

Movfuscator

<comment><USER3> Thanks for this link. I will read it when I have time.

I currently have an accumulator at an address.

Moving to the next address ANDs with the accumulator.

Moving to the following address ORs with the accumulator.

Subsequent addresses XOR, ADD, ADC, SUB, SBB with the accumulator.

I have a location called Z and one called NZ which may be written. Reading from either location returns what was written to Z if the Z flag is set, otherwise both read what was written to NZ. Moving either to the PC effects a conditional JUMP. Moving either to the relative register adds it to the PC (relative conditional Jump). Moving either to the Indirect register pushes the PC on the stack and writes to the PC (conditional call).

I envision the capability of using the accumulator as a floating point register and having locations which perform floating point operations in a similar manner. It could also be considered as a vector and there could be locations which perform vector operations on it.

</comment></comment></comment></comment><comment><USER6> Something that's not really spoken to but is just as important is that FPGA development isn't software development. You're specifying hardware and usually that hardware doesn't just scale to new platforms.

Time will tell if Open Source can make the transition over to that domain I'm cautiously optimistic but I think there's a larger cultural divide there than called out.

<comment><USER7> FPGAs are sexy to many people because they are exotic. Imagine a custom chip designed to do whatever you want and able to be reconfigured on the fly?

The problem is that many aspiring learners want to approach it like a software problem. That can be a valid approach as long as they are willing to learn new abstractions. Many are not and then get frustrated and blame the tool ecosystem. Granted, the tool ecosystem does suck, but people (like me and others) are doing real work with these tools. Even if you scoff at FPGA tool quality, you have to remember that almost every ASIC out there was developed with similar (maybe slightly better) quality tools.

There has to be flexibility on all sides. Tool vendors have to adapt to changing times (more open ecosystems) and software developers branching out into FPGAs have to be willing to learn how hardware works.

<comment><AUTHOR> > The problem is that many aspiring learners want to approach it like a > software problem.

That is precisely why I made Blinklight - it's an educational platform for starting at the very bottom.

<comment><USER8> Maybe it would be better to use the highest abstraction tools possible (chisel? Maybe DSL's for hardware generation and verification) ?

Because compared to let's say software development, or embedded systems development, real chip design and mostly the tons of verification you need, is boring.

<comment><USER9> Look up Synflow's language for HLS. It's C based and open-source.

<comment><USER10> I don't want to diminish what they and other similar projects do and actually I'm not really familiar with FPGA development, but I have one thought: what if we don't need one more _language_ , but rather something on a different level of abstraction?

The first neural networks that ran on GPU was written using low-level GPU primitives [1]. This was a non-trivial process that required to do a lot of low-level stuff. It required system programming skills and time to implement new architectures. But a group of researchers at the University of Montreal developed Theano [2], a framework that allows you to define computational graphs in Python programming language and then compile them to CUDA code that could be then executed on GPU. Instead of spending resources on development of a new language they put their efforts on actual thinking out useful abstractions and implementing compiler that works efficiently. It is also notable that they didn't include very high level abstraction in Theano too, but there are libraries like Lasagne [3] and Keras [4] that introduced higher level abstractions (neural network layers and pluggable pre-implemented models) on top of Theano. It is safe to say that Theano boosted Deep Learning research, making programming of new neural networks architectures quicker and accessible.

What if actually we need just the same thing for FPGA? Just a Python library that defines useful abstractions for logic circuits building, allows to construct arbitrary graphs using them, and then compile these graphs to VHDL. Assuming that the basic building blocks defined in Python are well defined and tested, it would be easy to implement verification and some testing in pure Python, the tooling like visualising logic diagrams can be implemented in pure Python too.

In addition to reduced efforts for development (because you don't need to design and implement a new language), it would be easier to pick up by software programmers: they would not need to learn new syntax, but concentrate on core conceptions like gates/summators/other stuff and graphs involiving them. It wouldn't be necessary to develop special-purpose editors, because it just Python, and again, because the tests for the resulting schemas could be written and ran in pure Python, it would be possible to use standard CI tools like Travis for open source development.

Edit: It seems like there is already a project MyHDL [5] that does something very close to what I described above.

[1] [https://hal.inria.fr/inria-00112631/en/](https://hal.inria.fr/inria-00112631/en/)

[2] [https://github.com/Theano/Theano](https://github.com/Theano/Theano)

[3] [https://github.com/Lasagne/Lasagne](https://github.com/Lasagne/Lasagne)

[4] [https://github.com/fchollet/keras](https://github.com/fchollet/keras)

[5] [http://www.myhdl.org/](http://www.myhdl.org/)

<comment><USER11> Clash. [http://www.clash-lang.org](http://www.clash-lang.org)

<comment><USER12> Ha! Looking at their website, I realized a toy project I just did for a hiring process was actually designed to produce simulatable inputs to Clash!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Good place to start this would be here:

[https://github.com/wkoszek/freebsd_netfpga](https://github.com/wkoszek/freebsd_netfpga)

[https://wiki.freebsd.org/FPGA/](https://wiki.freebsd.org/FPGA/)

[https://www.freshports.org/devel/xc3sprog/](https://www.freshports.org/devel/xc3sprog/)

It's a FreeBSD NetFPGA driver for an older 1G card that I wrote during my internship 8 years ago, and a little ecosystem to make development more functional. I could program the FPGA from the FreeBSD and synthesize the code on FreeBSD that time.

What you say is very hard, though. Speeds which are achieved with modern ASICs are hard to compete with, because ASICs do a lot of advanced stuff with DMAs, interrupts, checksum offloading. This might be doable with an expensive hardware, but nobody in DYI community has money to do this.

Additionally the tools for synthesis are proprietary, and everything touching FPGA is pretty much proprietary too. Looking into date/author of the synthesis is as far as I could get:

[https://github.com/wkoszek/libxbf](https://github.com/wkoszek/libxbf)

(can only open file and tell you where the bitstream starts; not what it actually is) So the road to complete freedom goes through ASIC world, in my opinion.

<comment><USER14> Great list.

I have Bunnie's awesome Novena, which came with an FPGA (as well as an SDR add-on).

But, as the article says "FPGA development has always been an industrial activity, dominated by brutalist, opaque, and proprietary tools."... I haven't found the FPGA-FOR-DUMMIES guide to help me do anything with the thing.

<comment><USER13> Do you think there's a market for an FPGA-based tutorials?

I think I have a good grasp of stuff necessary for this, but I always felt that it's a really niche business, even within the DYI/open-source community.

If you want to start doing anything, I found it's best to look at the popularity of the board. S3E Starter Kit is by far the best, since most of the people could afford it, and it's nicely support. Any other board: case by case basis.

<comment><USER14> Realistically no.

However, I doubt many folks predicted the wild popularity of Arduino or Rpi either. All it takes is for some cool applications. The price point isn't a huge barrier these days.

I keep hoping some post-grad will come up with a great DUMMIES like guide that covers Hello World to signal processing.

<comment><AUTHOR> Author here, that is precisely the point of Blinklight (the site this blog post is from) :)

It starts from the absolute beginning, and the tools and tutorials are web- based and integrated with each other:

[https://www.blinklight.io](https://www.blinklight.io)

The focus is from Hello World to personal computer, but I've built a DSP-based guitar pedal in the past, and signal processing is really fun - I'd love to create a parallel learning path from Hello World to DSP at some point.

</comment></comment></comment></comment></comment><comment><USER15> Andrew Zonenberg has a whole list of open projects for FPGAs on his wiki:

[https://github.com/azonenberg/openfpga/wiki](https://github.com/azonenberg/openfpga/wiki)

There has been a lot of exciting work in the same repo for Silego lines and general foundations for Open Source FPGA toolchains for many of the types out there.

I've been really enjoying Clifford's Project IceStorm - open source tools which I've been using to develop/test on real hardware build up some Verilog chops:

[http://www.clifford.at/icestorm/](http://www.clifford.at/icestorm/)

I made a quickstart for it in a repo here for those interested in starting some Verilog adventures : )

[https://github.com/gskielian/TEAM-VERILOG](https://github.com/gskielian/TEAM- VERILOG)

</comment><comment><USER16> For anyone interested in developping applications for FPGAs in a high-level DSL embedded in Scala, this project ([https://github.com/stanford-ppl/spatial- lang](https://github.com/stanford-ppl/spatial-lang)) from a Stanford Lab might interest you.

Disclaimer: I am part of the lab.

<comment><USER17> I noticed there's a lot of RISC-V cores today implemented in Berkeley's Chisel ([https://chisel.eecs.berkeley.edu/](https://chisel.eecs.berkeley.edu/)). How would you say they compare?

<comment><USER16> Actually, Chisel is one of our main target codegen. We aim to be more high- level than Chisel.

See here for a quick and very incomplete tour: [http://spatial- lang.readthedocs.io/en/latest/tutorial.html](http://spatial- lang.readthedocs.io/en/latest/tutorial.html)

<comment><USER18> I was never able to convince my coworkers to program in FPGA HLLs, just because when you need to debug and simulate, you have to touch VHDL/Verilog in order to communicate with the board and understand what your high level abstraction is compiling to (not to mention the great deal of work that relies on tweaking and instantiating FPGA parameters like clock lines, buffers, DSP cells, etc). And actually this takes up the majority of the design time... so to make a software analogy, why bother writing in Scala when you have to verify and debug at at the assembly level?

<comment><USER19> Is that a serious question? Because most software development is now done in high level languages.

With the proper abstractions, there's no need to debug the high level code at the assembly level; you just need to debug the abstractions.

<comment><USER18> Maybe I should have made a different comparison: you can write a kernel driver in Python, but maybe you shouldn't. Debugging your HLS compiler is not a process full of joy and happiness.

</comment></comment></comment></comment></comment></comment><comment><USER20> I love FPGAs in a simplistic sort of way. I first started working with them when I was in school (1994-96) and thought I was going to spend my life with them. Other than some simulations with very expensive software that had been donated by Motorola I never actually used FPGAs. But from when I first started looking at them, I thought they would be the building blocks for an AI machine that could be added on to forever. I still think so, but I thought that there would be more visibility into the internal workings of the chips.

</comment><comment><USER21> TimVideos is an open source project using FPGAs and Python for conference (and other) video capture: [https://hdmi2usb.tv/home/](https://hdmi2usb.tv/home/)

So if you're interested in hardware, FPGAs or Python, it's a great opportunity to get hacking! They are also part of GSoC this year, but it might be too late to apply.

</comment><comment><USER22> I'm not exactly clear on what the post is advocating. If it's saying that there should be an open source implementation of an FPGA, then I just have to say that I think there's no way that's happening anytime soon. There are way too many hurdles.

If the argument is just that the open source community should leverage FPGAs more as a means of creating more powerful "open source" hardware, and that there should be more resources for people to learn how to write hardware, then I guess I agree with that. But I don't think FPGAs will be the panacea the author seems to think they will. FPGA implementations will always entail a performance and/or efficiency hit compared to ASIC implementations, and I think many people won't want to take that hit, limiting the number of users who are willing to adopt the open source solutions.

<comment><AUTHOR> Author here - I'm advocating the latter.

I agree with you to a point. However, I believe that those things that have been with us for decades: sound cards, 2D graphics adaptors, network cards, etc. can be done in FPGAs, and should be.

The speed is there, and the power used by the southbridge and peripherals is eclipsed by the processor and the screen backlight, so I don't think the power consumption is worth worrying about (I'd be interested to see evidence to the contrary, though).

Put another way: much of the foundational chips on motherboard are no long performance-sensitive, so we shouldn't be paying a compatibility price for it.

<comment><USER8> Why not just choose a small set of "golden" chips, create high quality drivers that abstract away incompatibilities if possible, and verify the heck out of that ?

<comment><USER23> That's… sort of happening with laptops. Pretty much any modern laptop with an Intel CPU uses a small set of Intel chips for everything. My dmesg includes:

em0: <Intel(R) PRO/1000 Network Connection>

iwm0: <Intel(R) Dual Band Wireless AC 7260>

xhci0: <Intel Panther Point USB 3.0 controller>

ehci0: <Intel Lynx Point LP USB 2.0 controller USB>

ahci0: <Intel Lynx Point-LP AHCI SATA controller>

drmn0: <Intel Haswell (ULT GT2 mobile)>

Most laptops from the same generation use the exact same set of chips.

</comment></comment></comment></comment><comment><USER24> Having read through the comments, I'm surprised that no one is talking about the true benefit of a tech like fpga. It's that it's field programmable, with many that can be reprogrammed in fewer cycles than a cache miss. This means that ultimately, fpgas have the potential to be an optimization flag in your favorite compiler or jit.

I see this as an inevitable convergence, especially when rumor of fpga transistors/mm^2 growing faster than cpu transistors/mm^2. What I can't tell is how much of what people talk about fpgas is hearsay, and how much is simply exaggerated. I know that every time I start to look into fpgas I always feel let down compared to their potential.

</comment><comment><USER25> Since I didn't see any other good place to post feedback, I thought I would point out that it's "sheer number" not "shear number."

Also, lowrisc.org is not accessible via HTTPS.

<comment><AUTHOR> Thank you, fixed!

<comment><USER25> Also, now that I've had time to start going through things, I wanted to add: great job! This seems like a pretty fantastic introduction so far. Although it might be helpful to provide solutions/additional hints in case someone gets stuck. (I'll admit I'm currently a little stuck at the "boss battle" in chapter 1.)

<comment><AUTHOR> A sorry, I missed your comment! I'm currently working on getting a forum up so that people can help each other through challenges. In the meantime, if you're still stuck feel free to email me at firstname.lastname@example.com and I can give you some hints :)

</comment></comment></comment></comment><comment><USER26> Personally, I'd rather have the ability to create a chip for $5K.

It's too stupidly expensive for the CAD tools (>$100K) when a wafer run is less than $20K for a very old process nowadays.

<comment><USER19> $5K wouldn't cover a single photomask, unless you're talking VERY OLD process.

Maybe there are direct-write (laser or ebeam) litho foundries... I don't know.

<comment><USER27> Multi-Project Wafer [0] services like MOSIS [1] reduce the costs significantly. Not sure what the lowest practical budget for a project is, but $5k would be in the ballpark. Access to student licenses for design software is possible, too.

[0] [https://en.wikipedia.org/wiki/Multi- project_wafer_service](https://en.wikipedia.org/wiki/Multi- project_wafer_service)

[1] [https://www.mosis.com](https://www.mosis.com)

</comment></comment></comment><comment><USER9> The trick is getting more EE's to spend their grants on open-source FPGA's and tooling:

[https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-...](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-43.html)

[http://opencircuitdesign.com/qflow/welcome.html](http://opencircuitdesign.com/qflow/welcome.html)

</comment><comment><USER28> The author's example about a huge multitude of ethernet drivers doesn't really map well to the solution suggested (i.e. A big blank slate of FPGA logic with a bunch of ADC/DAC/codec fabric on the chip periphery). The wire side of Ethernet is really well specified, and tightly implemented. (Your chip won't be 802.3 compliant if it's not!) That's a result of really good specs on the IEEE's part. They put a TON of time into detailing how the Ethernet physical layer talks chip-to-chip. The driver side implementation for Ethernet, however, is basically the wild fucking West.

There are cases where the author's approach makes sense - software defined radio jumps to mind. Adding one more layer of abstraction to ethernet drivers isn't one if them. That seems like an area where software could learn from hardware - namely, that good specs drive good implementations.

<comment><USER29> AFAIK, the digital interface of the physical layer (PHY) of the Ethernet stack are pretty much standardized (MII/RMII/GMII/RGMII). Most SOCs implement their own MAC layer, but are usually compatible with off-the-shelf PHY chips. The function and interface differences in proprietary MAC implementation is where the complexity of the kernel driver comes from.

Suppose that we also standardized the interface between the MAC layer and the kernel and add an FPGA inside the existing PHY chip which is opened to real- time programming, a ton of optimization can be done. For example, DDOS packets could be thrown away well before reaching the kernel space.

Previously I had done that with some low-cost FPGA kits, with less than 1K of HDL codes, it could get out only the IP packets wanted and then pass the packets directly to the application layer via the memory interface between the embedded CPU and FPGA logics.

I think a programmable network interface is well worth the money if we care enough for openness and efficiency.

<comment><USER28> You're right - MII and it's derivatives are fairly standard. I agree that the MAC -> CPU interface is the root of a lot of the complexity that the author writes about. However, that still sort of serves to illustrate my point: the software to interface with the MAC is the chunk that introduces the most variability. Standardize that and a lot of your problems are solved.

Integrating a bunch of analog/digital/vice versa fabric onto the same die is not a tenable solution to this particular issue. I'll admit the concept is mildly intriguing, but I think you'd find quickly that the silicon demands for a DAC/ADC of the quality needed to emulate any high speed waveform are a little out of reach fab wise. Too much space, not enough drive speed.

</comment></comment></comment><comment><USER30> Hi there,

we started a Kickstarter campaign a few days ago. We would really appreciate your expert feedback to our FPGA related board. Link: [http://kck.st/2orXGCv](http://kck.st/2orXGCv)

Our board connects a Raspberry Pi to the DE0 Nano. The FPGA can be programmed and reconfigured by the Raspberry Pi. The overall goal of our company is to make the entry to the FPGA world as easy as possible.

Motivation for our connector board: We try to avoid the proprietary tools as much as possible.

My experience with FPGAs so far (and only my opinions! please roast me)

CASE 1: Only FPGA, no processor: To complex for bigger projects, because of the missing high abstraction layer. Drawbacks: Slow development process; To make something useful you need a lot of stuff in your FPGA. Very boring for beginners and in my opinion also for experts;

CASE 2: FPGA with Soft-Core processor: For my bachelor thesis I once used the SCARTS Soft-Core processor from open cores in my DE0 Nano. Using an arbitrary Soft-Core processor from open cores can't be done Out-of-the-Box. You have to be quite experienced working with FPGAs. For my thesis for example I had to write my own SDRAM controller and add an additional pipeline stage to the processor. Drawbacks: Soft-Core processor quite slow; To hardcore for beginners; Simulation time makes you consume a lot of coffee;

CASE 3: FPGA with processor on chip: Advantages: High speed interconnect between FPGA and processor; Fast processor; Disadvantages: Being fully dependent on the proprietary toolchains. In my opinion the "FPGA only"-tools suck, but the so-called "system builders/designers" drove me crazy;

CASE 4: FPGA with external processor: In my opinion this is by far the best compromise. With some of my colleagues at the university I once made a bitcoin hashing cluster with our student boards. We also had an atmel microcontroller and a PC for that project. We just needed two days to make a fully working system. So FPGA programming can be very easy actually.

But if you combine the Raspberry Pi and the DE0 Nano it should be even easier.

With Raspberry Pi you have a clean and maintained Linux and with the DE0 Nano you have a powerful and still quite cheap FPGA board.

Again I would really appreciate any feedback. What do you do with FPGAs and how do you approach bigger FPGA projects?

Best regards, Joe

<comment><USER31> Cool project.

As someone from the FPGA industry, bigger projects just use your CASE 3 on a board to start prototyping. A Zedboard or similar. Cheaper version could be the Zybo. It's like $500 vs $200.

When you get to production stage, you whip up your own board.

What exactly is your complaint about the propriety tools? You are using Altera tools with the DE0 Nano.

<comment><USER30> Thanks

k. Interesting. A former employer of mine used CASE 4. The FPGA was connected to the CPU via a memory interface. In general this option should be more flexible. You can choose the exact processor and FPGA type you want. On the other hand CASE 3 may has components which are optimized for each other. But for an industry product I would feel to be in a better position in CASE 4 if one of the components is discontinued.

About the complaint. It was a bit too emotional, because I had some specific issues in mind, that cost me a couple of forum searches and hours. Included GUI bugs, some none-intuitive settings and IP blackboxes that weren't working or buggy. Not only Altera but also Lattice. The Lattice FPGA contained a Hard- IP SPI. Didn't do anything. I posted on the forums, a couple of users replied who had the same problem but no reaction from Lattice at all.

<comment><USER31> I think CASE 3 is going to be much faster due to the high performance AXI ports that Zynq's have.

<comment><USER30> Yes. That's true

</comment></comment></comment></comment></comment><comment><USER32> Well there are some things like [http://papilio.cc/](http://papilio.cc/)

I personally backed the papilio duo kickstarter. I haven't done anything with the board yet but there has been some small stuff...and some pretty complex projects too.

</comment><comment><USER33> Are there any fpga open hardware implementations available?

<comment><USER34> Actual chips, not as far as I know. There is a completely open source tool chain for a small FPGA, the icestorm project.

The VPR project by university of Toronto has several architechure models defined, but there is probably no way to turn these into a real chip.

FPGa vendors in general are extremely secretive about their designs.

(I'm a grad student working in The FPGA space)

<comment><USER20> > FPGa vendors in general are extremely secretive about their designs.

That is the part that saddens me. I had always wanted to be able to play with the internal programming. Back when I started they were not anywhere as big, and we almost had visibility.

<comment><USER34> At least with VPR you can define /modify your own FPGA architecture file! They are written in xml and parsed by the tool when doing place and route.

</comment></comment></comment></comment><comment><USER35> The course at that site is pretty interesting. There is an error that doesn't affect any of the examples but might be a problem for future circuits: what are called OR are actually XOR. It took me a while to figure it out because the notation for "don't care" was not obvious to me (it was explained later in the text after table circuits are introduced).

I was able to build a circuit to test this by copying an OR to the display block and hooking up the inputs to the buttons and the output to column 1. It might be interesting to have some scheme to test sub-blocks directly.

</comment><comment><USER36> Aside from the acceleration angle, the maker community would also benefit from a richer ecosystem around FPGAs, especially inexpensive ones.

They are very handy for input and output of signals where you need precise timing.

Things like oscilloscopes, video cards for vintage displays, driving led billboard modules, and so on. All of which either aren't possible, or aren't optimal/scalable on either Arduino or Rpi boards.

There are also bits like drop in clones of atmega microcontrollers that run on the fpga, so you can leverage some of what you already know to interface with it.

</comment><comment><USER37> > FPGA development has always been an industrial activity, dominated by > brutalist, opaque, and proprietary tools.

Brutalist tools? As in, made out of raw concrete (béton brut)?

<comment><USER38> Xilinx ISE does give the notion of raw concrete.

</comment></comment><comment><USER39> Question to all: is there a ycombinator for open source projects? Is it even possible to have one without profit as a motivator?

<comment><USER40> > Question to all: is there a ycombinator for open source projects.

I think it's called "YCombinator".

> Is it even possible to have one without profit as a motivator?

YC funds nonprofits, and open source, in any case, can (and often does) have a profit motive, so either way it seems YC would potentially be an option for an open source project.

</comment></comment><comment><USER41> While tangential to the main point, it's weird to read about the failure of the open source phone knowing about the Android Open Source Project. What's missing from AOSP is Google Play Services aka proprietary web services.

Open source has been a huge hit on the client, it's the firewalled server that has slowed the spread of free software.

</comment><comment><USER42> The Open-Source community needs Open-Source HDL compilers. Until this happens OSS for FPGAs will continue to be slow.

<comment><USER43> Like clash [0]?

[0] [http://www.clash-lang.org/](http://www.clash-lang.org/) ?

<comment><USER42> No. Clash is a transpiler from Haskel to other HDL languages. It still needs propritary compilers.

</comment></comment></comment><comment><USER44> Nice coincidental timing... I literally just ordered a Lattice Ice-40 eval board yesterday, and am hoping to get started using IceStorm to do some FPGA design stuff. It's all brand new to me, so any good entry level stuff, tutorials, docs, etc. on any of this stuff are very much appreciated.

<comment><AUTHOR> Author here - have a look at the main site, it was made just for that purpose: [https://www.blinklight.io](https://www.blinklight.io)

It's based around the iCE40/IceStorm, but it has its own specific "dev board". I'm planning on making it more generic later on.

</comment></comment><comment><USER45> I am trying to teach myseful CUPL on Atmel 16v8's as a cheap, super basic way to get my feet wet in the FPGA/ CPLD/ GAL world. I have a breadboard half wired up to blink lights based on input, etc. I like older technology, but hope that what I learn applies to more modern FPGAs.

</comment><comment><USER46> Unrelated to the article content, but the webpage zoom is broken on mobile.

</comment><comment><USER47> Do FPGAs have a future beyond "prototyping non-memory intensive algorithms for eventual ASIC implementation"?

It seems to me that the scale out + scale up method of x86 and GPUs are the most promising and profitable arenas still, besides some very niche and very particular applications?

I could and would like to be wrong. I'd go learn FPGA dev then if there were things that needed accelerating and were personally lucrative to me :)

<comment><USER48> They've grown beyond prototyping a long time ago. They are full featured SoCs with great flexibility that fill niches where CPUs, GPUs, ASICs can't compete in flexibility/power consumption/development cost.

\- ASICs are too rigid and require high volumes to be profitable

\- GPUs are too power hungry

\- CPUs are not good for massively parallel processing

FPGAs are heavily used in industrial/military/aerospace applications

<comment><USER6> If you think GPUs are too power hungry then you're in for a shock with FPGAs. Switching FPGAs are incredibly power hungry since they run on much larger processes.

FWIW most modern FPGAs use discrete DSPs anyway so you're not really getting the flexibility at that level.

<comment><USER22> > Switching FPGAs are incredibly power hungry since they run on much larger > processes.

I don't think the comment about process is really true, from what I can tell, Xilinx is only a few months behind the biggest SoC makers in terms of its process adoption, and is shipping 14nm parts currently. Not sure about Altera, but they are on Intel's process, which is bit ahead of the competitors anyway.

In terms of switching power, you definitely pay a penalty to have the reconfigurability in hardware, but on the other hand you don't have all the unused logic that you would on a GPU. I'd guess the comparative efficiency depends on the specific problem and specific implementation, but I don't have any numbers to back that up.

<comment><USER6> It's a couple things, process is a large part. You're also dealing with 4-LUT instead of transistors so you pay both in switching power and leakage since you can't get the same logic-to-transisitor density that's available on ASICs.

Also there's a ton of SRAM for the 4-LUT configuration so you're paying leakage costs there as well.

<comment><USER49> Tell me more about leakage.

NVidia managed to get it right about year and half ago. Before that their gates leaked power all over the place.

The LUTs on Stratix are 6-to-2, with specialized adders, they aren't at all that 4-LUTs you are describing here.

All in all, there are places where FPGAs can beat ASICs. One example is complex algorithms like, say, ticker correlations. These are done using dedicated memory (thus aren't all that CPU friendly - caches aren't enough) and logic and change often enough to make use of ASIC moot.

Another example is parsing network traffic (deep packet inspection). The algorithms in this field utilize memory in interesting ways (compute lot of different statistics for a packet and then compute KL divergence between reference model and your result to see the actual packet type - <USER2> created in random manner and then scanned linearly, all in parallel). GPUs and/or CPUs just do not have that functionality.

</comment></comment></comment></comment></comment></comment><comment><USER50> FPGA hardware is vendor locked and incredibly proprietary. The current business model sells chips at cost or below and makes it up with software licensing.

This is a huge problem for open source adoption, and unless manufacturers change the business model we will never see widespread use of FPGA's.

<comment><USER51> As an FPGA designer, I can't disagree more with your statement of their business model. They make money on chips. That is indisputable.

My last 3 designs used the vendor's free software, except for some IP we bought (IP=Intellectual property, a specific core). You might think of the IP as a library you would buy as a software engineer.

<comment><USER52> bcarlton0, what area of business are you in? I'm a young engineer working with FPGAs in the medical space and I'd love to hear about what else is out there.

<comment><USER51> Ductapemaster, I have done designs in networking (e.g. packet processing and 10 Gb Ethernet), wireless (e.g. baseband part of a modem), glue logic, and other more specialized areas. FPGAs have a wide variety of uses other than ASIC prototyping and small glue logic.</comment></comment></comment></comment>


Understanding the Factors That Impact the Popularity of GitHub Repositories - <AUTHOR> https://arxiv.org/abs/1606.04984 <comment><USER2> As someone who owns a repository with 11,529 stars ([https://github.com/minimaxir/big-list-of-naughty- strings](https://github.com/minimaxir/big-list-of-naughty-strings)), I notice a few problems with the logic presented.

I happen to have a scraper handy for tracking stars over time, and profiling the users who made those stars ([https://github.com/minimaxir/get-profile- data-of-repo-starga...](https://github.com/minimaxir/get-profile-data-of-repo- stargazers)). Here is a chart of the daily number of Star events on the big- list-of-naughty-strings repository as of today: [http://i.imgur.com/NzzjuKK.png](http://i.imgur.com/NzzjuKK.png)

The paper assumes that popular repositories are popular on their own merit. But as you can see from my chart, there are clear spikes, one when the repository was first released, one a few days afterward, and one in February for _literally no reason_. The cause of those spikes were Hacker News, /r/programming, and /r/webdev respectively.

Here's another one of my repositories currently at 458 stars ([https://github.com/minimaxir/facebook-page-post- scraper](https://github.com/minimaxir/facebook-page-post-scraper)) which only got exposure after a Show HN last Thursday: [http://i.imgur.com/8qpTrrb.png](http://i.imgur.com/8qpTrrb.png)

There's also a huge selection bias problem with only looking at Top Repositories. While understandable from a scalability standpoint, it's also possible that repositories are popular _because of good marketing_.

<comment><USER3> Correct. A lot of disaffected programmers think "marketing" is a dirty word and they will have no hand in it. It's a type of magical thinking that forgets the movie Field of Dreams ("if you build it, they will come") is about a literal miracle. There's really no such thing in the real world.

"Advertising" open source projects doesn't typically involve taking out ads on Facebook, but you still need to perform the marketing task. Get out to events and stand up as a speaker--event organizers are always desperate for content. Write blog posts. Make videos demonstrating how to use your tech.

If you don't care about growing your project beyond yourself, sure, feel free to skip these things. But if you're really serious about growing your project, it should take about half your total time on the project.

<comment><USER4> Speaking at events really doesn't seem that effective to me at gaining exposure. One post on reddit would net 25-30x the number of stars that a conference/large meetup gig would.

It's more useful for reaching out and making stronger real life contacts with people who might be interested in using your software, but the net isn't cast nearly as wide.

<comment><USER3> On multiple occasions for various project over the years, I've received several thousand views to my sites from a Show HN or a Reddit post. In comparison, doing a talk is "only" 25 or so views. If all you care about is views, clearly posting online is better.

But I care about people actually using my software. And giving a talk usually ends with 3 or 4 people actually trying my project. Or if I'm running a class, it's 30 or 40. In the last two years, I'm pretty sure there is _one_ person from all the Show HNs and Reddit posts that is using my project. From even the few number of local talks I've given, I have a small cohort of people not only using my software, but giving me feedback on it as well. We see each other once a month, at least. It's one of the greatest feelings ever to talk to a person, face to face, who is excited about your project and hasn't run away even after using it.

Also, I can't guarantee that a post I make will get to HN's front page where it will get so many views. But at this point in time, I get asked to do a talk about once a month. If I really put the effort in, I could probably be doing talks once a week.

And all those thousands of HN viewers never once offered to sponsor the continued development of my project. But my progress on giving in-person talks got me in front of just the right people and now I can work on my project full-time.

In a similar situation, my wife has a couple of sci-fi novels that she self- publishes online. The vast, vast majority of her sales have been in-person at book fairs. People at book fairs are ready to buy. They are there because they want to spend money. It's an easy sale. Online, you have to intrude on people and fight against the million other people self-publishing.

Yes, you cast a much wider net online. But it's a net with big holes and for much, much smaller fish. Follow the numbers, the important ones, not "views" or "stars" or other such things that aren't "cold, hard, cash". The cash says in-person marketing is significantly easier to execute than online.

</comment></comment></comment></comment><comment><USER5> I skimmed through this, but their conclusions are far too simplistic to be of any use. A company repo is more popular than a personal one? Are they implying forming a company around an unpopular repo will make it popular? It's likely that if there's a company behind it then it's being done as paid work, that it has specifications needed to interop with something else, with management behind it driving quality, perhaps to a deadline. Second, saying more contributors equates to greater success is a tautology. Or are they suggesting one can simply give strangers commit access and that alone will determine success? More likely, success and popularity attract contributors. And repos tend to get more stars after a release, so if one releases every hour they'll get the most stars, right? Fix a typo, it's version 79.0. Document a method, it's version 80.0. Or maybe it's announcements around a release that serve as marketing?

Lots of correlations in their conclusion, but no causation. The paper could be shortened to "Have more visible activity in your repo".

<comment><USER6> > Second, saying more contributors equates to greater success is a tautology. > Or are they suggesting one can simply give strangers commit access and that > alone will determine success? More likely, success and popularity attract > contributors.

They don't say this. They note that the measure of popularity they're using (stargazer count) is weakly correlated with commits and contributors.

> And repos tend to get more stars after a release, so if one releases every > hour they'll get the most stars, right?

They certainly don't draw that conclusion.

<comment><USER5> Their conclusion states "... confirming the importance of a large base of contributors to the success of open source software".

Also note that my questions are facetious and are my own. My apologies if that wasn't clear.

Overall, it's a good study of properties that popular repositories have. In terms of factors that impact the popularity, I found it lacking.

</comment></comment></comment><comment><USER7> Direct PDF link:

[https://arxiv.org/pdf/1606.04984v1.pdf](https://arxiv.org/pdf/1606.04984v1.pdf)

</comment><comment><USER8> While there is a mention of Hacker News, I was surprised to see that the authors apparently hadn't attempted to correlate popularity with Reddit links. Anything that I've had become remotely popular is because it got a few upvotes on HN or Reddit...and anecdotally, I've seen Reddit/HN launch niche libraries into the 1000+ star group, even if the library is relatively niche (hell, I'll star things that look cool and had interesting discussion, even if it's likely I'll never clone/fork the repo)

Meanwhile, libraries that were ubiquitous by the time Github became popular have relatively few stars. The most prominent example in my mind is ruby/rake, which has just 627 stars: [https://github.com/ruby/rake](https://github.com/ruby/rake)

<comment><USER9> > ruby/rake, which has just 627 stars

ruby/rake is in maintenance mode, so there really isn't a lot of reason for people to notice it or even star it. You can see how active it is, in the screenshots below:

[http://imgur.com/a/cYYwn](http://imgur.com/a/cYYwn)

And as the last screenshot shows, in the last year, they only changed 104 files with 227 commits from 23 contributors. And if you look at the churn graph, there wasn't a lot of churn between 2011 to 2015.

Now compare this, to something like GitLab (18,000 stars), which is my goto repo for showing high rates of activity. This is there churn for the last 7 days, which doesn't count added/deleted files and changes by merge commits. And the reason for not counting added/deleted files, is I was told they are doing a lot of restructuring.

[http://imgur.com/a/2A1VM](http://imgur.com/a/2A1VM)

In the last 7 days, they changed 505 files with 390 commits, from 35 different contributors. In one week, they doubled the activity of ruby/rake's one year activity. What would be interesting to know is, of the 35 contributors, how many are GitLab employees.

I would also love to analyze GitHub's and Atlassian's Bitbucket development repos. I can't imagine they are iterating at the pace that GitLab is and I have yet to find another open source project that is going at their rate.

</comment></comment><comment><USER10> I also found both the methodologies and the conclusions to be very simplistic. They conclude that repository age isn't a factor and then give apple/swift as an example. I don't use swift, but my understanding is that it's been an ultra popular language for a long time, but only recently got open sourced. I don't think they account for project existence before GitHub appearance which may be a significant factor for a good amount of top projects...

</comment><comment><USER11> This is from the conclusion section of the paper:

 _We also reported the existence of a strong correlation between stars and forks, a week correlation between stars and commits, and a week correlation between stars and contributors (RQ #2)_

Ok. Yes. this is a lame thing to point out, but, it just strikes me as weird: they spelled "weak" wrong.

</comment><comment><USER12> Feedback loops with excessive competition for reputation?

Cheating is bound to happen.

There are some games for which not playing is the only way to not loose.

</comment><comment><USER13> Business literature bullshit coming to IT and CS.. One can't study the top to make inference of the process.</comment>


Drug Prices Will Soon Appear in Many TV Ads - <AUTHOR> https://www.nytimes.com/2019/05/08/us/politics/drug-prices-tv-advertisements.html <comment><USER2> The entirety of the health care system in the U.S. is setup to hide the price of health care. Insurance companies are required to cover drugs without regard to the price. Dr's - who should be the patients advocate in all things including the cost - are willfully ignorant. And then you end up with a person who fully understands that the price on the tin and what they pay out of pocket may very well bear no relation to each other. Indeed there's an expectation that it will all be paid for by insurance. Which is the Dr's expectation as well - explaining why Dr's care not a jot about price. Insurance companies themselves might care but it's not like they have a choice in what they cover - that's dictated to them by politicians who will follow whatever they have to do for the sake of a vote at the ballot box.

<comment><USER3> Insurance companies care a lot of drug prices since they pay a bulk of it. For example a 20% copay is not uncommon for expensive drugs to encourage use of cheaper generics. Drug companies in turn provide copay assistance so consumer are less concerned about the high prices they charge the insurers. The drug companies in turn raise prices to cover the assistance. Meanwhile those without insurance coverage are left high and dry.

</comment></comment><comment><USER4> Here's the link to the document that describes the rule. Basically requires disclosure of list price if it costs more than $35/month for an average regimen. Price must be posted in a readable font and also be announced verbally. Companies are allowed to mention competitor's prices for comparison purposes.

[https://www.federalregister.gov/documents/2019/05/10/2019-09...](https://www.federalregister.gov/documents/2019/05/10/2019-09655/medicare- and-medicaid-programs-regulation-to-require-drug-pricing-transparency)

</comment><comment><USER5> It will make 0 difference... You can have the announcer rattle off side- effects that would make your skin crawl, but as long as there is a cheerful beautiful woman jogging or gardening or lounging in a hammock with gentle CGI butterflies flitting sround, your brain will tune it all out.

<comment><USER6> If the price tag is $4 million it will take a very cheerful and beautiful person to distract people!

[https://www.reuters.com/article/us-health-sma-insight/u-s- be...](https://www.reuters.com/article/us-health-sma-insight/u-s-benefits- manager-baulks-after-novartis-values-gene-therapy-at-4-5-million- idUSKCN1NS0CX)

</comment></comment><comment><USER7> This is step in the right direction but just like the side effect disclaimers I think most people will get desensitized to it.

I don't know why there is so much focus on drugs though lately. Biggest costs are on the medical side.

<comment><USER8> > the side effect disclaimers I think most people will get desensitized to it.

A bit unrelated, but this is entirely intentional on the part of the drug makers. Closely pay attention to the next drug commercial you see. During the part where they're listing the (usually severe) side effects, all you'll see on screen are happy people on sunny days doing active things. They're using a bit of psychology to trick you into marginalizing the side effects.

It'll be interesting to see how they treat drug prices, but I'm glad we're at least heading down the right path.

</comment></comment><comment><USER9> In the UK drug companies aren't allowed to advertise prescription drugs.

<comment><USER10> I never understood why this was a thing in the US - surely it's doctors that make the decision about what medicationa are needed?

<comment><USER11> US lacks replacement of equipotent drugs.

</comment></comment></comment><comment><USER12> Or they'll cleverly not be an ad for that drug, but have you talk to your doctor about hepC, where the only drug that they could be talking about, but never mention, is over $100k.

</comment><comment><USER13> > Drugmakers have been resistant to advertising list prices, saying it's > simply the price that's advertised, and not what consumers actually pay.

Jeez guys, you're supposed to hide the ball a little bit!

In seriousness, this probably won't have much of an effect. Insurance companies decide what they're going to pay, which has little to do with the sticker price. Consumers, for their part, do not generally pay out-of-pocket for drug regimens at all — if they are rich enough to pay without being bankrupted, they're rich enough to be insured.

<comment><USER3> > Consumers, for their part, do not generally pay out-of-pocket for drug > regimens at all

That is not true for the real expensive drugs where insurance companies expect a large copay. Something like 20% copay on a $2000/month drug is common even of high quality insurance plans.

<comment><USER14> Frequently drug companies provide coupon programs to cap this.

</comment></comment></comment><comment><USER15> Well that took long enough</comment>


Battery life: Apple's solving for x - <AUTHOR> http://sixcolors.com/post/2015/01/battery-life-apples-solving-for-x/ <comment><USER2> To me, a 2-3 day battery life wouldn't be worth much. I did like having the old dumbphone weeks worth of battery, but believe it or not, that thing was without battery way way more often than my smartphone is. Why? Because smartphones you charge every night. It's a habit. You brush your teeth and charge your phone. So actually, unless they make the battery life _substantially_ better, I'm going to take Apples side here: it's better to make the phone slightly cheaper/lighter/brighter/faster/..., than to make the battery life slightly better.

Of course, this may vary with location and usage pattern and I can see how someone in an area where battery drains in less than a day is very frustrated. I'm nowhere close to draining my battery in a days worth of near-constant use.

<comment><USER3> You're completely right but I think it's more about <always> getting through one day. Even if there's heavier than usual usage, or even after your phone is a year or two old.

So we actually need a phone to last for 2-3 days of regular usage so it's up to the task of lasting a full day in the worst case.

<comment><USER4> Also for periods of heavy battery use. My iPhone 6 gets roughly 3-4 hours of playtime on games (most recently Knights of the Old Republic). I'm not complaining because that's great for a phone today; but 8-10 hours of playtime would be nice a few years from now. I take a lot of long flights and it's nice not to have to carry a spare battery or plug into my laptop.

</comment></comment></comment><comment><USER5> This is basically the reason I got a 6+ over a normal 6. Previous iPhones have been great, except they saved a few mm and made me carry a cable around with a playing-deck-sized external battery. Real stylish.

I think many people would want something like an iPhone 6S with the option of having a bigger battery and built-in case at the expense of a few mm of thickness. Basically, make the back removable (even if just when ordering or at Apple stores) and make a more rugged version which also contains a second battery. The fronts and guts can all be exactly the same for manufacturing efficiency, then the wrap-around back can be swapped out to change color / if it gets smashed or bent / if the user wants to replace the battery etc. I really think this could work while retaining their fit and finish + manufacturing efficiency, and it's surely make consumers happy. And again, I'm not talking about a user-replaceable part, just an ordering option or possibly a paid in-store swap.

<comment><USER6> I wish most phone manufacturers would start to pay attention to this. I don't need to save the last few mm. My pocket can handle it. But there are times when I definitely do need the extra battery life.

Marketing wins, actual practical use of the product loses.

<comment><USER7> In my experience, those days when I need the extra bit of battery life are almost always at events, or while travelling. I can spot those days in advance, they're not surprises.

So I found a remarkably simple and obvious solution: I spent £50 and bought an external battery pack, something like [http://www.amazon.co.uk/RAVPower-15000mAh-External- Generatio...](http://www.amazon.co.uk/RAVPower-15000mAh-External-Generation- Portable-Black/dp/B00OJXVDAU/ref=sr_1_14) . It charges overnight, weighs not all that much at the bottom of a shoulder bag, but on those crucial days when battery is getting slim, I can just pull a cable out, plug it into my phone, and bingo: the phone is charged.

It's capable of charging an iPhone several times over so _easily_ solves the problem for you and even some of your friends.

<comment><USER8> _and bingo: the phone is charged._

Isn't it more like "Bingo: now I have a battery pack dangling from my phone for the next few hours"?

<comment><USER7> Nope. iPhones tend to charge most of the battery in about an hour with a decent charger, so you sit down for a presentation or two, while still tweeting/etc, and by the time the presentations are done your phone is charged again.

</comment></comment></comment></comment></comment><comment><USER9> I've noticed that battery life changes dramatically on where you are. When I visited the US, I bought a local SIM card and my 4S died long before the day was over. The same in Japan. But in Denmark I have no problem lasting a day.

<comment><USER10> Yes, this definitely happens. I live in Australia and have gone out to north- west Queensland many a time, when you do your battery life is halved compared to being in the city. You'll even find the same thing catching a train from Gold Coast to Brisbane. Basically, anywhere there is spotty coverage, you'll see your battery life drop dramatically, this is because the phone will increase power to the cell radio to keep you connected when there is low signal. I've always found it fascinating.

<comment><USER11> Back in the dumb phone days, driving through New Jersey, of all places, used to kill my battery. If you're not familiar, NJ is the most densely populated state in the US, but the northwest part of the state is mostly wooded, fairly mountainous, and sparsely populated.

I'd be driving from Pennsylvania the NYC suburbs, but northwest Jersey at the time had spotty service and a lot of analog networks. It was a real battery killer.

</comment></comment></comment><comment><USER12> I think Apple's focus up until this point has been to make the devices thinner. That's meant that as the SoC has been getting smaller and more efficient, the battery has also been getting smaller due to the reduced phone size.

Now in the case of the iPhone 6 it can't get any smaller as its only slightly thicker than the headphone jack. Removing the headphone jack only gets you an extra few millimeters before you hit the Lightning port. So without a major redesign it's as thin as it can get for the moment.

So from this point onwards I would expect so see battery life increase as extra space in the case grabbed from size reductions from the SoC goes to battery. The 6 plus seems to follow this design pattern.

(Assuming there isn't a major advance in battery technology)

<comment><USER13> It won't go to battery life, it'll go to higher performance, more screen brightness, additional sensors, more allowed background processing by apps, more GPS check-ins, more chatting with your connected devices like the Watch, and more awareness of the radio-transmitting devices around you. There's a LOT more our phones could be doing if they had 2x, 3x, 10x battery life, that would eat up every bit of juice within a typical day.

</comment></comment><comment><USER14> For me, the iphone 6+ has been the first iphone with a truly confortable battery life. It lasts 2-3 days on average for me when my iphone 5 often didn't even last a single day.

</comment><comment><USER15> It seems reasonable to assume that Apple, being a competent design house, did some research and listed "x hours of battery life for function y" on their market requirements docs. I guess I don't understand how meeting their design goals is a profound observation.

As far as battery life goes, the one feature I'm jealous of on Samsung phones is the extended battery life mode. Do they still do that? Anyone know if it's on other Android phones? I'm happy to compromise with a sleeker phone, a la Apple, if I can get some extra battery life while traveling.

<comment><USER16> They still have that, and other Android phones have different apps with the same goal. But turns out that it's not really needed at the latest models - both my wife's Moto G and my LG G3 have plenty of battery for lasting a few days in light usage, and it does not help in heavy usage anyway.

</comment></comment><comment><USER17> his own graphic says that the 3G has 7h while the 4S has 11h. This is a huge difference. It only looks like small changes in battery life because the 6+ was included in the graph.

</comment><comment><USER18> I think a lot of people don't understand why the iPhone 6+ lasts that long. It does so because the battery is specced out to last a certain amount of hours with the screen on. Because the screen requires more energy they've put in a larger battery. The standby and talk usage getting a bump is just incidental.

</comment><comment><USER19> Using Apple's promo material? Really?

</comment><comment><USER20> I'm extremely satisfied with the battery life of my iOS device. Even after a day of above average use, it will have more than 50% remaining.

</comment><comment><USER21> I keep going back to the iPhone as all Android phones are empty while even hardly using them and they take forever to charge. I have an iPhone 5s and Galaxy s5. The s5 takes hours to charge fully while the iPhone is full very quickly. And while actively using them, the s5 is empty far before the 5s. Both have had this since they came out of the box.

I had similar issues with the iphone 4 vs galaxy s2 and iphone 5 vs nexus 5.

<comment><USER22> [http://www.anandtech.com/show/7903/samsung- galaxy-s-5-review...](http://www.anandtech.com/show/7903/samsung- galaxy-s-5-review/5)

The galaxy s5 charger pretty quickly compared to most phones.

<comment><USER21> Interesting I get downvoted for something which just happens to me and I can prove if you sit next to me. It's slower, much slower. With any charger including the original one which came with the phone. I create apps and have a ton of devices; it's not like i'm an Apple fanboy or whatever, it's just an observation.

<comment><USER22> I didn't comment on battery life because it is almost impossible to measure since it depends on many factors. Charging time on the other hand is easy to measure. The Galaxy S5 charges very quickly compared to other phones. I'm not suggesting that you are lying but that your charger probably didn't let the phone charge as fast as it can.

<comment><USER21> I do not know the reason but I would love to know it; I use the 5s + s5 together every day, all day for business. And it is very simple; after about 5 hours the one I used most will be dead (it differs per day which one that is) and for the s5 the day will be over; it will take more too long to charge to even put in the loader, while if it's the 5s, it'll be fully in a jiffy. Now I could have a faulty model (I can rule out chargers as I have many of them, always use wall chargers and official cables) but I have the same experience with every other non-Apple phone I have. For tablets I have; iPads + Windows 8 tablets take the longest to charge, Android the shortest.

Anyway; it does not really matter; I like Android phones but for me short battery life (like you said, depends on many factors and is about similar on iPhones) life is killer and then long charging adds insult to injury.</comment></comment></comment></comment></comment>


Classic 1984 video game Robot Odyssey available online - <AUTHOR> https://www.robotodyssey.online/ <comment><USER2> When I was in grades ~4-8 I was placed in my school's special education stream, which really just amounted to a day a week of totally unstructured play in an incredibly well kitted out classroom (at the high school across the road, no less). There was a group of us that spent more or less every available second in that classroom playing this game on the Apple II, sharing secrets and strategies through the (surprisingly long) game. I credit a large part of who I am to today to it.

As a grown up I've watched video walkthroughs of it numerous times with my daughter, and have been meaning to figure out a way to actually play it with her. This.... is amazing.

Goodbye, Friday!

</comment><comment><USER3> Multiple tens of hours of amazing YouTube content surrounding the effort and all of the spiffy things going on with Emscripten and such.

Having only briefly heard of the game when I was younger it is amazing to go through it and just how in depth it is. Had I seen this as a kid I would've freaked.

<comment><USER3> Also important to note this installs nicely as a mobile app and works completely offline!

</comment></comment><comment><USER4> oh my goooosh this is amazing. See: [https://blog.codinghorror.com/heres-the- programming-game-you...](https://blog.codinghorror.com/heres-the-programming- game-you-never-asked-for/) and specifically [http://www.slate.com/articles/technology/bitwise/2014/01/rob...](http://www.slate.com/articles/technology/bitwise/2014/01/robot_odyssey_the_hardest_computer_game_of_all_time.html)

<comment><USER5> From the Slate article:

 _" When Teri Perl described the project to legendary computer scientist Alan Kay, he said, "You're wasting your time. It can't be done." That is, the basic idea was simply too complex to run on an Apple home computer. When Robot Odyssey shipped, the company gave Wallace a plaque that said, "It can't be done. —Alan Kay.""_

That's an awesome story.

<comment><USER5> After posting that, I ran into this, which I feel obligated to post: the most recent comment on the article, apparently from Alan Kay, 6/16/2017 (the article was published 01/2014).

 _" A few corrections. (I was Chief Scientist of Atari at the time.) I told the TLC people that this was the greatest game concept that I'd ever seen (and still think so). I had loved Rocky's Boots and was really excited when Ann showed me the ideas for Robot Odyssey.

What I told her -- and it's clear she misunderstood -- was that scaling up the Rocky's Boots approach missed the point of "robots" and "computers" (meaning that robots should have a "no ceiling" range of being "really capable") and that programming was invented for computers for a reason.

I didn't say it couldn't be done -- I said it wouldn't work well enough for most potential users and players (and I believe that the sign they made was "Alan Kay says this won't work" (and if you think about it, it really didn't given what TLC was trying to do):

(a) I was very sure that the UI ideas they had wouldn't scale gracefully, and

(b) I was very sure that scaling logic up would quickly change the "bang per effort" ratio for the worse.

What I tried to get TLC to understand was that using some higher level language e.g. "nicer Logo" for programming the robot brains would revolutionize game design and playing, and would make Robot Odyssey a big hit.

After all these years I still think this is a wonderful concept, and is still waiting for the right designers and builders to marry the concept with the resources needed to make it great to use."_

<comment><USER6> We were discussing Robot Odyssey and SimCity a while back:

\----

[http://www.donhopkins.com/drupal/node/139](http://www.donhopkins.com/drupal/node/139)

Discussion with Alan Kay about Robot Odyssey

One of Alan Kay's favorite games is Robot Odyssey! I wrote to him:

From: Don Hopkins Subject: Robot Odyssey

One thing I've always wanted to do is a re-make of Robot Odyssey, with the full power of a real programming language underneath it, and lots of cool toys for the robots to play with! That was such a powerful concept for a game!

-Don

From: Alan Kay Subject: Robot Odyssey

I actually argued with him [Will Wright] and Maxis for not making SimCity very educational. E.g. the kids can't open the hood to see the assumptions made by SimCity (crime can be countered by more police stations) and try other assumptions (raise standard of living to counter crime) etc. I've never thought of it as a particularly good design for educational purposes.

However, I have exactly the opposite opinion of Robot Odyssey, which I thought was a brilliant concept when the TLC people brought it to me at Atari in the early 80s. (Rocky's Boots is pretty much my all time favorite for a great game that really teaches and also has a terrific intro to itself done in itself, etc. Warren Robinette is a very special designer.).

The big problem with Robot Odyssey (as I tried to explain to them) was that the circuits-programming didn't scale to the game. They really needed to move to something like an object-oriented event-driven Logo with symbolic scripting to allow the kids to really get into the wonderful possibilities for strategies and tactics. (BTW, Etoys is kind of an OO event-driven Logo (not an accident), and the next version of it has as a goal to be able to do Robot Odyssey in a reasonable way. This got delayed because of funding problems but we now have funding and are really going to do it this year. Want to help design and build it?)

\----

[http://www.donhopkins.com/drupal/node/134](http://www.donhopkins.com/drupal/node/134)

Alan Kay's ideas about SimCity for OLPC

I just received this exciting email from Alan Kay. I totally agree with the direction he wants to take SimCity for the OLPC!

-Don

From: Alan Kay To: Don Hopkins Date: 11/9/2007 6:14 PM Subject: SimCity for OLPC

Hi Don --

I'm writing to applaud you for your plans to reimplement SimCity for children on the OLPC.

My main complaint about this game has always been the rigidity, and sometimes stupidity, of its assumptions (counter crime with more police stations) and the opaqueness of its mechanism (children can't find out what its actual assumptions are, see what they look like, or change them to try other systems dynamics).

So I have used SimCity as an example of an anti-ed environment despite all the awards it has won. It's kind of an air-guitar environment.

In the past, I tried to get Maxis to take the actual (great) educational possibilities more seriously, but to no avail.

Going to Python can help a few areas of this, but a better abstraction for the heart of Sim-City would be a way to show its rules/heuristics in a readable and writable form. Both of these could be stylized to put them in the child's own thinking and doing world. For example, just the simple route of making a drag and drop scripting interface for Etoys allows children to make very readable and writeable scripts and helps the children concentrate on what they are trying to do. A carefully designed object system (that is filtered fro children) can expose the environment so they can really think about it.

I'm not at all suggesting that Etoys be used here, but I am suggesting that some deep design be done to come up with a "behavior modification interface" that allows real creativity on the part of the children. So it is much more than stringing black boxes together or having to deal with fragile procedurals.

I sense that you have some interests in making SimCity really a microworld for children's learning and exploration from reading your webpage.

Children in 4th - 6th grade can do a lot here if they are given a good UI and tools. So, we could think of part of this project as a "pre-Python" UI.

Scalability and non-scalability of ideas are interesting. Rocky's Boots is still one of the best ever games that provide profound learning experiences. The extension of this to Robot Odyssey didn't work because the logic and wires programming didn't scale well enough -- the bang per effort dropped off precipitously. I was Chief Scientist at Atari at that time (Warren Robbinet worked for me) and I worked with TLC to try to get them to realize that something like Logo, or even better, a rule-based robot programming system, was needed. The failure of Robot Odyssey really pained me because I thought that the concept of this game was one of the best ever (still is). But it just needed a much better notion of how the children were going to program the robots. I think the same goes for SimCity.

Cheers,

Alan

\----

[http://www.donhopkins.com/drupal/node/140](http://www.donhopkins.com/drupal/node/140)

Discussion with Alan Kay about Visual Programming

[...]

SimCity is similar but more pernicious. It is a black box of "soft somewhat arbitrary knowledge" that the children can't look at, question or change. For example, SC gets the players to discover that the way to counter rising crime is to put in more police stations. Most anthropologists, sociologists, psychologists, and economists would disagree violently. Alternate assumptions can't be tried, etc.

Both of these packages have won many "educational awards" from the pop culture, but in many ways they are anti-real-education because they miss what modern knowledge and thinking and epistemology are all about. This is why being "above threshold" and really understanding what this means is the deep key to making modern curricula and computer environments that will really help children lift themselves.

\----

[http://lists.laptop.org/pipermail/sugar/2007-March/001829.ht...](http://lists.laptop.org/pipermail/sugar/2007-March/001829.html)

[sugar] Ideas about SimCity gui, turtle graphics, and cellular automata

Instead of (or in addition to) using the mouse to paint with a palette of editing tools like Photoshop, the interface could be based on agents like logo turtles that represent the user on the map, which carry around SimCity editing tools that they can draw with. When you throw in a visual programming language, it leads the way to a Robot-Odyssey-esque version of SimCity!

[...]

Redesigning the SimCity user interface for the OLPC Don Hopkins

        Visual Programming

[...]

          Logo Turtles (as a generalization of the monster, tornado,
          helicopter, etc)

            Implement programmable logo turtles as agents that can move
            around on the map, sense it, and edit it.

    	Like Robot Odyssey agents, so you can go "inside" an agent,
    	and travel around with it, operate its controls, read its
    	sensors, and automate its behavior by wiring up visual programs
    	with logic and math and nested "ic chip" components.

    	Plug in graphics to represent the agent: use classic logo
    	turtle and SimCity sprites, but also allow kids to plug in
    	their own.
    	  SimCity sprites have 8 rotations.
    	  SVG or Cairo drawings can be rotated continuously.

            Re-implement the classic SimCity agents like the monster,
            tornado, helicopter, train, etc in terms of logo turtles, that
            kids can drive around, learn to use, open up and modify (by
            turning internal tuning knobs, or even rewiring).

    	Let kids reprogram the agents to do all kinds of other stuff.

    	Mobile robots, that you can double click to open up into
    	Robot-Odyssey-esque visual program editors.

    	Agents have local cellular-automata-like sensors to read
    	information about the current and surrounding tiles.

    	KidSim / Cocoa / StageCraft Creator let kids define visual
    	cellular automata rules by example, based on tile patterns and
    	rules. Show it a pattern that you want to match by selecting
    	an instance of that pattern in the world, then abstract it
    	with wildcards if necessary, then demonstrate the result you
    	want it to change the cell to in the next generation.

    	Sense high level information about zones and overlays, so the
    	agents can base their behavior on any aspect of the world
    	model.

    	  Support an extensible model by allowing users to add more
    	  layers.

    	    Add layers with arbitrary names and data types at
    	    different resolutions:

    	      byte, int, float, n-dimensional vector, color, boolean
    	      mask, musical note, dict, parametric field (i.e. perlin
    	      noise or other mathematical function) at each cell, etc.

    	Edit the world.

    	  All SimCity editing tools (including colored pens that draw
    	  on overlays) should be available to the agent.

    	  Enable users to plug in their own editing tools, that they
    	  can use themselves with the mouse, keyboard or game
    	  controller, or program agents to use to edit the map under
    	  program control.

          Robot Odyssey

            Build your own universal programmable editing tool.
    	Roll your own von Neuman Universal Constructor.
    	Smart robots you program to perform special purpose editing tasks.

    	The "Painter" picture editing program had a way of recording
    	and playing back high level editing commands, relative to the
    	current cursor position.

    	Remixing. Journaling. Programming by demonstration or example.
    	You could use a tape recorder to record a bunch of SimCity
    	editing commands that you act out (or you can just select them
    	from the journal), then you can play those tapes back with
    	relative coordinates, so they apply relative to where the
    	agent currently is on the map. You can copy and paste and cut
    	and splice any editing commands into tapes that you can use to
    	program the robot to play back in arbitrary sequences.

    	Program an urban sprawl development-bot to lay out entire
    	residential subdivisions, complete with zones, roads, parks and
    	wires. Then program a luddite roomba-bot that sucks them all
    	up and plants trees in their place.

    	This becomes really fun when we let players plug in their own
    	programmed zones for the robot to lay out, and layers of data
    	to control the robot's behavior, out of which they can program
    	their own cellular automata rules and games (like KidSim /
    	Cocoa / StageCraft Creator).

<comment><USER7> The page [http://www.donhopkins.com/drupal/node/140](http://www.donhopkins.com/drupal/node/140) links to [http://www.donhopkins.com/home/taxonomy.pdf](http://www.donhopkins.com/home/taxonomy.pdf) which is returning as "Not Found".

Would I be right in assuming this is the paper: [http://sites.fas.harvard.edu/~ext12366/readings/schmucker.pd...](http://sites.fas.harvard.edu/~ext12366/readings/schmucker.pdf)

It says "Work in Progress". Was your copy the same? Any idea if he finished it?

<comment><USER6> Oops, I moved that to a sub-directory, and it's the same as the one you found. And I put up a copy of the Fabrik paper that Alan sent me. Also be sure to check out Chaim Gingold's Gadget Background Survey that he wrote at HARC in 2017, which is much more up-to-date and comprehensive!

[http://www.donhopkins.com/home/documents/taxonomy.pdf](http://www.donhopkins.com/home/documents/taxonomy.pdf)

[http://www.donhopkins.com/home/Fabrik%20PE%20paper.pdf](http://www.donhopkins.com/home/Fabrik%20PE%20paper.pdf)

[http://chaim.io/download/Gingold%20(2017)%20Gadget%20(1)%20S...](http://chaim.io/download/Gingold%20\(2017\)%20Gadget%20\(1\)%20Survey.pdf)

\----

On 20 May 2018, at 10:08, Alan Kay wrote:

Hi Don

I recall "swiped pie menus" being used at Apple in the mid-80s (ca 86) in the Fabrik visual language project. I'm pretty sure that the invention of this UI at Apple was done by Dan Ingalls. I've attached one of the Fabrik papers that mentions this idea.

You will probably want to include this in your retrospective history of the the idea.

Cheers

Alan

\----

From: Don Hopkins Sent: Sunday, May 20, 2018 9:53 AM Subject: Re: Ready to publish "Pie Menus: A 30 Year Retrospective"

Thank you! I remember hearing the name Fabrik mentioned somewhere, but never found much to read about it so I don't know much about it.

I'll read up on it and integrate it into my article!

[https://medium.com/@donhopkins/pie- menus-936fed383ff1](https://medium.com/@donhopkins/pie-menus-936fed383ff1)

I really enjoyed this paper "A Taxonomy of Simulation Software: A work in progress" from Learning Technology Review by Kurt Schmucker at Apple. It covered many of my favorite systems.

[http://donhopkins.com/home/documents/taxonomy.pdf](http://donhopkins.com/home/documents/taxonomy.pdf)

It reminds me of the much more modern an comprehensive "Gadget Background Survey" that Chaim did at HARC, which includes your favorites Rockey's Boots and Robot Odyssey, and his amazing SimCity Reverse Diagrams and lots of great stuff I'd never seen before:

[http://chaim.io/download/Gingold%20(2017)%20Gadget%20(1)%20S...](http://chaim.io/download/Gingold%20\(2017\)%20Gadget%20\(1\)%20Survey.pdf)

I've also been greatly inspired by the systems described in the classic books "Visual Programming" by Nan C Shu, and "Watch What I Do: Programming by Demonstration" edited by Alan Cypher. Brad Myers wrote several articles in that about his stuff, like Peridot and Garnet (which I briefly worked on with him at CMU, and was very cool, but needed a bit more right brain graphic design if you know what I mean ;). To paraphrase Rumsfeld, "As you know, you go to screen with the graphics API you have, not the graphics API you might want or wish to have at a later time."

-Don

<comment><USER7> Thanks!

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I actually have the original box and disk on a shelf.

such great memories!!!!

</comment><comment><USER9> Wow, I spent so much time on this game. The minecraft of its era.

</comment><comment><USER10> OMG! I have been looking for this for years (edit: decades!!) but didn't know the name of it! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! THANK YOU! I am so happy!!

<comment><USER11> :D

Funny, I just ran this on an Apple for someone who wanted to experience it.

The intro is pure magic.

</comment></comment><comment><USER12> Gosh I played this so much as a kid. Got pretty far all on my own.

Somehow I'm dumber as an adult. :D

</comment><comment><USER13> I cannot recommend this enough. I loved playing this with my dad when I was a kid.

</comment><comment><USER14> does anyone know the name of the black and white adventure game on macintosh with a mouse and cheese?</comment>


Perspective: DigiPen Student Game Trailer for 2D/3D hybrid platformer - <AUTHOR> http://www.youtube.com/watch?v=SS4r9Fq3beU <comment><USER2> Echochrome meets Fez. Neat.

If I had just one piece of advice— make the trailer shorter and less cheesy (ie. drop the catchphrases).

Otherwise, would love to try it out.</comment>


Ask HN: When your friends ask "can you build me a website?" - <AUTHOR>

Hey HN,
It always happens, someone has an idea, and they want to create a website quickly and cheaply. So they turn to their techy friends, and ask you to do it!
Now, the majority of such sites are just a logo and some content, which they will produce themselves. Hence, my question is, rather than building and hosting a static site for them, where do you send them so they can do it themselves? Obviously there a huge number of options out there, but the ones I've come across all seem very crude.
I'm imagining something like Tumblr in terms of ease of use and customisable design, but without the blogging focus.
Would love to know! <comment><USER2> I'm surprised no one has mentioned YC-backed Weebly, which solves this exact problem:

<http://www.weebly.com/>

</comment><comment><USER3> <http://www.squarespace.com/> and <http://www.virb.com/> are going to have the best looking pre-defined templates. If this person is wanting something for a portfolio, <http://www.cargocollective.com/> has some good stuff.

<http://salon.io/> from a ShowHN yesterday is also in this realm. The landing page says it's for images/portfolios but their inline editor lets you do pretty much whatever.

</comment><comment><USER4> The competition is fierce, check out Smore.com and Onepagerapp.com. Also WordPress.com can be used for more specialized sites now, see WordPress.com/restaurants for example.

But if you can do better than that (or find a niche that is not being served), go for it!

</comment><comment><USER5> My startup, Plebu.com, is a website builder with less features. You can customize the design, add text pages, galleries, and a contact page. That's it. The sites you build are mobile friendly. Please let me know what you think.

</comment><comment><USER6> If they're looking for a more content heavy site rather than just a "face" for their B&M business, I'd point them to Wordpress, ideally hosting their own, but Wordpress.com offers hosted sites. The interface is easy to figure out and there's a ton of themes and plugins out there, as well as tutorials.

<comment><USER7> But good luck getting them out of there if they ever need it. It's such a bitch (just finished moving my friends cooking blog off there to a dedicated host). Also, even if you pay for their best plans they don't allow you to put ads on your site or install your own plugins. It's kind of a mess.

</comment></comment><comment><USER8> Agree with the others that this could be a great idea for a startup!

At the moment I just recommend setting up a WordPress site, it's pretty straight forward and can look good if themed properly etc.

</comment><comment><USER9> There you have it, an excellent idea for a startup! Nothing drastically "disruptive" but a viable business nonetheless :)

Regarding the service, I have yet to find one like this myself.

</comment><comment><USER10> Check out squarespace, they probably fit the bill.

</comment><comment><USER11> Unbounce.com</comment>


Anyone wanna team up for YC s-16? - <AUTHOR> Good full-stack engineer. Launched startups before. LF another engineer or good biz-dev. <comment><AUTHOR> txt 669-251-7789 if interested. Im at hackerdojo in Mountain View right now.

<comment><USER2> what stack do you use?</comment></comment>


Analyzing top four flaws in HTTP/2.0 [pdf] - <AUTHOR> http://www.imperva.com/docs/Imperva_HII_HTTP2.pdf <comment><USER2> it's a bit of a sidenote but after watching grpc documentation on one side and apple talks about http2 on the other, i've got the feeling that the "streaming" parts of http2 are seen very differently by the two companies.

on one side grpc stream are advertized as a websocket replacement, and on the other apple mentions that it's just a better, drop in, replacement for http1 , with a few additional features such as server push. But that the model remains a request/response one.

are we on the verge of experiencing implementation incompatibilities over this protocol ?

</comment><comment><USER3> Surprised worse performance over poor, flaky connections than http isn't in the top four things worth trying to mitigate.</comment>


The One Question Every Entrepreneur Should Ask Themselves - <AUTHOR> http://founderdating.com/the-one-question-every-entrepreneur-should-ask-themself/

<comment><USER2> I think this is a question everyone should ask themselves periodically. Everyone should take a moment to reflect on what they're doing, why they're doing it, is it worth it? Sort of looking up from the path you're on to look ahead and make sure you're going the direction you want to go.

</comment><comment><USER3> These rough times are automatic reminders to ask this question... what can be even more dangerous is when things are going _really_ well according to external measurements and an entrepreneur doesn't feel like they _can_ ask that question.

</comment><comment><USER4> Not only do I think every entrepreneur should ask them selves this but I think if you're not doing what you love, and you know what that is (whether your an entrepreneur or not) the question is "What's stopping you?".</comment>


Show HN: Zenlist – Simplify your day with 3 goals - <AUTHOR> http://zenlist.co

<comment><AUTHOR> I've been reading about Zen, Buddhism, and Sep Kamvar's essay ([http://farmerandfarmer.org/mastery/printable.html](http://farmerandfarmer.org/mastery/printable.html)) on having tools that are self-limiting in nature.

So, I made this to help distill my day down to 3 goals set every morning. Go through your day, check them off as you go and then go enjoy life. You can see when you finished each goal.

It's super early right now. I'll be adding login shortly to allow syncing and daily/weekly progress emails.

</comment><comment><USER2> Will you be adding syncing soon?

<comment><AUTHOR> Yup, working on it!</comment></comment>


Show HN: Studiokit-Net-JS – Declarative, Configurable API Access for Redux - <AUTHOR> https://github.com/purdue-tlt/studiokit-net-js <comment><AUTHOR> This is a library we built to simplify access to RESTful APIs in applications using Redux. After a few apps built using thunks for RESTful access, we wanted something that was a bit more opinionated and required less ceremony. There is also an accompanying library, (studiokit-auth-js) [[https://github.com/purdue- tlt/studiokit-auth-js](https://github.com/purdue-tlt/studiokit-auth-js)], that sits on top of this library and handles authentication and bearer token management. We've used it in production at Purdue for about 18 months now. As the original architect of this library, I thought I'd post it in the event it's useful to others.</comment>


People who own businesses should not act like assholes - <AUTHOR> https://blog.kamens.us/2019/01/26/people-who-own-businesses-should-not-act-like-assholes/ <comment><USER2> To be honest, it was the author who I felt like, while perhaps not an asshole, showed a pretty intense level of oblivious immaturity.

I get it, the other guy was a jerk, especially to someone who was maintaining an add-on for free. But at the point where the author responded with the "Sorry, I don't agree with that," he should have left it at that and moved on. Who cares what some rando on the internet thinks about your product? Instead the author decided to go into vindictive mode and leave the negative review, and then leave this whole blog post, which does the author no favors. To be honest, to me the cringiest part of this article is it feels like the author is trying to project how virtuous he is, when, at least for me, it had the opposite effect.

<comment><USER3> Totally my thoughts. Plus I thought the email asking him to take down the reviews was fair and respectfully written. And leaving reviews for businesses you've not been a customer of is in bad faith.

<comment><USER4> For me the author can be considered a supplier instead of a customer. Maybe they don't have a legal contract stating the business relationship. But the business owner is using both the software and support of the author. That it is free shouldn't make a difference here.

<comment><USER5> Not really; the user was clearly using the addon privately, not for his busyness, so he wasn't really supplying the busyness itself.

</comment></comment></comment></comment><comment><USER6> I've worked on FOSS before and got a handful of messages from people like this. They're very very few and far between, but I always found them fascinating because of how much it broke their worldviews.

They're usually people who control enough money that they can 'throw money at a problem' and it'll largely diminish or go away. They usually find a desperate enough vendor, employee, or subcontractor who will deal with their attitudes for enough cash, or quickly fire them if they can't.

They usually have the inverse attitude towards customers giving them money -- that is, they believe it's also part of _their_ job to take abuse from those willing to buy.

So, most of their business transactions involve them giving or taking abuse with the threat of financial withdrawal if the abuse isn't accepted. It's how they define transactions. "Who's the abuser, who's the abusee?" The answer depends, strictly, on which way the money is flowing.

FOSS breaks their worldview because they're not the customer in the same way. They don't have that leverage. They're just an angry person on the street asking you to help them carry their groceries in, and at some point, if they realize it, it's priceless.

<comment><USER7> What you are describing is to some level the essence of consulting/contracting or at least folks that are in that industry. This type of abuser/abusee relationship in business is prevalent all over the place especially to defer blame when things go south (paying for someone to essentially take the blame) and also defer decision making . thanks for the food for thought.

</comment></comment><comment><USER8> The Internet over the years has taught me the fine art of non-engagement. Just... stop. The instant it starts going down a bad road, stop. Don't send another message, or send a blithely positive one just to blunt the energy and move on.

Seems so simple, but I think the need for closure is what keeps many from being able to do this. But it's dangerous. The Internet is dangerous. All it takes is for one person, it doesn't even have to be a party to the interaction, to ruin your day if not your life.

Legal threats? Please. This guy might SWAT you.

<comment><USER9> I agree. Don't poke the internet bear. You might not fully understand the level of crazy on the other end of the router.

<comment><USER10> I've been poking the internet bear for over 30 years. That's quite obvious if you read the other articles on my blog. I'm not one to back down from a fight when I think someone is in the wrong. And yes, sometimes I've paid for that, such as when a Usenet kook tried to get me fired from my job for having the temerity to disagree with him. But overall I'd rather be the guy who stood up for what I believed was right than the guy who didn't. As always, YMMV.

<comment><USER8> 30 years ago, I'd have been right there with you. Nowadays? Oh hell no. The threat landscape has changed.

</comment></comment></comment></comment><comment><USER10> Wow, out of all the things I've written on my blog, _this_ makes it onto the front page of HN. How droll.

BTW, just to be clear, I wasn't the one who posted the link here. I don't think it's particular relevant to what HN is for, but _shrug_ apparently somebody did.

This is all I'm going to have to say about the attacks on my character here...

When some stranger on the internet acts like a dick toward me in private emails, I call it out -- in private emails.

When I decide that someone has acted sufficiently like a dick toward me in private emails, I put them in my burn-before-read file, and I tell them so, because I don't believe in ghosting people.

That's usually the end of it.

When someone, having been told that they are now in my burn-before-read file, decides they're going to go out of their way to email me from a different email address and harass me some more, then that's just what it is -- harassment. If they'll do it to me, they'll do it to other people, and I believe that calling out harassers publicly is, in fact, the right thing to do. That's why I posted the reviews.

I disagree with the claim made below that it was "bad faith" to do so, because having interacted with the business owner, I was in fact in a position to know his character and how he treats people, and that is certainly an appropriate thing to tell people about who might be considering whether to patronize a business.

The last letter I got from them, asking me take down the reviews, was not "fair." It was an attempt to intimidate me into taking down my reviews. It was, in fact, a classic example of an attempt at such intimidation. If you don't recognize it as such, try reading @Popehat a bit. It is perfectly appropriate to respond with public shaming to someone trying to intimidate you into taking down content you posted about them that they don't like (again, see @Popehat). Ever heard of the Streisand effect?

Finally, as I believe I made quite clear in the blog posting, I would have taken down all of the reviews and the blog posting itself in a second if they had simply apologized. I still would, if they apologized today. There's no expiration date on that offer.

<comment><USER11> What about "mark as spam" and move on? I maintain a few OSS projects and, occasionally, get some of those quite often. I just move on. Or...ask for $(2|5|10)k to do it for him - that also works

<comment><USER10> I mean, "mark as spam" is basically "burn before read," which is what I did to him. The difference, I guess, is that I told him I was doing it, because, like I said before, I think ghosting people is rude. YMMV.

Regarding quoting a ridiculously large number to add a requested feature, yes, sometimes I do that, and sometimes people even take me up on it and I end up both adding useful functionality to the software that everyone gets to benefit from, and making some money out of it as well. But I won't do that when the feature being requested isn't actually the right way to solve the problem. I've explained in another comment why it wasn't in this case. I'm not going to let someone pay me to make my software worse, and if you quote a price to scare someone off, sometimes they surprise you and say yes.

</comment></comment></comment><comment><USER12> I mean no one really comes out looking good in this story.

You don't trump an asshole by out-assholing him

<comment><USER13> Yep, it takes two to keep the drama going.

If you want to fight, argue. If you want to end a fight, empathize.

People tend to think there's right/wrong in a fight when it's almost always emotional and can't be proven or justified with logic.

</comment></comment><comment><USER14> It's a beautiful story where one asshole meets another.

<comment><USER15> It's incredible the author was so proud of being an asshole that he wrote a blog post about it.

<comment><USER16> To be fair I've probably had the odd time I've been like that too!

</comment></comment></comment><comment><USER11> Only few people can act like Linus and get away with it (and for a good reason). HN is the worst place to brag about stuff like this. I'm a person with limited patience and it's toxic for my business for me to deal with clients that's why only my partner deals with it while I stay on the technical part. It's worked wonders. It's no shame in admitting you're not the guy to do it all.

</comment><comment><USER17> "You're not wrong Walter, you're just an asshole." \- The Dude.

I often want to vent about shite like this, so I feel for you. It sucks to get treated like dirt and just have to swallow it, else risk a bad-internet-wrap for (rightfully or wrongfully) putting someone in their place.

But outside of an anonymous post, which is not nearly was cathartic, it's better to keep ones mouth shut in an ever so politically correct environment, dollar wise speaking anyways. People speak about how wrong bullying is, but then frown upon punching back. Unfortunately, a good counter punch is often the quickest resolution.

Good for you for standing up for yourself. I personally would hire you for being someone that tells it how it is, but most corporate HR teams may frown upon it, expecting you to be "trouble".

</comment><comment><USER18> Can feel for the author. I have several open source projects and some users are very entitled and demanding. Some guy sent me an email demanding something and when I didn't respond fast enough (was sleeping during the night), gave me an 1-star rating couple hours later. Some would add, "1-star rating unless such and such features are added." Yeah right, like I give a shit about rating, especially on an open source project I publish out of my generosity.

</comment><comment><USER5> I honestly don't understand how they could have spelled that street name wrong.

<comment><USER10> I mean, she spelled my name wrong to. She spelled her own email address differently in two places. Attention to detail does not appear to be this person's strong suit.</comment></comment>