Pessimism about parallelism - <AUTHOR> http://esr.ibiblio.org/?p=8223 <comment><USER2> This pessimism about whether software can effectively use CPU cores beyond two is easily refuted with a simple observation: High-end games are now running pretty close to 100% _CPU_ utilization on octa-core console hardware.

Parallelizing our software is mostly a question of investment at this point. In my experience, there isn't a lot of software that wouldn't benefit from CPU parallelism in some way or another. The bigger issues are (a) that a lot of software simply doesn't prioritize performance, for both good and bad reasons, and (b) that a lot of foundational software has been in maintenance mode for years and there isn't enough interest or funding to improve it.

<comment><USER3> > Parallelizing our software is mostly a question of investment at this point.

This just isn't true - for some algorithms we are simply not aware of any way to effectively parallelise. No amount of investment is going to suddenly come up with a solution to that problem.

We're just lucky that games are easy to parallelise.

<comment><USER4> >This just isn't true - for some algorithms we are simply not aware of any way to effectively parallelise.

That just means we need new algorithms, different habits, and languages which make conncurency more accessible.

The vast majority of research into algorithms and computer science in general over the past 75 yeas has focused on single threaded linear computation.

I think the thing we can do right now is spin up threads as often as possible. It should be your default approach when writing a new function to consider how to make it functionally pure. If you can, spin that out into a new thread (Depending on the overhead in your language). Even If you can't make it functionally pure there still a good chance you can write it in a way that prevents a potential deadlock or race condition.

My argument is basically this:

1) we will find more algorithms that are better at exploiting concurrent resources.

2) as programmers we need to change our default behavior from writing linear programs and then trying to make them take advantage of concurrent hardware to writing concurrent solutions at every level of application design by default from the ground up.

<comment><USER5> > as programmers we need to change our default behavior from writing linear > programs and then trying to make them take advantage of concurrent hardware > to writing concurrent solutions at every level of application design by > default from the ground up.

With parallelism in particular, this is quite easy. Haskell's accelerate library allows you to write code using maps/folds which then runs on multiple CPU cores or a GPU (J does something similar but it's CPU-bound).

It turns out that maps and fold can already handle quite a lot.

With concurrency - well, concurrency is hard, and many basic data structures are in fact quite recent!

</comment></comment></comment></comment><comment> david-gpu > Your odds of being able to apply parallel-computing techniques to a problem > are inversely proportional to the degree of irreducible semantic nonlocality > in your input data.

That's not right. GPUs do pretty well at tasks that have poor locality compared to CPUs, as long as there's a lot of parallelism to be exploited -- see for example ray tracing.

The reason for this is that CPUs depend on their large caches, which are useless when there is little locality, while GPUs simply switch to another warp while data is being loaded from memory, and they have much higher memory bandwidth anyway.

Also, GPUs are distinctively _not_ systolic arrays. Hennesy's "Computer Architecture: a quantitative approach" has a good primer on Single instruction Multiple Threads (SIMT) architectures typically seen in GPUs.

<comment><USER6> SIMT architecture is why GPUs are actually not that great for ray tracing. In a nontrivial scene, some rays will bounce more times than others, and that means that the whole parallel execution unit is tied up until every single ray terminates. (The other "threads" essentially execute NOP instructions in the meantime.)

Despite what Nvidia would have you believe, a lot of VFX rendering is done on CPUs, not GPUs, and this is one of the reasons why. (For example, last I heard, Pixar does all their render work on Intel Xeons.)

</comment></comment><comment><USER7> I've become parallelism optimist thanks to Rust.

The borrow checker basically doesn't even have a concept of a single-threaded program. Everything you write in Rust is required to be thread-safe. This makes Rust appear more difficult, but it's just front-loading the effort required to make the whole program thread-safe (which to me felt nearly impossible for non-trivial C programs). From there you can sprinkle Rayon all over the place, send async work over channels, etc.

The piece I'm missing is "Amdahl's-law-aware" profiler that would show not just where any code spends time, but only where the unparallelized bottlenecks spend time.

<comment><USER5> Rust is nice, but it's missing the ease of parallelism you get from things like Haskell's accelerate or repa.

I prefer it for concurrency, but it's not a panacea. In particular, laziness is necessary for efficient immutable data structures, and immutable structures are a nice way to avoid some of the problems inherent in writing concurrent programs.

<comment><USER8> Is this actually true? Clojure is eager and has efficient immutable data structures.

<comment><USER5> Some immutable data structures must be implemented strictly, others lazily.

There are known algorithms/data structures where you either have to use immutability or laziness in order to get an efficient implementation.

</comment></comment></comment></comment><comment><USER9> Assertions about the difficulty of implementing effective parallelism reflects assumptions about software architecture that are common but not universal. The tools most people reach for tend to be either multithreaded locking of some type or functional "everything is immutable" style, neither of which scale well on real hardware. Complex applications that do use large numbers of cores efficiently use software architecture originally developed on supercomputers but is equally suited to ordinary machines with many cores: fine-grained latency hiding. In practice, this means extremely cheap logical concurrency, like proper coroutines, combined with a latency-aware scheduler (the harder part). This may not be "parallelism" in some strict sense but it has the same effect in terms of utilization and is sometimes used on supercomputers to maximize throughput.

Programming languages often have some level of support for necessary primitives, such as goroutines, but then hide them behind an unsuitable scheduler. On the machines where latency-hiding was originally developed as an architecture (notably Tera's MTA), optimal scheduling was done by the hardware itself which had perfect visibility into relative latency with no overhead. Things are not that simple on x86/ARM. If you want to implement effective latency-hiding, you'll be implementing an equivalent scheduler in software, and often by inference because sometimes the only way to know the true latency of something is by doing it. I don't think it is that difficult but schedule design is not something most programmers know how to do well -- it is magic buried in operating systems and libraries. Nonetheless, you see more examples of this kind of software design for performance reasons.

There are very few real-world applications that are so serial that latency- hiding is not effective at using all available cores, particularly in the server realm where the workload is inherently concurrent. The original target application for latency-hiding architectures was scaling graph analytics, which are often not amenable to more classical embarrassing parallelism.

<comment><USER10> My understanding of AAA game engine coding concurs with this analysis. It's become increasingly common to get more frames of graphics rendered in the same time span by kicking off the next frame before the first has finished, which can be extrapolated to a preconfigured buffer of many frames latency, similar to what is seen today with digital audio. Since game programmers already have to breathe concurrency problems just to achieve real-time stateful systems, and even more so to give an online multiplayer experience, this isn't a huge leap: many issues of this type have been resolved from the beginning with a double buffer or an intentional frame of latency.

That said, the benefits of scaling up runtime game performance are diminishing as asset costs increasingly dominate the discussion: the extra scene detail comes with a price to the production cycle, and that may be what breaks the games-graphics-tech alliance before any fundamental limits to the technology are reached.

</comment></comment><comment><USER11> > 3\. Consequently, most of the processing units now deployed in 4-core-and-up > machines are doing nothing most of the time but generating waste heat.

While it's true that most of the time a 4-core or more machine has idle cores, I'm not convinced this is a problem.

Yes, most of the time spent on a modern computer consists of doing things that aren't particularly computationally expensive. But our perception of the speed of a personal computer isn't based on some kind of steady state performance on batch jobs, I think that worst-case latency is a lot closer to how we perceive the speed of a computer. Of course, in specialized domains like HPC the steady state performance on batch jobs is important, but this article seems to be discussing personal computers.

Even if they come up rarely, you still hit computational bottlenecks at times when latency is important. Whether it's some bloated web page, some big Excel computation, a compilation for us programmers, or the like, there are plenty of times where you hit some kind of bottleneck in which you can make effective use of all of your cores, so even if 99% of the time you have idle cores, that 1% of the time can shape your perception of how fast your computer is.

And the fact that most of your CPUs are idle most of the time doesn't mean you are wasting power. Modern CPU cores conserve power when idle, via P-States (frequency scaling) and C-States (turning off idle cores).

It is probably true that there is a lot of software out there which could take better advantage of parallelism but doesn't, in some cases due to performance not being prioritized, in some cases due to some essential complexity of parallelizing the code, but also in many cases due to accidental complexity of parallelizing code due to unsafe languages like C and C++ that can make it quite difficult to refactor serial code into parallel without worrying about introducing significant bugs.

</comment><comment><USER12> I'm more optimistic about parallelism, and multi cores in general.

Multi cores could have other advantages than parallelism. On mobile, if there's 8 cores, and if the device/os is able to figure out the current load, and based on that turn off up to 7 of those 8 cores, the energy savings could be significant on the CPU side. (Depending on how much energy CPU uses compared to the radio or screen on a smartphone)

Another obvious advantage as pointed as the end of the article is individual processes running independent work next to each other. Such embarrassingly parallel work can keep all the CPU busy pretty well.

</comment><comment><USER13> >>We can sum this up with a heuristic: Your odds of being able to apply parallel-computing techniques to a problem are inversely proportional to the degree of irreducible semantic nonlocality in your input data.

That's only true at the very high end, where you have so much data that it's not all physically close and transport time is relevant.

With the reality of stalled clock speeds and multi-core systems, people are finding the parallelism in many applications. Scaling really appears to be coming to an end - if not at 7nm then at 5 (or what they'll call 5). I don't think we're going to meaningfully exhaust our ability to exploit parallelism before then. They're not used in every application but they are used by enough things that we should have them.

</comment><comment><USER14> The problem is the inverse. The problem is that there is not enough parallelism in hardware. Single digit core counts really are not that significantly parallel especially when there is a shared main memory bandwidth. An AVX2 code transform will give you more performance than a 8 core hyperthreaded code transform, without all the latency and coordination.

<comment><USER15> On the other hand, Intel tried lots of (slightly slower) cores with the Phi series - And part of the reason for dropping/sidelining was that although they are an interesting platform for experiments, nobody could work out how to effectively use that many parallel cores with all of the other constraints, like memory bandwidth.

<comment><USER14> I highly doubt that the scientific community "could not work out how to effectively use that many parallel core" given that the gaming community effectively used the SPE cores of the PS3. These cores are considerably more difficult to use as they only have small local memory and have strong alignment constraints. If the phi does not have enough bandwidth to service the cores that would simply mean it is not a parallel architecture.

</comment></comment></comment><comment><USER16> > 3\. Consequently, most of the processing units now deployed in 4-core-and-up > machines are doing nothing most of the time but generating waste heat.

The cores are not being wasted because we don't know how to parallelize computations - as evident by the scientific software run for high performance computing applications, which scales upto million cores.

Business decisions are responsible for these wastages. For example, many engineering software are licensed per core - so if you are using it on 16 cores, it costs A LOT more than using it on 4 cores. In some cases the licensing costs of the engineering software are higher than the cost of the hardware. So no one cares if few cores are wasted.

<comment><USER17> This would make it a much better idea to run on a machine with only the cores you are using, though, yes?

<comment><USER18> At some point you want those 16 cores so MS Word will have an acceptable performance, even if your auto-routing electrical CAD uses just 1 of them to solve its own NP-hard problem.

</comment></comment></comment><comment><USER19> I'm less pessimistic. IMHO an increasingly big factor is the amount of single core hardware out there that people have tended to optimize for at the cost of not properly utilizing multi core machines for the past decade or so. As quad core CPUs are becoming more or less standard, this is changing already. With 16-32 core CPUs becoming more commom, the pressure is on to utilize those as well.

The use cases are much broader than gaming. I'd argue any kind of creative work involving graphics, audio, video, already utilizes any amount of CPU you can throw at it. Also, software like Firefox is leveraging multiple cores with their ongoing Rust rewrite of Firefox. I tend to use multiple CPUs when running software builds. There is a lot UI code that these days is written asynchronously from the ground up; meaning utilizing multiple CPUs is less of a big deal than it used to be.

But yes, you need langauges, frameworks, drivers, operating systems, etc. that can facilitate this. I'd say there is quite bit of room for improvement here still.

</comment><comment><USER18> Most desktop software does not use more than 1 core because most desktop software does not need anything near 1 full core. How much processing can it take to show you a button?

That does not change the fact that some software does need more, and people are wise to dimension their computers taking the largest usual load into account, not the average one.

That said, the point about memory locality is good. It is just not as important as the author makes - data tends to have locality, even physics pushes it there. But the point about non-parallelizable algorithms isn't good; who cares about the property of your algorithm? If the problems allow for parallelism (with local data), dump the algorithm and get one that scales.

Also interestingly, the authors does bother to link the limits to the von Neumann architecture, but didn't think about using the extra cores to JIT- compile the binaries into some other architecture...

<comment><USER20> > Most desktop software does not use more than 1 core because most desktop > software does not need anything near 1 full core. How much processing can it > take to show you a button?

It seems like this ought to be true but in practice it's not, though the problem appears to be more due to developers not paying enough attention to performance than to fundamental limitations of the hardware. I can think of very few applications that I use on a day to day basis that do not have multiple areas where I wish they performed better.

</comment></comment><comment><USER21> I'm not sure what the takeaway here is. If desktop users don't need (or can't use) more cores, then don't get them - and call an end to the periodic performance improvements, because CPUs won't get faster without more cores. Maybe that's fine.

On the other side, high performance computing demands more computational power, and the only promising path forward (at this time) is parallelism. I'm not motivated by optimism, but by pragmatism.

As a sidenote, I don't understand this section:

> We look at computing for graphics, neural nets, signal processing, and > Bitcoin mining, and we see a pattern: parallelizing algorithms work best on > hardware that is (a) specifically designed to execute them, and (b) can't do > anything else!

The same hardware is used for all of these things, and it was only (arguably) designed specifically for graphics (and even there "specific" is not certain).

<comment><USER22> "and the only promising path forward (at this time) is parallelism."

Don't forget the FPGA's, esp if bundled with CPU. They still partly work by parallelism but I think reconfigurable hardware deserves its own mention.

</comment></comment><comment><USER23> > We know this because there is plenty of real-world evidence that debugging > implementations of parallelizing code is worse than merely _difficult_ for > humans. Race conditions, deadlocks, livelocks, and insidious data corruption > due to subtly unsafe orders of operation plague all such attempts.

None of these problems have anything to do with parallelism. But everything with "shared memory multithreading". There are plenty of sane concurrency models implementations out there. Which brings me to this part:

> But the truth is, we don't really know what the "right" language primitives > are for parallelism on von-Neuman-architecture computers.

We do know what the right language primitives are. Well, at least if you follow concurrency and distributed systems, where it's not even an important question anymore, you just stick to actor model as a default choice and stop caring about these things.

<comment><USER24> >Race conditions, deadlocks, livelocks

These have nothing to do with shared memory multithreading. You can easily have all of these with shared nothing distributed systems.

>and insidious data corruption due to subtly unsafe orders of operation

I'll give you this though.

<comment><USER23> That's stretching it quite a bit. You can implement shared memory multithreading on top of actor model and have all of the same issues. If you don't do that though, you won't have those issues. Same way that you can implement memory unsafe primitives on top of memory safe ones.

<comment><USER24> I have seen deadlocks and race conditions in non shared memory concurrent systems many times. They are no way exclusive of shared memory systems or even more common. They have nothing to do with shared memory and everything to do with message ordering.

<comment><USER23> It doesn't have to be shared memory specifically, but it has to be concurrent use of something shared even if that something is completely virtual and only exists in your mind. Which then forces you to synchronize access to that something and deal with all those problems. It's not about message ordering though, not unless synchronization is involved.

</comment></comment></comment></comment></comment><comment><USER25> Depth First Search is not parallelizable at all? Provably so? Just divvy up subtrees.

<comment><USER26> I'm assuming they mean actually Depth First, where splitting up a tree and traversing branches in parallel violates the "First" part.

It's a bit contrived, because obviously the name implies that it's sequential. But yeah, sometimes that's precisely what you need.

<comment><USER25> Yes. I guess the divvying up is more like breadth first. Most cases where I would use DFS this would work.

<comment><USER6> Nothing that processes nodes in parallel can guarantee either correct depth first or breadth first ordering.

That said, it's easy enough to get _effectively_ correct ordering by reassembling the results in the correct order as the workers finish.

</comment></comment></comment></comment><comment><USER27> Well maybe not in desktops, but don't you think that mobile devices (even micro controllers, like ESP8266) have a lot to benefit from multi-core, even for just regular apps that have nothing to do with number crunching/gaming etc.?

<comment><USER28> There's probably still plenty of scope for increasing single-core performance on devices like that.

<comment><USER27> Well here's the thing though, I don't feel like parallelism is just about speed. I for one like the idea of being able doing 10 things at once, and all tasks running at the same speed. It's hard to do with current software, yes. But there a lot of room for improvement, no?

<comment><USER28> If you make the processor 10x faster, then you can effectively do 10 things at once without having multiple cores.

<comment> ben-schaaf This isn't quite true. There's a lot more to CPU performance than how fast it can process instructions. Someone configured Intel's 9900k at 500mhz 8 cores and compared it to 4Ghz 1 core. The actual performance characteristics are vastly different. If I had to choose between 10x more cores or 10x faster cores, I'd choose more cores.

<comment><USER6> I'm having trouble imagining a performance benefit to two (otherwise identical) 1ghz cores over one 2ghz core, unless:

1\. The two processes cause frequent evictions of the CPU cache in some way that two cores can mitigate by having separate caches.

2\. You are able to pin a process to a CPU core, and eliminate all the overhead of running the process scheduler.

I would be curious to see the benchmark you're referring to. My gut tells me that the performance differences come from comparing different processor families.

<comment><USER29> The faster your core, the more sensitive you are to latency, even if you have infinite throughput. Say your DRAM has a latency of 65ns - on a single 2ghz core, an L3 cache miss is going to be "twice" as expensive in terms of clock cycles (130) as it would be on a 1ghz core (65).

So, to take a super contrived example, if you have a parallel program that needs to run 1B cycles worth of instructions with 1M worth of L3 cache misses. On a single 2ghz core that might take:

(2B cycles + 130 cycles / cache miss * 1M cache misses) = 2130 M cycles (1.065 seconds @ 2ghz)

On a dual 1ghz core, both _sharing_ a single L3 cache of the same size (so same number of L3 cache misses), that might take:

(2B cycles + 65 cycles / cache miss * 1M cache misses) = 2065 M cycles (1.0325 seconds @ 2x1ghz)

Which is slightly faster. As long as you're bound by latency rather than throughput, and can perfectly parallelize the problem, more cores instead of more raw clock speed will win out, even with identical hardware and the two cores actually sharing some stuff (the L3 cache) and ignoring the bonuses of fewer L1/L2 cache misses (because they aren't shared, "doubling" your L1/L2 cache.) The machine I'm typing this from has 4MB of L3 cache and I frequently deal with hundreds of gigs of I/O. Suffice it to say, there are a _lot_ of L3 cache misses.

Moving away from identical hardware - slower cores can get away with less speculative execution / shorter instruction pipelines, which make things like branch mispredictions cheaper in terms of cycle counts as well. This is why modern GPUs end up with hundreds of cores getting up into the 1Ghz range or so. They deal with embarrassingly parallel workloads, and can get better performance by upping core counts than they can by upping clock speeds.

<comment><USER6> It seems to me that the speed increase in your example comes from having twice the cache and therefore half the misses. You can do that without adding cores. (Barring edge cases where two threads use different pages that happen to share the same cache line.)

As for reducing the need for speculative execution: You're just replacing implicit parallelism with explicit parallelism. Whether or not that is a win depends on the workload and the competency of your developers. :-)

<comment><USER29> > It seems to me that the speed increase in your example comes from having > twice the cache and therefore half the misses.

My math assumed a share L3 cache of the same size, no "twice the cache", no "half the misses". _Same number_ of misses, but each miss is effectively half as costly, because it's only stalling half your processing power (one of your two 1 Ghz cores) for X number of nanoseconds instead of all of it (your single 2 Ghz core).

> As for reducing the need for speculative execution: You're just replacing > implicit parallelism with explicit parallelism.

Yes and no. If you're already explicitly parallel (more and more common), you're just eliminating a redundant implicit mechanism that's based on frequently wrong branch prediction heuristics. One can optimize for those, but then one can argue just how "implicit" it really is...

> Whether or not that is a win depends on the workload and the competency of > your developers. :-)

Of course. But there's a lot of embarrassingly parallel work out there, and improving building blocks, that don't take a geniuses to operate. Pixel shaders, farming video frames out to render farms, compiling separate C++ TUs... these are all things already made explicitly parallel on my behalf. Really maxing out the performance of a single modern ~4 GHz core is no simple feat either.

<comment><USER6> >Same number of misses, but each miss is effectively half as costly

Wow, I'm still trying to wrap my head around that.

I was going to argue that in cases where there's no way to split an algorithm across multiple threads without extremely frequent IPC, pipelining can probably get better performance than multiple cores, but then I realized that I have absolutely nothing to base that claim on.

I still wouldn't opt for more cores rather than higher clock speed without first trying to benchmark my expected workloads, but you have given me some very interesting things to think about.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> Seems like the solution is "the Unix way": Use a lot of little, single-purpose applications for competing larger tasks. That way you can let the OS worry about the parallelization.

Even if you're making a large, multi-purpose app like, say, a spreadsheet you could still subdivide zillions of little tasks into their own applications. On an OS this makes little sense because of the overhead associated with spawning new processes but on Linux it'd be great.

<comment><USER31> > you could still subdivide zillions of little tasks into their own > applications.

This is the approach Rust+Rayon are taking. Rust is in a good position to enable this because of language-level guarantees. Using "a lot of little, single-purpose" tasks means that each task has to own its memory; Unix of course enforces this separation, but this comes with some overhead. Language- level discipline can achieve much the same thing, more efficiently.

</comment></comment><comment><USER32> I've used satisfiability solvers, but I don't know enough about their internals to evaluate ESR's claim that satisfiability is _intrinsically_ serial. ESR's argument seems to hinge on this idea, that regardless of how well you handle parallelism, it's not going to help with certain tasks.

<comment> alan-crowe If I had to write a SAT solver to use lots of cores on an arbitrary boolean formula, I would farm out the work like this:

This walk the tree to find the variable, X, that occurs most often. There is a weighting issue. Occurrences higher up the tree count more.

Then I would create two expressions by substituting X = true and X = false.

Now two cores can race to see which can find a satisfying assignment first. Clearly this division can be applied recursively until all the cores are busy.

<comment><USER32> This is appealing, but I think you're only going to have full utilization for a short time? Many of your partitions of the problem are going to come back unsatisfiable, and then those cores go idle.

<comment> Const-me I have recently parallelized 3D flood fill algorithm, it's essentially a graph search on a 3D grid of nodes. More precisely, the problem is known as connected-component labeling: [https://en.wikipedia.org/wiki/Connected- component_labeling](https://en.wikipedia.org/wiki/Connected- component_labeling)

The solution is to keep partitioning until you saturate all cores. As soon as all saturated, stop partitioning and compute. As soon as any task finished, resume partitioning.

On the lower level, I used a thread pool. BTW, the infrastructure for that is built-in in Windows, see SubmitThreadpoolWork API: [https://docs.microsoft.com/en- us/windows/desktop/api/threadp...](https://docs.microsoft.com/en- us/windows/desktop/api/threadpoolapiset/nf-threadpoolapiset- submitthreadpoolwork)

</comment></comment></comment></comment><comment><USER17> All interesting, but if we're talking about typical laptop/desktop users, beside the point, I think. The reality is that the entire computer's performance is not the bottleneck, for most of what a typical user is doing, most of the time. The limitation on performance is either: 1) in the user's head (e.g. a word processor and an author) 2) in the network the computer is attached to (much of what is done on the web) Getting faster/better performance out of your laptop/desktop won't help any, for the reason that your computer's performance is already not the limiting factor, for most of what a typical user is doing. Although, this does reinforce the point that adding even more cores to a typical user's laptop/desktop, isn't really accomplishing much, but for much simpler reasons than the issues discussed in the article.

<comment><USER33> 3) in the storage

4) in the antivirus insisting on chewing each piece of IO very slowly in case it might have a virus

</comment></comment><comment><USER34> > I coined the term "SICK algorithm", with the SICK expanded to "Serial, > Intrinscally – Cope, Kiddo!"

Not only is that awful, but something is only "coined" if other people actually use it. You can just say "I will coin this!".

</comment><comment><USER35> " _My regulars include a lot of people who are likely to be able to comment intelligently on this suspicion. It will be interesting to see what they have to say._ "

</comment><comment><USER36> ESR doesn't know of the Actor programming model. Intersting. In all honesty, neither did I until 16 months ago. Now I'm transitioning our parallel code to an Actor model.

<comment><USER22> Check out Pony language. It's like Rust for Actor-based programming. Wallaroo uses it in their production database. So, it's probably decent quality for a new language.

[https://www.ponylang.io/discover/#what-is- pony](https://www.ponylang.io/discover/#what-is-pony)

</comment></comment><comment><USER37> What does he mean by "bad locality"?

Why depth-first search can't be parallelized?

</comment><comment><USER38> Dfs is not parallel? Why not fork at every recursive call?

</comment><comment><USER39> One things that is not talked about a lot is parallelism in terms of kernel and I/O.

There is the aspects of an application but what about system code?

If read the FlexSC paper and using multiple cores you can see some pretty incredible improvements are possible.

[https://www.usenix.org/legacy/event/osdi10/tech/full_papers/...](https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Soares.pdf)

We should also see some of this with Zircon as it gets further along and looks to leverage cores in a type of pipelining.</comment>


Minneapolis City Council members announce intent to disband police department - <AUTHOR> https://theappeal.org/minneapolis-city-council-members-announce-intent-to-disband-the-police-department-invest-in-proven-community-led-public-safety/ <comment><USER3> "Dissolve the organization and start over from scratch" is an under-used solution in American life, even in the private sector.

Apparently Camden, NJ did a version of this in 2013 with a fair amount of success: [https://www.bloomberg.com/news/articles/2020-06-04/how- camde...](https://www.bloomberg.com/news/articles/2020-06-04/how-camden-new- jersey-reformed-its-police-department)

<comment><USER4> The Camden thing is going around a lot but to me it seems like they did a reorg and actually ended up hiring more police.

[https://www.tapinto.net/towns/camden/sections/law-and- justic...](https://www.tapinto.net/towns/camden/sections/law-and- justice/articles/camden-sees-crime-drop-over-past-decade)

<comment><USER5> I don't think anyone is against _more_ police, but rather the tactics used and how that money is spent. Twenty years ago, police deploying tasers was an outlier. In 2020, it's become normalized and happens thousands of times a year. There's no reason we can't have better trained, restrained police at the same or greater budget. It's the _tactics_ that are in question, and qualified immunity which allows bad actors to do as they please with little-to-no impact to themselves (thanks to local governments picking up the tab).

Let's not pretend we didn't just see 57 police officers resign from a volunteer position because two of their own were caught on camera pushing a 75-year old man to the ground and held accountable because "just following orders".

<comment><USER6> Can't speak for anyone else, but I'm against more police. I think communities would be better served by an increase in social workers in most cases. Drug usage and homelessness won't be solved by imprisoning people and forever branding them as criminals. You need bridge housing, treatment programs, and services for these people. And an educational system that is well funded, regardless of the community it serves. I think criminalizing social issues has proven to be pretty ineffective, generally harmful, and really expensive. I'd recommend checking out "The End of Policing" for a thoughtful, well-reasoned argument for decreasing the number of police. The ebook is free: [https://www.versobooks.com/books/2426-the-end-of- policing](https://www.versobooks.com/books/2426-the-end-of-policing)

<comment><USER7> I am fine with more police if we entirely redefine police to mean social workers, counselors, community assistants, etc.

And if they didn't carry guns nor drive unmarked cars. Police should be _seen_ and they should be seen interacting positively with the community, not patrolling in a gradient of (un)identifiable vehicles.

<comment><USER8> I live in a country where most of this is true.

Unfortunately, there are now so many care workers that many people with issues are getting fed up with all the people that come to their house for all kinds of help (think a care worker for finance, one for mental issues,one for physical issues,one to help the person get back to work, one for the kids etc. etc.)

So if there will be a shift from 'police as is', to more like a care worker system, this would be something to consider.

But other than that, it seems to work well. The police is considered your friend. They pretty know each of the people that have issues or who ever committed crime.

They continue to offer help to them,but will make sure they also get off the streets when they become a potential threat.

There continues to be a lot of criticism from certain groups within our country that wants the police act tougher, but I think the majority of people are happy with how the police does it's job here.

<comment><USER9> There is also a wijkagent - "neighborhood cop". Actual policeperson (with gun and all) that has "office hours" when they are walking around the neighborhood talking to people (even just for a chat) at the playgrounds, business owners and so on. People come to them with problems. There is a website where you can look up wijkagent for each neighborhood. Sometimes they're also active on Twitter, FB... Works quite well

<comment><USER10> It's very important that police is connected to the community they police, and cares about that community. My impression of police in the US is that that is rarely the case in cases where this police brutality occurs.

I'm fairly happy with Dutch police. They're visible and approachable. They're not perfect; there was a case in the 1990s where they cracked down unreasonably hard on a peaceful student protest. And in that case, it turned out that many of those cops were indeed looking forward to a fight, which is a dangerous and harmful attitude. Those instances are fairly rare, though.

<comment><USER9> Yes, no one is perfect [https://www.youtube.com/watch?v=plCdrFYm5b8](https://www.youtube.com/watch?v=plCdrFYm5b8)

<comment><USER10> Even so, no tear gas, no beatings, and despite the protesters resisting as much as they non-violently can, the police are not using any violence beyond pulling and shoving them into the bus.

I was thinking more of this one: [https://www.youtube.com/watch?v=SIwrdriLiZc](https://www.youtube.com/watch?v=SIwrdriLiZc)

(It's surprisingly hard to find anything online about events before 2004. This was all over the news at the time, but now it looks like it never happened. My quality newspaper lacks proper archive functionality for searching more than a year ago. Search engines and Youtube have never heard of this, frequently returning 0 results.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I mentioned this solution in a comment the other day. The NCAA gives sports programs the 'death penalty' when the 'loss of institutional control' [0] is so great the only fix is to disband and start over. Having it as an option is a good thing. The people in charge can't use an 'I didn't know' defense, because that itself is evidence of loss of institutional control.

[0] [https://www.ncaa.org/governance/institutional- control](https://www.ncaa.org/governance/institutional-control)

<comment><USER3> You'll see that sometimes too with Greek organizations at colleges.

I argued at the time the the "corporate death penalty" was the only appropriate remedy for the Equifax breach: [https://en.wikipedia.org/wiki/Judicial_dissolution](https://en.wikipedia.org/wiki/Judicial_dissolution)

<comment><USER12> Or broken up and forced to sell to other orgs that can handle improving things from a security standpoint.

<comment><USER13> Decentralizing data rarely makes it more secure.

<comment><USER12> Not so much the data probably, but some of the services. I was thinking more business / consumer sides split. Of course given what sort of data shows up in my credit report (annoyingly outdated) I'd be okay with them being shut down too.

</comment></comment></comment></comment></comment><comment><USER14> "...MPD announced last year the discovery of 1,700 untested rape kits spanning 30 years, which officials said had been misplaced."

This leads me to think that there are some objective metrics by which a police department's performance can be measured. For a department to have 1,700 untested rape kits (vs. nearly 2500 rapes reported in 2019) seems outrageous, even if it represents a low percentage of total reported. Why wouldn't a police department ensure that every reported rape with evidence collected is properly followed up? They say many or all of these kits were misplaced, which simply leads to more questions about procedures, policies, and internal discipline.

It seems that a standardized approach to department evaluation and oversight is needed. Corporations employ internal accounting personnel, external auditing personnel, and then submit to audits by the IRS. If there were a similar approach to oversight for police departments, with data made transparent as it is for public companies, perhaps most those 1,700 women would have justice.

<comment><USER15> The rape thing is tricky though. Very unlikely they were really "misplaced". That answer sounds like an attempt to avoid the real, much harder discussions about the rape case pipeline.

Go investigate this for yourself if you don't believe me, but there are good and difficult reasons why very few rape cases go to prosecution. It's not a US problem or a Minneapolis problem, the same things are found throughout the world.

Core problem: a huge number of rape allegations are false compared to other crimes. It all starts from there. In anonymous interviews police will normally claim about 50% are false. There have been academic studies that reach similar numbers. There are also a lot of rather motivated studies that try to claim it's much lower, but when you dig into the methodology there are usually big problems and it's clear they've started with a pre-determined conclusion.

So how can a PD end up with 1,700 untested rape kits? Easy. A woman walks in and claims she's been raped. The police administer a kit. They also do a bit of investigation, probe her testimony a bit. She changes her story and renounces the claim. This happens all the time, it's an extremely frequent way for these cases to end. There are even pie chart breakdowns in some of these studies for the top reasons for renouncing an allegation, for example, it's often a tactic used as part of a fight, when the couple make up she goes and admits it wasn't true. Or the claims fall apart under investigation and she admits she was lying.

So the police shelve the kit. It's not worth sending it off to the lab when the claimant already did something that ensures no successful prosecution will ever occur. At the same time it's evidence so they don't destroy it.

One day someone finds the big pile of untested rape kits and goes crazy. OMG evidence of institutional sexism at the police, how can this be justified. Some police manager looks at the data for the reasons and decides "the kits are untested because we think 1,700 women lied to us" isn't going to go down well and doesn't want to start that argument, because a whole lot of very angry people, wrongly and delusionally, believe women never lie about rape. So they come out with this nonsense about them being "misplaced" and hope it'll blow over.

Low rape clearance rates are mentioned in the article as evidence of poor performance at this PD, but it's a bit vague as to what they mean. What you see though is that this particular crime has very low clearance and prosecution rates globally. When people drilled into loss rates at different parts of the case pipeline, they found there are no easy answers and no ways to change things beyond the obvious one of relaxing standards of proof to make it easier to put men in jail.

</comment></comment><comment><USER16> It sounds kind of crazy on the surface but it makes sense - what else would you do if you completely lost faith in the police force to do its job effectively? It would probably seen easier to disband it and replace it with something else than to try and reform such an organization.

<comment><USER17> There's a severe financial side to it all as well...

The city budget funds the police, which funds the union, and they donate their money to the attorney general, mayor, and city council members. Often when they don't get the budget they demand, police will openly retaliate against local businesses and residents who did not support their budget.

<comment><USER18> Which is also exactly what the mob does.

</comment></comment></comment><comment><USER19> I highly recommend Jane Coaston of Vox for a follow. Her recommendations are:

1\. End qualified immunity

2\. Curtail the power of police unions

3\. We need fewer laws

I don't think I could agree harder with this. It sounds like the "disband the police" movement is an elaborate implementation of #2. Now we just need #1 and #3.

[https://twitter.com/cjane87/status/1267898762845880321](https://twitter.com/cjane87/status/1267898762845880321)

<comment><USER20> Patrolmen shouldn't carry guns. I know that wouldn't have helped George Floyd, but we need to ratchet down societal acceptance of violence.

If a situation warrants firearms, it should at least warrant a radio call to the station for armed backup.

<comment><USER6> I don't think taking weapons away is enough. Police aren't trained to provide long-term solutions to domestic violence, homelessness, mental illness, or drug addiction, which are often tasked with solving. The typical solution law enforcement offers to these situations is to jail someone. Rightly, people don't want to go to jail and the situation escalates. And as we're witnessing all over the US, the police are often responsible for this escalation, and that escalation leads to violence.

I think we need people trained in non-violent intervention who can offer long- term solutions to the problems these people are experiencing. Why not just replace a patrolman with a social worker who can call the actual police should the situation escalate?

<comment><USER20> I don't necessarily disagree, but I think a lot of the situations you describe need a peace officer with legal authority to arrest. They mostly don't need deadly force, and I think the walking threat of deadly force that gun carrying cops represent changes the situation often for the worse.

</comment></comment></comment></comment><comment><USER21> This has sufficient public momentum to prove that a plurality believes the current system does the public more harm than good. Of course, removing cops will reduce harm done by cops to the public. But it will also reduce harm done by cops to law breakers. Intuitively, I would expect the law breakers to benefit disproportionately, since the cops stated mission was to prevent law breaking and all.

Statistics I've read suggest that US cities have been getting progressively safer over the past generation. It's interesting to wonder if our generation of safety has allowed us to forget that "order" and "justice" are not intrinsic qualities of humanity (nor any other animal group). Looking forward to seeing how Minneapolis will go about delivering consistent justice with no bad actors enforcing it. Will also be interesting to see which types of law breakers emerge as the winner from decimation of their traditional adversary.

<comment><USER22> "Hard times create strong men. Strong men create good times. Good times create weak men. And, weak men create hard times."

– G. Michael Hopf

<comment><USER23> What are you trying to imply by Hard times create strong men. Hard times also create broken men.

Weak is not always bad. I don't want "supposedly strong men" being so trigger happy , their happy dropping nukes on civilian because they couldn't let go of their "strong" ego.

<comment><USER22> My comment was intended to be an agreement with GC's second paragraph, which postulated that maybe these problems are partially caused by what is effectively complacency.

I did not come up with the phrasing of the quote. That being said, I'm fairly certain you are taking "weak" and "strong" more literally than the quotee intended.

</comment></comment></comment></comment><comment><USER24> I don't live in Minneapolis, and I don't know if this is the right solution or not. But what bothers me about what I've read so far, is they seem to have remarkably little details about exactly what they want to replace the department with. Exactly what does "community-led public safety" mean?

<comment><USER25> My understanding, based mostly on what I've seen on Twitter:

911 call -> Dispatch unarmed City employee, typically a social worker, who specializes in the relevant situation, population or neighborhood.

Goal is to assist the individuals involved, to be compassionate instead of punitive, to get to the root cause of the issue.

There is still some kind of armed security backup for the social worker's protection in situations that do escalate.

<comment><USER26> That's admirable in theory, but sounds like a recipe for getting your head blown off. There really _are_ unrepentantly awful people in the world, and sometimes we need to save innocents from them.

<comment><USER27> Community policing has been the basis of UK policing for the last 200 years.

The violent US model of presuming crime is about "saving innocents" is dramatically at odds with the US's exceptional mental health crisis -- which forms the basis of most of its community policing issues.

The lack of universal healthcare around mental health is a catastrophe. It's remarkable how tolerant US society is to overwhelming amounts of untreated mental health problems.

<comment><USER26> I used to regard UK policing, founded on the unarmed bobbie (sp?), with awe. The Rotherham scandal changed my thinking on that entirely. It's the worst failure of policing I've ever heard of, and seems to have caused by this sort of "light touch above all" trend.

Yes, "saving innocents" is the whole point of policing.

<comment><USER27> We may need to wait for the report to be clear on where the failures were, but there's lots going on there.

Part of the context of that has to be a pretty systemic UK-wide issue affecting public institutions where child-abuse was ignored. It's not clear that heavy-handed policing, in that context, would lead to a different result. It certainly wouldn't in many high profile cases, where police had been strongly encouraged to ignore the issue.

<comment><USER26> A lot going on, yes, but impossible to believe the police were not aware. In the US, if higher-ups tried to suppress this, it'd be leaked to the press, and all hell would break loose.

<comment><USER27> That's true and goes to my point. There's a classism at work here that isn't about the style of policing.

For the UK, class is the defining structural issue, not race. Journalists and the police have typically protected and respected the upper-middle.

That's interacting here with a police oversight in an usual way

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> The US has lots of different police forces – city police, county police, state police. Many other countries have more centralised policing with fewer levels. I think, a smaller number of bigger police forces might promote more professionalism, more professional management, oversight by more experienced politicians (state political leaders tend to be more experienced and capable than local political leaders, especially when talking about smaller cities). That would suggest abolishing city-level police forces and merging them into the county-level police force, even abolishing county-level police forces and merging it all into state police.

<comment><USER29> The problem is that there is no organization that is incentivized to uncover or investigate police crimes.

All other portions of government have cross-checks to stop people breaking the law. The police don't, and cover for one another.

There needs to be an organization that has clear and direct incentive to prosecute abuses by the police, that doesn't have a century+ long tradition of violence, selective enforcement, racism, and murder.

<comment><USER30> For the FBI, there is such an organization. The FBI Inspector General investigates malpractice committed by FBI officers. However, the scope of their ability to fix problems in the FBI is limited because prosecutors rarely take up cases against law enforcement. They also hold FBI officers accountable by writing reports for congress. Again, the usefulness of this is limited by the unwillingness of Congress to act on this information.

(Inspectors General exist for for every federal agency)

<comment><USER31> It has to be an organization separate from any specific police agency, with prosecutors solely devoted to prosecuting police crimes, complete with their bonuses and careers linked to convictions complete with scummy plea bargaining behavior.

There also has to be new crimes of negligence for things like 'body cam turned off' or 'records suddenly missing' and so on.

</comment></comment></comment></comment><comment><USER32> Congratulations to all who have fought against Police brutality, I hope this sets a new precedent. I'm not for abject destruction of people's property that we saw from a minority during these protests, but I'm in full support of People exercising their fundamental Human Right to protest.

> But if you want to say "No more of that. Now we're doing this" then a > rebuild isn't a bad idea.

I just hope they have the foresight to put concrete measures that will deter Police from going back to the way things were, Andrew Yang proposed a bonus that departments gets pulled on the entire department if they get complaints of police abuse, therefore giving other officers the incentive to not put up with the 'blue shield' BS narrative that leads to corruption and violence.

I don't think its over until thus applies to the entire US police departments. I have not participated in these demonstrations, but I will play my part, too.

</comment><comment><USER33> Another example of a relatively successful go at this but for a whole country - Georgia. [https://www.u4.no/publications/police-reform-in-georgia- crac...](https://www.u4.no/publications/police-reform-in-georgia-cracks-in-an- anti-corruption-success-story/)

</comment><comment><USER34> "Mayor Jacob Frey of Minneapolis retreated on Saturday through a sea of protesters yelling, "Go home, Jacob, go home!" and "Shame! Shame!" after he refused to commit to _defunding_ the Police Department."

He says no to the abolition of the PD, not defunding.

<comment><USER35> Shame mobs, bending the knee... it's like an episode of Game of Thrones.

</comment></comment><comment> frosted-flakes What, exactly, does it mean to disband a police department? Fire everyone and hand over policing responsibilities to the state? Permanently or temporarily?

<comment><USER36> No, that's not the goal of police abolitionists: [1]

1\. [https://www.motherjones.com/crime-justice/2020/06/police- abo...](https://www.motherjones.com/crime-justice/2020/06/police-abolition- george-floyd/)

Some more references:

1\. [https://www.8toabolition.com/](https://www.8toabolition.com/)

2\. [https://twitter.com/AlexandraErin/status/1268547515038806018](https://twitter.com/AlexandraErin/status/1268547515038806018)

3\. [https://twitter.com/TravelingNun/status/1268510966116954114](https://twitter.com/TravelingNun/status/1268510966116954114)

<comment> frosted-flakes I can understand the sentiment of the people behind those writings, but it doesn't really answer my question. What will replace the Minneapolis police department if it's disbanded?

Many (most?) of its current responsibilities and funding can be given to social workers, traffic wardens, and other people not armed with guns, but that doesn't obviate the need for officers of the government to enforce the law. Laws can change and become less strict, but we will _always_ need some form of police.

<comment><USER36> Abolishing the police means abolishing it. Nothing will replace it. Crime will be prevented by eliminating its causes and there will be some mechanisms to deal with last resort cases. The articles explain this.

<comment><USER37> I sure hope the mechanism for last resort cases isn't men and women in uniform with guns, because then social workers will be very unwilling to approach any potentially violent situation without the not-police-uniform-gun-men there.

Sorry to be cynical, just the experience of a police officer in a place where social services are funded far, far better than the US - police don't _want_ to deal with mental health all the time, but being the agency of last resort makes it very easy to abdicate responsibility to.

<comment><USER36> Indeed, I think it helps to understand what police authority and responsibility is exactly and then one can more easily see what variations are possible. See my response to the comment sibling to yours.

</comment></comment></comment></comment></comment></comment><comment><USER38> A model for this is the PSNI in Northern Ireland. Irish catholic's faced arguably worse racist violence from the Royal Ulster constabulary. Faith and trust was lost on both sides within the community. Seems to be working given that there's been 19 years of peace over there.

<comment><USER39> To attribute the RUC->PSNI change(2001) as the reason for peace is wrong.

That change was on the back of a much larger, much broader set of changes brought in as a result of Good Friday Agreement in 98:

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

> Issues relating to sovereignty, civil and cultural rights, decommissioning > of weapons, demilitarisation, justice and policing were central to the > agreement.

<comment><USER38> Didn't suggest it was one thing. I just didn't think in the context of this thread that the background was relevant. Can it not be a combination of things.? The good Friday agreement started the ball rolling the change to PSNI was one of the measures.

<comment><USER39> You implied it by omission

> A model for this is the PSNI in Northern Ireland

> Seems to be working given that there's been 19 years of peace over there.

</comment></comment></comment></comment><comment><USER40> a) I'm incredibly happy to see that the masses still have a voice

b) I'm not positive this is the right solution, but it could be, and it will be fascinating to see how it plays out and whether it's something that could work everywhere

<comment><USER41> The masses have a voice in proportion to the degree to which they control where their taxes go. The power of the purse is remarkable, because you can destroy (almost) any instutition by simply defunding it (which is also why any attempt to circumvent that power, e.g. Executive re-purposing of funds, should set off huge blaring alarms.)

And when it comes to "what congress can do" I'd argue that it's 90% about allocation of funds -- because it doesn't matter what the law is if there is no money to enforce it.

<comment><USER42> You could argue the US has a debt as large as it does because it has the strongest military on Earth. Who is going to enforce the debt collection?

Using this logic and the destabilization of US military the natural answer is another highly militarized government.

So where there is lawlessness there is opportunity for authoritarianism whether that's a gang, police, US military, or foreign adversary.

We need to be smart about change and boil the frog, not get into a fight we cannot win, otherwise society will descend into authoritarianism likely ran by the most experienced and powerful authoritarian.

<comment><USER18> The fact that the debt is deliniated in US controlled currency is what protects us. Now, our stability, partially due to our military allows that to happen. But it isn't necessary to avoid being collected on.

</comment></comment></comment></comment><comment><USER43> I hope this happens, and that Minneapolis citizens can build an institution of their own that they can actually have faith in.

My main concern around this is the array of outside systemic forces that would want to see this project fail: Make no mistake, if Minneapolis goes through with this, and if it succeeds, there are a massive numer of other police departments in other cities who will see this as an existential threat, and and will almost certainly act to see that it fails

</comment><comment><USER44> Interesting and surprising if this happens. Note that they're just announcing their intent to disband, it's not an actual vote, but there's some pretty strong language here. The article also notes the mayor is opposed to disbanding.

I would rather see police reforms and a rethinking of priorities than disbanding police altogether. But if it happens (a big if) perhaps Minneapolis will provide a rare natural experiment.

<comment><USER45> > I would rather see police reforms and a rethinking of priorities

Why? Surely any new policing entity will entail the philosophy of reform and keeping the rotten part around would be detrimental.

<comment><USER46> I would argue that it is hard to have a much less rotten police force than the city in general. It seems quite crime ridden from the statistics. Maybe if you draft the policemen from other areas or cities?

<comment><USER47> Roughly 5% of the Minneapolis police actually live in Minneapolis.

Maybe they should have hired from within the community instead.

</comment></comment></comment></comment><comment><USER48> As others have said, I think "burn it to the ground and start over" is highly underrated.

My concern is that policing could be taken over by private entities, which I suspect would be decidedly worse.

<comment><USER49> What is pretty obviously going to happen is that police will simply move from areas that want to get rid of them to areas that support them.

I don't think the Minneapolis PD cops will have to move to Australia to find a job. They'll just find work a few miles further away, whether it's public or private security.

</comment></comment><comment><USER50> I doubt anyone will adopt a scientific approach, namely, before the experiment begins, figure out what it is you're going to measure, how you're going to measure it, and then announce a threshold for "this got us what we wanted" versus "this was a mistake."

</comment><comment><USER51> I can't help but wonder if the aggressive nature of U.S. police officers are out of fear that people might have guns - and that it just starts a cycle of escalation along with citizen rights being ignored. It is a real contrast to NZ where officers are smiling, friendly and disarming when they approach you - this would be the norm here even if you are a patched gang member.

We do have issues, here in NZ (racial profiling being one of them) but I am glad we don't have any additional issues brought about by the police having an overriding default concern that citizens could be armed.

I may be over simplifying it - but it is the biggest difference I can see.

To try to add some perspective for myself I compared some stats last week between NZ and the US.

You are __97x__ more likely to be killed by U.S police than you are by NZ police.

I came to this conclusion through looking at 5 years of NZ data and 6 years of U.S data. As a side note it seems to be agreed that the U.S deaths by police is under-reported due to there being no National database and processes in place to collect the data. On the flip side, keep in mind that NZ only had a sample of one police caused death over 5 years, so the NZ stats would change drastically with any increase in deaths.

I really hope the conversation can move to gun control - assuming the U.S. police professional standards to the public would more easily change if guns were off your streets.

The stats were derived from this following links: Sources

[https://www.police.govt.nz/about-us/publication/tactical- opt...](https://www.police.govt.nz/about-us/publication/tactical-options- research-reports)

[https://mappingpoliceviolence.org/](https://mappingpoliceviolence.org/)

I also wonder if that the high number of ex-military in the U.S. police force also plays into the military-mindset of 'us versus them' approach towards the community.

<comment><USER52> Don't think it's fair to compare US to NZ. The New York -> City <\- is more populated and complex than New Zealand.

<comment><USER51> Does population size really matter? We are talking about interactions at most of a few people to a few people. Whether it be Auckland with a population of circa a million or NY with their population - I don't think it matters when you are talking about the interactions of a few people.

I am a kiwi, but have lived in Japan for two decades as well. You could just about swap out my mentions of NZ for Japan as a second example, but I can see some comparison there not being considered fair either

I think it is fair to look for comparisons in other countries - my main point is that racial profiling happens in other countries too - but the acceptable professional standards for police engagement with the community are vastly different to what seems to be the norm in the States.

For where most of my life experience lies, whether it be Japan, Australia or New Zealand, people are not afraid or nervous of interacting with the police.

Some root cause analysis to shine the light on where the issues are would be helpful I think. I think racial issues are a partial-cause - but there are racial issues in NZ, Japan and Australia where you don't have anything like the same aggressive nature of police interaction.

It just feels like the U.S. discourse on the subject is on the side effects versus the root cause. I could be wrong - but would love to see it discussed.

<comment><USER52> Points that I see different are:

\- there're terrorists, they have attacked the US and might try to attack again. Police is the 1st line of defense.

\- Both Japan and NZ are island s. Border control is easier to some extent. There criminals crossing borders with drugs and other illegal stuff - <USER2> illegal immigrants as well.

\- Social differences: hundreds of billionaires, billions of poor people.

\- Race differences: people from every part of the world wants to live there. So there's a considerable number of Latins, Asians, Middle East, Africans, plus the racial issues with afro descents. It's not easy to provide security to all those differences, each has their own culture.

<comment><USER51> I think the article linked by @antoncohen sums up the situation nicely:

[https://medium.com/s/story/fearing-for-our- lives-82ad7eb7d75...](https://medium.com/s/story/fearing-for-our- lives-82ad7eb7d75f)

I don't think the reasons you have given should give the U.S police license to default act aggressively towards others - due to being in fear of their lives.

From my perspective, the U.S. police are not in fear of their lives through fear of immigrants or terrorists. They are trained to be in fear of someone having a gun pointed at them.

</comment></comment></comment></comment></comment><comment><USER53> Not really comparable, but related still:

> _In 2005 Georgian President Mikhail Saakashvili fired "the entire traffic > police force" of the Georgian National Police due to corruption, numbering > around 30,000 police officers. A new force was built around new recruits. > The United States State Department's Bureau of International Narcotics and > Law-Enforcement Affairs has provided assistance to the training efforts._

Haven't heard any reports of traffic mayhem in those months. Afaik after that traffic police went from post-Soviet bandits and bureaucrats to polite workforce and their DMV started handling routine procedures in ten minutes instead of 'file your request, go home and wait for a response'.

</comment><comment><USER54> What are they proposing to replace the police force with, exactly?

<comment><USER55> Probably a police force not represented by a racist union president.

</comment></comment><comment><USER56> That's actually great. All the power to them for willing to risk it, and a net benefit for everyone else watching how that experiment turns out.

I share the sentiment that police doesn't eradicate crime; it's a way to manage chronic crime, but not a solution in itself. However, take the chronic management away without solving the problem at the core and you're in for a much bigger problem.

</comment><comment><USER57> The idea that a city council can make a rash decision that will drastically impact the safety of citizens, I'm sorry requires a vote.

This is virtue signalling based on terrible statistics and it's also an invitiation to harm citizens and businesses.

Every council person's competience is called into question at this point.

</comment><comment><USER58> More information on CNN:

[https://www.msn.com/en-us/news/us/minneapolis-city- council-m...](https://www.msn.com/en-us/news/us/minneapolis-city-council- members-announce-intent-to-defund-and-dismantle-the-citys-police- department/ar-BB159oYB)

</comment><comment><USER59> The headline is accurate, but perhaps a bit misleading. A synopsis:

The Minneapolis Police Department has had a long string of scandals, and gradual reform doesn't seem to be working. A majority of the city council seem to have decided to rebuild/replace the department in its entirety.

This seems pretty reasonable. It's not some wild eyed anarcho-libertarian plan to try and build a society without coercive force (perhaps sadly, if you lean that way...); it's just an announcement that a dysfunctional government department is going to be reorganised slightly more thoroughly than was previously planned.

</comment><comment><USER60> What are the chances this is a bluff?

</comment><comment><USER61> Georgia (country) did this with great success in 2003. [https://www.centreforpublicimpact.org/case-study/siezing- mom...](https://www.centreforpublicimpact.org/case-study/siezing-moment- rebuilding-georgias-police/)

</comment><comment><USER62> Is this equivalent to a software rewrite? Let's just throw the whole thing out and start over.

Throwing out a system and starting afresh would likey introduce new bugs/systemic failures that aren't currently present.

Is addressing and correcting each specific feature/SOP not an option?

<comment><USER63> That's been tried for years and clearly hasn't worked. Incremental reform has failed when you have corrupt unions and entrenched cultures.

Yes, you should usually try to incrementally fix bugs in a codebase. But sometimes it's so mired in technical debt that you're better off throwing the whole thing out and starting from scratch.

<comment><USER64> > That's been tried for years and clearly hasn't worked.

Are you implying there haven't been improvements at all? Seriously, if you say things like this, you should need to provide some statistics. I'm pretty sure we're at all time lows for police killing unarmed people (don't know where I saw the statistic but this is why I'm so skeptical of the above statement).

<comment><USER63> Looking at the police brutality over the past 2 weeks, including blatant attacks on journalists and peaceful protestors, makes it clear that they have not been "reformed."

</comment></comment></comment></comment><comment><USER23> Wow. This is what I call action from those who hold office. Thank you.

I hope the new iteration of MPD is more effective at keeping everyone safe and preserving order that in a manner that is fair to everyone regardless of race.

</comment><comment><USER65> Great. This will be a very instructive experiment. I hope it would teach those people a good lesson, and not too many innocent people would die for it.

</comment><comment><USER66> Happened in Baltimore after Freddie Gary and the result is over 100 more murders of black men per year than before, just not by police.

</comment><comment><USER67> This is what needs to happen to all police departments. Slow reform won't work. What police in America do is wrong at its core. We don't need thousands of armed people roaming the streets looking for crime. Only 5% of arrests involve violence. Being a cop isn't a dangerous job, it isn't even in the top 10 deadliest jobs in America. Even when only looking at death by violence, cops aren't the most likely to die on the job (taxi/limo drivers are). We need people solving actual problems, not people trained to fear the public while also being armed armed with guns.

Some examples of why police departments should be dissolved and something new created:

Ever day when I walk to work (pre-COVID) I pass the same two police officers. They walk along the same stretch of sidewalk waking up homeless people. Ever day the walk up the same homeless people, while being armed with firearms and wearing bulletproof vests. They aren't solving a problem. The people they wake up are still homeless the next day. If instead San Francisco had a dedicated homeless department that solved end-to-end problems, they could actually solve problems. They could wake up the homeless people and talk to them, understand the root problems, and work to come up with solutions to the underlying causes of homelessness. While also finding compassionate short term help for them.

Another example is from couple days ago, when the Alameda police arrested a man, throw him to the ground and handcuffing him -- for dancing in the street outside his home[1]. Someone called called the police because they thought he might be drunk or have mental problems. But because it was police that responded, instead of community focused mental health professionals, they arrested him and used excessive force. That is when police do.

This morning I saw and recorded[2] a white women sitting on the ground have two AR-15 style rifles, two handguns, and a shotgun pointed at her. That is routine level excessive force used by cops in America. It is the type of force that escalates to killings when the white women is replaced with a black man.

At the same time the police don't investigate actual crimes. Every year tens of thousand of cars are broken into in San Francisco, and the police do nothing about it.

Here is what I want:

\- No armed police officers on the street.

\- Dedicated non-police departments to solve common problems, having end-to- end responsibility, with real solutions. Homeless, mental health, whatever is a big enough problem to have a dedicated departments.

\- Investigators that investigate and solve crimes that impact people. They don't go looking for crime. They don't carry guns. They don't roam the streets.

\- Armed response teams at stations and sub-stations. Like fire departments don't roam the street looking for fires, instead they respond from their stations. Armed police can do the same. They will _only_ response to calls involving firearms or other imminent threats to human life. They will be highly trained, and unlike current police they will not be trained to fear the public[3]. They will be trained to stay calm, deescalate, and not use force unless truly required to save another life.

\- Community liaisons. This will be like current police, but they will not be unarmed and maybe not be sworn officers (i.e., maybe not have arrest powers). Their job is to walk around and talk to the community, get to know them, understand their problems, and be a face for the government.

[1] [https://abc7news.com/society/exclusive-unarmed-black-man- han...](https://abc7news.com/society/exclusive-unarmed-black-man-handcuffed- by-alameda-police-for-dancing-in-the-street/6234241/)

[2] [https://www.youtube.com/watch?v=4NnvPJnRAl0](https://www.youtube.com/watch?v=4NnvPJnRAl0)

[3] [https://medium.com/s/story/fearing-for-our- lives-82ad7eb7d75...](https://medium.com/s/story/fearing-for-our- lives-82ad7eb7d75f)

</comment><comment><USER68> Wait a minute. If you're not gonna have police, how will you handle things like murders, rapes, robberies, or kidnappings? Do criminals just get to do their thing without fear of the law?

Maybe we're supposed to form a citizens' posse to hunt 'em down like they did back in the Wild West?

</comment><comment><USER69> wow... if they change the power structure for the better, that is great news

</comment><comment><USER70> Not an American, but seeing the current divide in the US makes me curious. What would happen if Trump wins again in 2020?

<comment><USER69> it would probably ensure that all police departments get dissolved and restructured (because the situation would be too bad)

</comment></comment><comment><USER71> Have you tried turning it off and on again?

</comment><comment><USER72> It will be interesting to see what crime does in response? Or more significantly, how other societal functions affected by police ( like traffic, MVA management,etc) change.

</comment><comment><USER73> im not sure how i feel about this. "fire everyone" is too large a scope, but "charge 1-4 officers with murder" is too small a scope.

both measures are too extreme. firing everyone is only useful if you restructure the training pipeline and system of accountability, but if you do that you dont need to fire everyone.

i suppose a nuanced approach is outside public reactionary purview so this is probably the better option. charging 1-4 officers with murder without changing the leadership accountability, culture, or anything really will have very negative impacts on policing.

<comment><USER30> Where are you getting the idea that they will fire everyone? That is how the nation of Georgia handled it but it doesn't mean that's how Minneapolis will. They said rebuild they system from the ground up, which means restructuring the system of accountability, not necessarily everyone loses their job.

</comment></comment><comment><USER74> > For rapes, the police department's solve rate is abysmally low. In 2018, > their clearance rate for rape was just 22 percent.

Getting rid of the police will ensure it goes to zero.

</comment><comment><USER75> I don't think it will work. Minneapolis has one of the highest crime rates in the country, just as Baltimore did, and that city saw crime rates rise even higher after protests led to tighter regulations on the Police ... but I don't live in Minneapolis and so I'm curious to see how it will turn out. I support this as a great social experiment.

<comment><USER76> My sense is that most (but not all) of the people cheering this on are like you. They don't live there, they have no family there, and they have no ties to the city or the state. Spoke with a childhood friend last night, and he's leaving the city and moving to Minnetonka once his lease is up in August. Everyone else he knows is doing something similar. Obviously this is all anecdotal, and like you said we get to watch a massive experiment play out in real time. With the advent of more virtual work, people are going to bail on places where they see risk as too high. I don't live there anymore, was born in Iowa, but grew up in Minneapolis and moved there when I was 5. People, especially in tech it seems, have an element of optimism that's useful in most situations. I don't share that in this case. We've approached a sort of social contagion where if you don't support the most extreme positions you are shamed (literally, like the Mayor was).

<comment><USER77> I still live in Minneapolis and most people that I know want to stay.

Everyone who watched the video knows George Floyd was murdered, but the MPD and its union still want to fight their termination and all charges.

MPD response to protesters has been incompetent, callous, and malicious. The majority of MPD are suburban Trump supporters and like all Trump supporters they can't stand progressive places like Minneapolis. The last straw for me was when the MPD police arrested a reporter in broad daylight on live TV.

<comment><USER76> All public sector unions should be banned, I'm not going to fight you on that one. But, again, I just don't share this optimism.

>The majority of MPD are suburban Trump supporters and like all Trump supporters they can't stand progressive places like Minneapolis.

Maybe things have changed since I moved away in 2013, but this wasn't true back then. Both parents of one of my classmates in elementary school were cops and lived in South Minneapolis. If it is true today, that seems to suggest an interesting selection bias no? Either MPD only hires surburban Trump supporters or only these suburban Trump supporters want to sign up to be cops in the city. In either case, and like I mentioned above, we get to watch a neat little experiment play out in real time if we're going to disband the MPD and rebuild it.

<comment><USER78> It was true, even back then. In 2015, only 5.4% of the MPD lived within city limits. [1] This isn't a recent change, and IMO it's a major driver of the "occupier"/"us vs them" mindset many cops in the MPD appear to have. (example: [2])

[1] [https://www.mprnews.org/story/2015/03/20/police-officer- resi...](https://www.mprnews.org/story/2015/03/20/police-officer-residency) [2] [http://www.citypages.com/news/minneapolis-police-officer- urg...](http://www.citypages.com/news/minneapolis-police-officer-urges- looting-of-cedar-riverside-arresting-press/571046391)

</comment></comment></comment></comment></comment><comment><USER79> A lot of commenters are questioning this in disbelief, wondering if a city could actually live without a police department. However, few are noticing that the council's decision is now largely irrelevant, as police departments in America are quickly falling apart on the inside, regardless of what the city council does. A few days ago 57 Buffalo police officers quit the force in protest[1]. If you think about it, of course they would, as they are now unable to do their job (in their usual manner) without the risk of either getting taken to court, or attacked by the public in ambushes and personal attacks[2]. In such an environment, it's no wonder that police officers themselves are refusing to show up to work. And just a few minutes ago during NYC Mayor Blasio's announcement to cut funding to the NYPD [3], a staunch police supporter, I couldn't help thinking: "what sort of collapse must Blasio be seeing, on the inside of the NYPD, in terms of morale." I can only imagine that individual police officers are now genuinely fearing for their lives and their career.

[1] [https://www.cnn.com/2020/06/05/us/buffalo-police- suspension-...](https://www.cnn.com/2020/06/05/us/buffalo-police-suspension- shoving-man-trnd/index.html)

[2] [https://www.foxnews.com/us/california-ambush- leaves-1-deputy...](https://www.foxnews.com/us/california-ambush- leaves-1-deputy-dead-2-officers-hurt)

[3] [https://www.foxnews.com/us/de-blasio-nyc-to-cut-nypd- funding...](https://www.foxnews.com/us/de-blasio-nyc-to-cut-nypd-funding- shift-it-to-social-services)

<comment><USER80> They quit a special task force (around riots) but still have their normal police jobs.

</comment></comment><comment><USER81> The problem is American gun culture and the probability that any call might turn into a violent one. Other countries don't have that problem so they can send unarmed social workers with higher confidence, over a life time of calls, they're going to see retirement. In America that isn't the case and responders need a gun because everyone has guns and you need to have sustainable system for keeping order that ensures, over the long tail, peace keepers stay alive. This is probably an unpopular opinion in a time of police abuses but it's orthogonal, it just means our police need to be extremely well trained and disciplined because we built a society that is inherently more dangerous (and this costs a lot of money which we're now defunding).

<comment><USER82> Would it help if murdering unarmed peace keepers or whatever had extreme punishment attached? Even criminals can be trained. Kill an unarmed peace keeper, your life is effectively over.

<comment><USER83> That would require a constitutional amendment, because right now that's first degree murder, usually a capital crime, and making the punishment worse than that would violate the 8th amendment.

</comment></comment></comment><comment><USER84> What could go wrong? Lunatics are running the asylum it seems. Authority is always here. Disband the police and you will get another arbitrary authority (being gangs, some kind of political repression, and so). There already are no-go zones in Europa where the police don't go anymore, believe me, you wouldn't want to live there.

If you don't want the official police anymore, why not starting with your place, your home and your family?

<comment><USER85> How is that any different than the lawless gangs that have the force of government behind them?

<comment><USER86> There exists a decent real world example of "a tale of two police strategies" in two demographically similar cities: Juarez and El Paso. Juarez and El Paso are situated across from each other along the U.S.-Mexico border. In some ways they are the same city, with many residents traveling across the border each day. Juarez is the second most deadly city in the world, at over 100 murders per 100K population [1]. El Paso has just 3.3 murders per 100K population [2]. The difference is that the police and legal system work better in the U.S. compared to Mexico. In many parts of Mexico, gangs run the streets, and officials are either in bed with gangs or often intimidated by gangs [3]. That's what fills the power vacuum in the absence of effective policing.

[1] [https://en.wikipedia.org/wiki/List_of_cities_by_murder_rate](https://en.wikipedia.org/wiki/List_of_cities_by_murder_rate) [2] [https://www.areavibes.com/el+paso- tx/crime/](https://www.areavibes.com/el+paso-tx/crime/) [3] [https://apnews.com/231aec4552f040e49095f77968e6345c](https://apnews.com/231aec4552f040e49095f77968e6345c)

<comment><USER87> The power of Mexican drug cartels is scary. Someone like El Chapo is essentially above the law. The only reason he's still in prison is because he as extradited to the US.</comment></comment></comment></comment>


Python vs. Lisp - <AUTHOR> http://www.strout.net/python/pythonvslisp.html <comment><USER2> Wrong on multiple counts, starting with calling Lisp "LISP". I could go on line by line and show an incorrect assumption or just plain FUD (on _both_ languages btw):

 _LISP's most-used datatype is the list, but strings are also a basic type, and dictionaries are supported to some degree through association lists._

FUD. Lists are not the most used datatype, at least by this Lisper, classes are. Dictionaries are supported _fully_ as hash-tables. Association lists are usually written when testing stuff in the shell, but quickly made into a more robust datatype.

 _Documentation String .. Python has apparently copied this straight from LISP, as it has the same feature (also at the module and class levels)_

Yes, same in Lisp. Classs and packages also take docstrings. I can't think of any top-level definition form in Lisp that _doesn't_ take docstrings.

 _Exception Handling .. LISP can achieve a limited sort of exception handling through "catch" and related operators_

Lisp has the condition system that inspired Aspect Oriented Programming. Lisp condition system is still the envy of everything else out there. People should really start learning things before they write authoritative texts on them.

 _Multiple Namespaces .. Multiple namespaces are central to Python; every Python module gets its own namespace, with a simple syntax (module.varname or module.funcname) for referring to objects therein. LISP packages are essentially equivalent to Python modules in this respect._

And he misses his chance to bitch about the one thing that's imperfect about Common Lisp :-P

 _LISP uses CLOS, which is a fairly (but not completely) standard object extension to LISP._

Was this written before 1994? That was the last time this sentence could have been correct.

Forced myself to read this just to debunk it.

</comment><comment><USER3> Strikes me as dated and pointless; reads like a high school "compare and contrast" essay and the guy is hell bent on flaming Lisp. Apples and Oranges dude.

</comment><comment><USER4> English makes a lot of sense to me, but Chinese just doesn't. Can't you see how nicely English hangs together, and how it expresses things so clearly? The pictographic alphabet and grammar and syntax of the Chinese language... it's just not as elegant or powerful.

</comment><comment><AUTHOR> This is quite dated, but I found it interesting. I also wonder how such a comparison done today would fare for both languages.</comment>


How does Tim cook's donation matching program make his employee quit - <AUTHOR> http://www.quora.com/Why-is-the-Chinese-government-against-Falun-Gong

<comment><USER2> The linked article is entitled "Why is the Chinese government against Falun Gong?" and doesn't have any reference to Tim Cook.

<comment><AUTHOR> Search for "great chef" in that page.

<comment><USER2> I found "great chef" in a hidden comment at the bottom of the page, but it still has no connection with Tim Cook as far as I can tell.</comment></comment></comment>


Ask HN: Top 5 books for bootstrappers? - <AUTHOR> I have some credit in my Amazon account and am looking to get some books that will help me grow my startup.<p>Any ideas or advice? I'm familiar with Eric Ries, Founders at Work and hoping to find some new gems. <comment><USER2> [https://www.amazon.com/Myth-Revisited-Small-Businesses- About...](https://www.amazon.com/Myth-Revisited-Small-Businesses- About/dp/0887307280)</comment>


How Fortnite became the most popular video game on earth - <AUTHOR> http://nymag.com/selectall/2018/07/how-fortnite-became-the-most-popular-video-game-on-earth.html <comment><USER2> 1\. Battle Royale (the Japanese film) is released in 2000.

2\. DayZ kicks off the survival genre in ~2012.

3\. A slew of DayZ mods happen. A dev on one mod, playerunknown, creates a Battle Royale inspired mod for DayZ in 2013.

4\. In 2016 PU is hired as a consultant for the DayZ knockoff H1Z1 to make a Battle Royale mode.

5\. PU is hired by Bluehole to make PlayerUnknown's Battlegrounds, a Battle Royale game. Bluehole uses the Unreal 4 engine from Epic games.

6\. PUBG is a hit in early 2017.

7\. Epic games sees PUBG's success with their engine so they create a mod of their Unreal 4 building game "Fornite" that implements Battle Royale. It's released for free.

8\. It's free, cartoony, and performs better than PUBG; this attracts the young youtube/twitch/etc crowd. Viral success happens.</comment>


Dashboard iPad app rejected by Apple, made open source instead - <AUTHOR> http://www.engadget.com/2010/04/09/dashboard-ipad-app-rejected-by-apple-made-open-source-instead/

<comment><USER2> If you're going to use someone else's artwork for your iPad app, it's probably best not to get that artwork from Apple's desktop operating system.

I'm sure he'll enjoy his letter from Apple Legal.

</comment><comment><USER3> Besides the artwork that was plainly copied from the Mac version ... I just compiled and installed it. It does not work that well. If this is the same version that was submitted then it needs a LOT more polishing.

<comment><USER4> Dashboard widgets are just HTML and JS so they probably copied the entire widgets unmodified from OS X.</comment></comment>


Ask HN: What's your favorite technical interview question? - <AUTHOR> I'm in the midst of the interview process for several new grad positions, so I've been having fun with algorithmic questions lately <comment><USER2> Give an example of where you have applied your technical knowledge in a practical way.

</comment><comment><USER3> how would you architect a tic tac toe game</comment>


I tried to get broadband from eir, in Ireland - <AUTHOR> http://larryhynes.net/2017/i-tried-to-live-life-on-eir.html <comment><USER2> Brilliant read. I hope enough time has passed now for you to laugh about it.

You seem to have an unfinished sentence, part way through though. [italicised]

>She tells me that it has been declared 'non relevant'. _I can't even_. She says it's doubtful that they will issue a cheque for that amount

<comment><AUTHOR> Oh, that's how the kids talk these days! And TBH, I was able to laugh my way through most of it. (I would have cracked up otherwise.) I had low expectations, and once we got into Kafka territory I just decided to try and enjoy the ride.

<comment><USER2> I've had similar fun'n'japes with their cousins this side of the water, BT. But I don't think we descended quite that far into insanity.</comment></comment></comment>


Android Tutorial for Beginners - <AUTHOR> https://github.com/parthibanloganathan/android-tutorial

<comment><AUTHOR> A quick Android tutorial for beginners. Make an app that can take pictures and tweet in a matter of hours. Only prerequisite is Java. Lots of follow up resources included. Enjoy learning!

Feedback appreciated</comment>


Ask HN: Should my start-up pivot? - <AUTHOR>

Over the past few years, I've written about 60 small Facebook applications -- mostly having to do with enhancing productivity -- and recently, I gathered the 10 most useful and packaged them in a bundle:
http://fab.pressbin.com
Although the apps should appeal to just about anybody, they would likely have special appeal to people who manage Facebook Pages (e.g. small-business owners who are trying to market themselves).
It strikes me that I might also be able to charge this segment more than I would the general population -- but if I were to pivot and market the apps specifically to this segment, I'm not sure the price premium would offset the smaller pool of potential customers.
What do you think?
Would I have better luck with the status quo, where I'm targeting all Facebook users, or should I pivot? <comment><USER2> Wow, it looks like you worked really hard on that stuff. I bet it's a solid product suite.

I would never buy it. But take that with salt: I'm not your potential market.

What I might potentially buy (and for a much higher price) is a screencast of you showing me how to build a FB app.

You've built ~60 FB apps. IMHO the product you should be selling is 'How to build a FB app.' And if I were you (and if I were a good presenter) I would do screencasts.

Your extra investment in front of the computer would, what, a week? Leverage what you've already done, showcase it nicely, and build a tutorial.

Check out railstutorial.com. That would be my model.

Yes I would pivot if I were you. But big caveat: you know this space much better than I do. I've done zero market research on FB app How-Tos, manuals etc. I haven't even read the beginner tutorial on how to make a FB app.

But I know that scores of people would pay to learn what you know.

Good luck!

</comment><comment><USER3> Amazing job with these apps! I think each solves a definite need in the market.

My challenge to you, however, is to integrate them all in a way that makes sense. Even though it's bundled, it's a different app for each type of task. They are really random features of a potentially great product.

You clearly have great insight into what these customers want. I'd be surprised if you didn't succeed tackling another problem for this market. Just by chance, are you sure you're marketing your products properly and giving them a fair shot?

</comment><comment><USER4> I think you should have seperate models for B2B and B2C and give them each the respect they deserve. Trying to paint all by the same brush will either drive your users down (if you charge) or drive your revenue down (not charge).

</comment><comment><AUTHOR> Link: <http://fab.pressbin.com></comment>


SOPA supporters don't want to compromise - <AUTHOR> http://tech.fortune.cnn.com/2011/12/09/sopa-2/ <comment><USER2> And why should they? They bought this legislation fair and square!</comment>


Read Scheme – Resources for Functional Programming - <AUTHOR> http://readscheme.org/ <comment><USER2> if anyone is looking for a quick Scheme environment to play with try letzcode.com, I built it as an EdTech project. It is basically a REPL as a messaging app.

<comment><AUTHOR> That's awesome. Also, DrRacket is just a free download away and makes for an excellent playground (and is good for serious programming, too!):

[https://download.racket-lang.org/](https://download.racket-lang.org/)

It comes with the "Racket" distribution, but not "Minimal Racket".

For some inspiration, see:

 _" big-bang: the world, universe, and network in the programming language"_ by Matthias Felleisen

[https://www.youtube.com/watch?v=ayoofXuKqMY](https://www.youtube.com/watch?v=ayoofXuKqMY)

<comment><USER3> ...but it's not scheme.

<comment><AUTHOR> DrRacket can be used to run R6RS and R7RS (small) scheme via `#lang` directives, though conformance is not 100%.

See:

[https://docs.racket-lang.org/r6rs/index.html](https://docs.racket- lang.org/r6rs/index.html)

[https://github.com/lexi-lambda/racket-r7rs](https://github.com/lexi- lambda/racket-r7rs)

<comment><USER3> Yeah, but the main language, #lang racket, isn't scheme. At all.

And a lot of people think it is.

<comment><AUTHOR> Fair enough. My main point when mentioning DrRacket was to suggest its usefulness as a learning environment and programming tool, and one squarely in the Scheme branch of the Lisp family, though there are important differences, as you suggest.

<comment><USER3> Certainly true. Although I prefer Geiser + Emacs myself, which supports Guile, Racket, and Chicken, the three big Scheme implementations (or not Scheme implementations in Racket's case).</comment></comment></comment></comment></comment></comment></comment>