Ask HN: Taking over a in life product – no documentation. What do I need? - rayray07
I am taking over an existing product but there is no documentation/very poor institutional memory so I am effectively starting from scratch. What are the key things I need to learn and document to make a success of managing it in life?<p>I have 30 days with the existing product manager before they leave the company.
======
zer00eyz
PM's are gold or garbage, there is almost no in-between.

You want on boarding, monetization, metrics, goals attempted, successes and
most importantly "what failed".

Let me say "metrics" again, what are they measuring, how, and what is and
isn't working in NUMBERS. (If you don't have these god help you)

While your looking at things from a customer perspective, you should be
looking at things from a storage perspective.

Where ever your data is stored, it is likely you can auto generate a schema
from some sort of tool. Make these, print them out, hang them on the wall. Why
dead trees? Because your going to wanna write notes on it, if you can't it's
useless.

Why does storage matter? Because knowing what is there, and was there and how
its laid out are going to give you massive clues as to how the system evolved!
Column order in a lot of DB's is a hint at what came later. Is current
critical data tacked on to the end of a table? Is there something you THINK
you should be there sparsely populated because it is unused today or simply
not required.

Wireframes are fast an easy, even if you do them one paper and scan them in
later. I can't say enough how much having movable pieces for your work flow
can help. Doing these as your learning and getting feedback on what's missing
from that PM is going to give you massive insight and expose dark corners and
missing thinking.

------
twunde
Don't panic. As someone who's done this a few times, this is typical for non
pure tech companies. Go looking for people in your company that are using the
product or supporting it. Typically this will be customer/client services and
potentially business operations. They should be able to talk to about what
doesn't work, what works well, the workarounds that have been adopted, etc.
You should also talk to account managers and marketing/sales to get a feel
about what clients are asking for (what features are wanted, what's missing,
major flaws). Do go hunting for old specs, wireframes etc since often these
are floating around but not in a central location. I've been amazed at how
often these show up AFTER I've finished wrapping up a project. Often these may
be owned by other departments. Make sure to ask IT to not delete the old PM's
accounts but give you access to their documents and email so you can try and
find old docs and email threads about decisions.

Now for the good news. With the old PM gone, you now have a blank slate to
make changes, you're not beholden to their old decisions.

~~~
mattmanser
I've also had great success sitting down with a real user for an hour and
getting them to go through what they do.

One particularly memorable product I did that with, I was sitting with a low
level, call center type employee who was taking me through their daily job,
and he pointed to a frequently needed report on screen and said "this is wrong
though, I'll show you how we get the right report".

He then proceeded to fire up SQL Server Management Studio, connected to the
production db and ran a script he'd been given.

All of them had read permission to the entire, extremely large, highly
sensitive, db.

Because that was apparently easier for one of the devs before me than fixing
the bug.

That company was bought for 9 figures a few months after that, just goes to
show shoddy code and practices certainly isn't a reflection of value.

~~~
rayray07
Thanks Matt, good idea - I will plan in some meet and greets with key
stakeholders to watch and listen how they use/think of the product.

------
codingdave
What do you mean by "taking over"? Are you the new Product Owner? A new coder?
A one-man show doing everything? Is this part of a larger organization, or did
you just pick up a codebase and you are going to try to make it into a
business?

~~~
rayray07
I'm the new product owner, I don't code but manage the requirements for the
team that does. It's an existing product which has been in life for many years
and is part of a large organisation.

~~~
codingdave
Gotcha. In that case, I agree with some of the other comments. Sitting down
and talking to the users to understand the pain points and ongoing needs is
most important. Past history is not as critical because it is your job to
define the future, not maintain the past.

------
sloaken
Documentation, or the lack there of has always been a pet peeve of mine. I
have inherited many of these.

First step is to resist the temptation to strangle the person before you. I
assume they are leaving the company as opposed to being promoted for not
documenting their work.

Second step is to have great contact information about the previous owner.
Ideally develop a list of all people who touched the project. This will most
likely be a list of two people, you and your predecessor.

Minimal things you need to know: 1) Where are the files? 2) How do you build
the project? 3) What is the typical input? 4) What is the typical output? 5)
Are there any legal issue?

IMHO most projects have a collection of major parts. Start documenting those
parts. Personally, I like MS One Note, but a pad of paper is better than
nothing. After each major part is documented – as in a paragraph on each,
start delving into each file. Create a paragraph about each.

Next I would try and document the requirements. It is critical to know what it
is supposed to do. This should cover details of the goes into and goes out of.
Also essential is legal issues. Everything legal you must inform management
of, and have a documented reply! If there are no legal issues, you still need
a confirmation email saying that. Do not put your freedom at risk, because ‘of
course there are no legal issue what do you think we are building’. You should
not become the patsy for someone else’s mistakes.

Bring all of this to your boss. Your boss should have some idea of the ‘Hell’
you have been inflicted with. Make sure your boss realizes: the ‘un
professional’ people before you could not be bothered to document the bare
minimal, but now you, ‘the professional’ has done so. Also tell them how many
man hours this took.

If it looks like this is going to take more than a man week, enlist help from
others to get the above done. Get your boss to agree to ‘Compensatory time
off’ or ‘over time’ to get this hand over done. Since you only have a month
before the person leaves. Stress to your boss, an extra man day spend this
month will save a man week in the future.

Next understand how to make changes. Make some kind of needed change, and walk
through the implementation. I recommend for the first one something like
change of wording somewhere.

If you get help, have people document routines. 1) Purpose of routine 2)
inputs 3) outputs 4) side effects.

Next document known problems.

Also obtain a list of customers who use product.

Are there test scripts? How do you run them? How do you change them.

When the month is over, analyze what you have documented. 1) Is there enough
that you will not be spending most of your time saying WTF? 2) Would it be
easier to re write the code? Try to resist this, as it might be easier in your
mind it is often harder, and not rewriting is part of this exercise for the
last month. 3) Does your boss appreciate what you have done, and how hard this
is? Given the state of the project I would assume not. If your boss had any
skills it would not have been left that way. Is there a bonus in your future
for this? I would also consider looking for a new job. Undocumented
development is a key sign for a poorly run organization.

~~~
rayray07
Thanks Sloaken - appreciate the length you have gone to here. Some useful
suggestions but a few clarifications on my brief:

1\. It's an in life product that's been in the market for a number of years,
no big recent development on it from what I see.

2\. I'm not responsible for the code - I work with the team that is but
because it's in life don't think there is a dedicated code expert for this at
the moment.

3\. Boss is very aware and supportive - he laid his cards on the table when he
offered me the job. They are in the same boat as they were parachuted in to
takeover due to previous manager moving on.


Does anyone deserve to have a billion dollars? - smacktoward
https://www.nytimes.com/interactive/2019/us/politics/billionaires-democratic-candidates.html
======
milsorgen
No one deserves anything but it's not up to a 3rd party to judge the validity
of what one can generate when playing by the agreed upon rules of the system.
Fix the foundation rather then boarding up the broken windows upstairs.


Petition – Student loan payments reduce gross income so taxed just like 401k - SQL2219
https://petitions.whitehouse.gov//petition/allow-student-loan-payments-reduce-gross-income-taxed-just-401k-and-medical-payments
======
dannypgh
These tax deductions make our tax system more regressive- the benefit of the
deduction is proportional to your marginal tax rate, and you have to be able
to afford school for it to have any benefit.

I've no objection to policy measures like this as long as they're coupled with
other changes to increase the progressiveness of the tax system, but given the
outcome of the recent election, I wouldn't bet that taxes are going to become
more progressive.


YouTube: An open letter to our community - DLay
https://twitter.com/youtube/status/950847377816113153
======
aynsof
Context: [https://www.theguardian.com/world/2018/jan/02/outcry-as-
yout...](https://www.theguardian.com/world/2018/jan/02/outcry-as-youtube-star-
posts-video-of-dead-body-in-japan)

Apparently a YouTube 'celebrity' released a video showing the body of a man in
Japan who had committed suicide. YouTube is apologising for not having dealt
better with the issue.

------
gizmo686
Context?

Its a bit ironic to open with "You deserve to know what's going on.", and not
explain the background prompting the message.


The Scientist - rami
http://www.the-scientist.com/

======
MuddyMo
Dude, check your link.


The Boolean Satisfiability Problem and SAT Solvers - amirouche
http://0a.io/boolean-satisfiability-problem-or-sat-in-5-minutes/
======
sjg007
I've alway been interested in this problem. I feel like information theory,
Bayesian analysis including Markov chain monte carlo could give you some
insight into the distribution of truth values for a satisfiable configuration
especially around the phase transition. You can covert 3-SAT into a Bayesian
network but exact inference is still NP complete. There should be some higher
order information in a graph of the k-SAT problem... But many of the
algorithms here are still NPC (e.g. finding a clique).. So then you discover
tree width (tree decomposition) as an approximation (also in Bayesian
networks) and find out that it is quite useful but still doesn't quite help.
It makes faster SAT solvers but we haven't found anything invariant yet.

Anyway I still enjoy thinking about the problem, my random ideas have taken on
more structure based on diving into the different subjects and trying to use
them on this problem. I find it fascinating that you can take something simple
like these linear circuits and it turns out that they are not simple at all
and that they scale through the different disciplines.

------
PhilWright
I'm a little doubtful about the quality of the article. In the first section
it says...

"A problem is NP-complete if it belongs to the set (or “class” if you prefer)
of the hardest problems in NP - hardest in the sense that every problem ever
exists in NP can be reduced to them. (Thus being able to solve a NP-complete
problem is equivalent to being able to solve every problem in NP)."

100% wrong. All problems in NP cannot be reduced to NP-Complete. All problems
in NP-Complete can be converted between each other. I didn't bother reading
the rest of the article, if this basic information is so wrong the rest
probably is as well.

~~~
DerekL
No, the article is correct. Wikipedia says, “A problem p in NP is NP-complete
if every other problem in NP can be transformed (or reduced) into p in
polynomial time.” They cite the paper “The complexity of theorem-proving
procedures”, Stephen A. Cook (1971), which says:

        It is shown that any recognition
        problem solved by a polynomial time-
        bounded nondeterministic Turing
        machine can be "reduced" to the pro-
        blem of determining whether a given
        propositional formula is a tautology.

[https://en.wikipedia.org/wiki/NP-
completeness](https://en.wikipedia.org/wiki/NP-completeness)
[http://dl.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=805047](http://dl.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=805047)

------
opportune
"At the moment the most efficient algorithm (for integers larger than 100
digits) we can implement into pre-existing computers{3} has a sub-exponential
running time. But we can’t say for certainty that the it is not in P."

Author needs to fix this typo. Additionally, I think this is sloppy reasoning
and will confuse readers. Sub-exponential algorithms include polynomial
algorithms, so saying that "X is subexponential but we can't prove it is not
in P" is not as precise as "Algorithm X is subexponential but at best
superpolynomial, which is not to say that problem Y cannot be in P in
general".

~~~
acchow
Agreed, the wording is a little strange but I think readers of this will
understand the meaning anyway.

~~~
schoen
It's probably no less incorrect than saying "the suspect is now somewhere
north of Mexico, but we haven't been able to rule out the possibility that
he's in Canada" (with an unstated assumption that normally people said to be
north of Mexico would be found in the United States).

Edit: on reflection, I actually think I agree with opportune's concern after
all, which I had slightly misunderstood at first.

------
zmonx
Thank you for sharing! A great reference for SAT solving is: Donald Knuth,
_The Art of Computer Programming_ , Volume 4, Fascicle 6: Satisfiability.

SAT is also an opportunity to point to an important family of data structures
called _Binary Decision Diagrams_ , abbreviated as BDDs, and their variants.
Using BDDs, you can solve many interesting tasks that would be infeasible with
most other known methods.

Of particular relevance are ordered and reduced BDDs, sometimes abbreviated as
ROBDDS, or also simply BDDs if it is clear from the context that they are
ordered and reduced. A second very important variant are zero-suppressed BDDs,
abbreviated as ZDDs.

More information is available from:

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

and especially in:

Donald Knuth, _The Art of Computer Programming_ , Volume 4, Fascicle 1:
Bitwise tricks & techniques; Binary Decision Diagrams, of which a fascicle is
available online:

[http://www-cs-faculty.stanford.edu/~knuth/fasc1b.ps.gz](http://www-cs-
faculty.stanford.edu/~knuth/fasc1b.ps.gz)

One application of BDDs is found in the constraint solvers for Boolean tasks
that ship with some Prolog systems. For example, consider the SAT formula from
the article:

        a∧(a∨x∨y)∧(¬a∨¬b)∧(c∨b)∧(d∨¬b)

With SICStus Prolog and its CLP(B) library, we can express this task by
posting the following query:

        ?- sat(A*(A + X + Y)*(~A + ~B)*(C+B)*(D + ~B)).

In response, the system answers with:

        A = C, C = 1,
        B = 0,
        sat(X=:=X),
        sat(Y=:=Y),
        sat(D=:=D).

This is an example of a SAT solver that is _complete_ , which is an important
classification that is also explained in the article. In this concrete case,
the Prolog system's answer means that A and C must _definitely_ be 1, and B
must _definitely_ be 0, to make the formula satisfiable at all.

In this concrete case, the other variables (X, Y and D) may each be assigned
any of the two truth values: They have no influence on the formula's
satisfiability!

Using the predicate labeling/1, you can _generate_ all satisfying assignments
on backtracking. In this concrete case, they are:

        ?- sat(A*(A + X + Y)*(~A + ~B)*(C+B)*(D + ~B)),
           labeling([X,Y,D]).
        A = C, C = 1, X = Y, Y = B, B = D, D = 0 ;
        A = C, C = D, D = 1, X = Y, Y = B, B = 0 ;
        A = Y, Y = C, C = 1, X = B, B = D, D = 0 ;
        A = Y, Y = C, C = D, D = 1, X = B, B = 0 ;
        A = X, X = C, C = 1, Y = B, B = D, D = 0 ;
        A = X, X = C, C = D, D = 1, Y = B, B = 0 ;
        A = X, X = Y, Y = C, C = 1, B = D, D = 0 ;
        A = X, X = Y, Y = C, C = D, D = 1, B = 0.

------
threepipeproblm
For small n: [http://www.kevinalbrecht.com/code/joy-mirror/jp-
trutab.html](http://www.kevinalbrecht.com/code/joy-mirror/jp-trutab.html)

------
andrewflnr
A P-complete programming language seems like an interesting concept in cases
where you want to allow programmability but guarantee that running programs
from idiots or hostile actors doesn't take too long. Is there any work in
using Horn clauses as a sort of P-complete programming language, maybe a bit
like Prolog? Or are there nicer P-complete problems that get the same effect?

~~~
zmonx
Datalog is a syntactic subset of Prolog, and Datalog queries can be evaluated
in polynomial time. This does not fully answer your question, but I hope it is
useful for you as a starting point.

------
gfredtech
NP-hard problems are quite interesting.

~~~
JPLeRouzic
But a NP-hard problem is not necessarily hard to solve in a specific case. So
most solvers try basically to enumerate possible solutions and prune them
before solving them.

I would expect a smarter approach in solvers' design.


Sisyphus Kinetic Lego Sculpture - chaosmachine
http://jkbrickworks.com/sisyphus-kinetic-sculpture/
======
mattnewport
The working combination safe is very cool too:
[http://jkbrickworks.com/working-combination-
safe/](http://jkbrickworks.com/working-combination-safe/)

~~~
icebraining
I really like his version of the useless machine as well, really playful :)

------
DiabloD3
Now that, my friends, is art.

~~~
tajen
Awesome! Omg there's also a particle accelerator. It seems like Lego is
encompassing the trend of crowdsourcing with ideas.lego.com, but I'm
disappointed it's not a decentralized model where the everyone could sell
their own construction and get a margin from it.

~~~
steve19
It looks dead. Projects which hit the required 10k supporters 18 months ago
are still "being reviewed" but Lego.

You are right, they should allow anything to be sold if a certain number of
pre-orders can be met and copyrights cleared.

~~~
jerrysievert
far from dead, lego releases a couple of projects about every 6 months. the
latest is a doctor who set, that is just about to be released.

it takes a couple of months to review, and usually they (lego) are active in
the comments section.


Posterous Acquires Fellow Y Combinator Alum Slinkset - ed
http://www.techcrunch.com/2009/06/23/posterous-acquires-fellow-y-combinator-alum-slinkset/

======
yan
Is "acquires" just a fancy term for "agreed to work together"?

~~~
jmtame
that's usually a partnership. an acquisition typically involves quite a bit
more on the business and operations side.

~~~
bravura
How can a company with only $740K
(<http://www.crunchbase.com/company/posterous>) afford to acquire Slinkset?
Equity?

~~~
jmtame
probably a stock swap.

------
rms
Congratulations guys!

(even more so because there is a screenshot of my slinkset on Techcrunch!)

------
sachinag
Well, that's one way to get exceptional coders (I assume Garry and the other
Sachin made them sign employment agreements).

~~~
zhyder
Since the acquisition was likely done with stock, vanilla vesting would be
enough to make them stick around.

------
FreeRadical
Does anyone have any ideas how posterous intends to make money?

~~~
webwright
Well, you could take a look at WordPress (whose revenue growth is pretty
enviable). Hosted blogs, premium add ons.

------
prakash
Congrats to both the companies, the future is bright for both kind of services
as stand alone's or as an integrated service.

------
brandnewlow
It's unusual for one YC company to acquire another, right?

~~~
jmtame
i think it will become inevitable. as yc increases its number of investments,
there will be more companies doing similar things and competing. i think the
ethos of yc is to prefer a partnership (or downright acquisition) over
competition, as most times, you have other competitors, and you can find ways
to team up and take on the big guys. why not work with the same people who
went through the same seed fund as you? the real question is: at what point is
it acceptable to merge or get acquired?

paypal and x.com were a great example of what can happen through a merger.
they could have spent their time killing each other, but they merged and set
their focus on much bigger things: taking advantage of ebay's mismanagement
and poor execution to deliver the world's leading online payment platform.

private acquisitions seem strange, but i have always believed that the real
reason large companies cannot form from start-ups is because people may be too
resistant to team up with their leading competitors to take on an even larger
competitor. i wonder what would become of microsoft had they not teamed up
with ibm, or apple.

~~~
Frocer
From what I have read, I think the PayPal and X.com merger did more harm than
good. There were a ton of ego clashes, technology preference differences (unix
vs. .net), etc.

But merging with the right team will certainly help, and I am sure the 2 teams
coming out of the same YC class probably know each others' capabilities fairly
well.

------
nostrademons
Congrats Slinksetters!

~~~
jjs
This doesn't appear to be their exit; more like a new beginning.

~~~
nostrademons
Is that any less deserving of congratulations?

~~~
jjs
Not at all; I was just under the (mis?)impression that you intended to
congratulate them for something that hasn't happened yet.

------
vaksel
did some money change hands?

~~~
rms
They're not going to tell us, but it seems obvious to me that the bulk of the
deal was in stock. Crunchbase has posterous's funding as YC's 15k + 725k in an
uber-angel round which doesn't make a cash acquisition realistic.

~~~
sachinag
I am the other Sachin Agarwal (at Dawdle.com), and I know nothing, but I will
say this: I will bet you a beer that you're wrong.

As an acquiror, you want to do a deal as cheaply as possible. Given that
Slinkset never really took off while Posterous has, a deal was probably done
in the sub-six figures or perhaps none with just offers of employment. At this
point, even though you lose the cash, it's cheaper to use $50K cash than $50K
in stock given that you'd reasonably expect the stock to appreciate in value
at this point. Acquisitions usually only happen in stock in either "pooling"
transactions (i.e. Kayak/SideStep), where the acquiror cannot afford to pay
cash (i.e. pick your _keiretsu_ deal from the late 90s), or the seller values
the stock more than cash (i.e. Twitter/Summize).

Why, yes, I _am_ a former technology M&A investment banker.

~~~
zhyder
It depends on how much you want them versus how much they want you. If you
can't attract them with just cash, you're going to have to give stock.
Considering the Slinkset guys are hungry entrepreneurs who'd probably want a
stake, and an all-cash transaction in 6 figures wouldn't make them f@#$-you
rich anyway, I'd guess this was a most- if not all-stock deal.

It also depends on what Posterous's cash situation is like; if much of the
750k is lying around idle, they'd want to spend it, else they'd rather avoid
having to raise money again, which would result in giving up even more equity.
Plus, all else being equal, I'd rather share equity with cofounders/employees
than with investors.

------
medianama
Is it really newsworthy?


Once Upon Atari - hhm
http://www.erasmatazz.com/library/Miscellania/Once%20Upon%20Atari

======
comatose_kid
Not immediately obvious, but this article is written by Chris Crawford,
programmer of various games (war games) in the early / mid 80s.


Plsdr. Python-based software-defined radio (SDR) - auslander
https://arachnoid.com/PLSDR/
======
bobowzki
There are many ways to generate an SSB signal. In particular the Weaver method
is more common in SDR applications than the phase shift method he/she uses.
There're lots of literature online so I don't know why he couldn't find any.


Ask HN: What is the most influential not-technology book(s) you have ever read? - rayalez

Hi, guys!! I am looking for great books to read, I'm sure people in this community can recommend something very interesting.
======
morganf
It would be interesting if we answered the question, along with another: _why
/how?_ (Is that two other questions?). Knowing why and how, say, Roger
L'Estrange's 1715 Aesop's Fables influenced you so would be much more
interesting than just knowing that, it did influence you.

Me? Jane Jacobs' _Death and Life of Great American Cities_. I read it when I
was 21 (1998) and it changed how I walk down the street, every single day of
my life since. Why this street is full of life, and that street is empty, for
example. But not only that: she basically argues that central planning is
disastrous for cities, and that cities should think on the street and human
levels, from the ground up, and then iterate from there (rather than top-
down). These ideas applied to other areas of life -- like software
development, for example -- have been very powerful for me. I'd argue that
Jacobs' thought is a precursor to the whole XP/agile software movement, for
example. Both start with the same premise, _the spec is dead_ (in software
language). All this is probably obvious to y'all, but wasn't to me at 21 ;)

------
robin2
"Influential" can be tricky to pin down, but a couple of books that made a big
impact on me at a certain age were "Prometheus Rising" by Robert Anton Wilson
and "The Muse in the Machine: computers and creative thought" by David
Gelernter. (The latter arguably counts as a technology book, since it's
supposed to be about AI, but it's more to do with psychology and literature.)

More recent sorta/kinda philosophy: "The Craftsman" by Richard Sennett; "From
Novice to Expert: excellence and power in clinical nursing practice" by
Patricia Benner; "The Craft of Thought: meditation, rhetoric, and the making
of images, 400-1200" by Mary Carruthers.

I also like to think that "Asterix in Britain" by Goscinny and Uderzo had a
formative influence on me...

------
stevekemp
Book recommendations and tastes are very personal.

I suspect that if you're not specifically looking for technical books you'd be
better off looking at the common lists of 100 most popular books, or similar.

Me? I'd say "Dune", but that is only useful if you have an interest in sci-fi.
If not then the Count of Monte Cristo is a glorious tale of revenge and plot.
Beyond that recommendations become vague: Steven Brust, Zelazny, Tolkien,
Pratchett & etc.

------
walterbell
_The Essential Rene Guenon_ (meta-tradition). _Last and First Men_ by Olaf
Stapledon (Spinoza-inspired scifi). _Embassytown_ by China Mieville. _Past
Master_ by R.A. Lafferty.

 _Aesop 's Fables_ by Roger L'Estrange, 1715 3rd ed. in 2 volumes, ~900 pages
total, otherwise it's an abridged edition.

Heraclitus complete fragments

------
slambam
The Bible. Harold Bloom's "Western Canon", Knausgaard's "Min Kamp", "The World
According to Garp", Robertson Davies Deptford Triology, "Anna Karenina",
"Consilience of Knowledge", "House of Leaves" "The Apprenticeship of Duddy
Kravitz" All these books messed me up to varying degrees.

------
wsc981
The book "The Age of Reason" by Thomas Paine really convinced me that
something like a personal God doesn't exist. I've been raised a Christian, so
changing the Christian mindset was not easy for me, it took a course of
several years to stop believing in a personal God.

~~~
lutusp
My favorite picture of god was Einstein's -- or Spinoza's, which is where
Einstein got his idea: a god that isn't remotely like a religious person's
idea of god, an entity roughly equal to nature, and one that couldn't be
bothered with our small problems.

When I see something in nature that speaks to a deeper level, that connects
apparently unconnected things, that's as close as I get to a religious
experience (i.e. not very close at all). For example, there's a cicada that
has evolved a survival strategy based on prime numbers:

[http://arachnoid.com/prime_numbers/index.html#Mathematical_L...](http://arachnoid.com/prime_numbers/index.html#Mathematical_Locusts)

I always like finding examples that connect mathematics with nature, so this
one was particularly satisfying.

My point? I can easily picture natural selection brutally filtering out
everything that didn't make an ingenious (and chance) use of prime numbers to
assure survival, but by the same token I can't picture nature caring at all
what I think.

------
sunstone
Consilience by E.O. Wilson is excellent.

------
DanBC
Milk, sulphate, and Alby Starvation.


LibreTaxi – A free and open source alternative to Uber and Lyft - bpierre
http://libretaxi.org/
======
spIrr
I'll post a comment from ProductHunt, which might give a bit more context to
where the founder sees this going, and why cash rides make sense under certain
circumstances he designed the app for:

[…] I have gone to the founder's blog and it provides a better understanding
of where he sees it going: Uber (and similar apps) will never reach many
remote villages, cities and regions around the world (and don't have to), but
technology could greatly help the local communities in solving their
transportation problems that are as "simple" as getting from point A to point
B with no other feasible options available.

For more details, here's the founder's blog on this:
[https://medium.com/@romanpushkin/how-i-made-uber-like-app-
in...](https://medium.com/@romanpushkin/how-i-made-uber-like-app-in-no-time-
with-javascript-and-secret-sauce-94ef9120c7f6#.dc99pd5qm)

~~~
radarsat1
> technology could greatly help the local communities in solving their
> transportation problems that are as "simple" as getting from point A to
> point B with no other feasible options available

In rural communities here in Chile, and also in smaller towns, there is an
amazing solution to this called Collectivo. I had never heard of it before
arriving, but man it's the greatest thing. It's something in-between a bus and
a taxi: a taxi with a predefined route. So if you're on a route, which there
are many, you flag down a collectivo as it passes, and since both you and the
driver already know where it's going, it'll stop for you even if there are
already people in the car.

What makes this amazing is that it's _cheap_ because the route is pre-set, and
it's shared, and the driver can just go all day knowing there will be people
along the route, and doesn't have to finish one ride before starting another.
But meanwhile they'll generally go partially off their route if you request
it, and it's not too much of a bother.

Why don't North American rural areas do this? It's a really great way to get
around, and makes it so you can live (or at least visit) in rural areas
without owning a car.

~~~
nicky0
Americans don't like sharing.

~~~
radarsat1
Rural Americans? I don't have any experience in rural America, but I heard
they're pretty friendly ;)

But maybe, yeah..

~~~
pavel_lishin
I grew up from 10 to 18 in a moderately rural area outside of Dallas. We share
fine if and when we have to, but for the most part, we don't have to.

I saw a lady walking along the side of a rural road - this was about 12 years
ago, so there weren't buses then, and there won't be in the next 12 years
either - so I pulled over and asked her where she was going. Turns out she was
going to walk, in the summer heat, to a grocery store about 10 miles away.

We shared my car just fine. But I certainly wouldn't go over to a neighbor and
ask for a ride to the grocery store if my car was running ok.

~~~
nicky0
I think that's it. Needing to share or using someone else's car is seen as a
sign of weakness. OK for an old lady maybe. But a Real American rides their
own damn car, and pays for their own damn healthcare...

------
reubensutton
My concern with this is the problem of ensuring the safety of the person
driving the cab and the real identity of the rider.

Lots of drivers will be reluctant because they can be stiffed on the bill.
Lots of passengers will be reluctant to use it due to the inherent risk of
riding with what is essentially a stranger.

~~~
galdosdi
Shouldn't be an obstacle. This is already exactly how normal, hailable,
regulated taxis work (at least in much of the USA, and certainly in NYC -- I
can't speak for elsewhere). That's why taxi driver is (at least in the US) a
statistically more dangerous occupation than police officer.

From the point of view of a driver, this scheme is less dangerous than the
status quo, at least there is potentially a little more paper trail to prove a
rider rode.

From the point of view of a rider, there is the advantage in regulated taxis
that the driver is licensed and identified, but in countries where it's
feasible, I don't see why LibreTaxi couldn't have an option to "request
licensed driver only" or something

~~~
SilasX
I have to disagree that this is "exactly how normal taxis work". Notable
differences (many apply to Uber/Lyft also):

1) There's no check to ensure that the vehicle is ensured _for commercial
rides_ before they start taking hails.

2) Likewise, no background check.

3) No regulatory body to investigate cases of e.g. scamming passengers out of
money or refusal to comply with agreed-upon rates and dropoff. [1]

4) The local PD doesn't stand ready to treat assault on a driver like assault
on a police officer, in terms of marshalling resources.

5) No central registry, or even private registry of cars/drivers in operation.

6) Drivers aren't trained in the relevant anti-robbery countermeasures.

7) In NYC, the barrier to prevent the most obvious kinds of robbery.

That makes a big difference in safety of paying cash to a roving operator!

Sadly, I think the "big corp middleman" does add a lot of value that a free
app can't replicate without similar investment, scale, and "walled
garden"-ness.

[1] I know commenters here like to roll their eyes about the clumsiness and
lackadaisical enforcement -- I'm one of them! But it's at least _something_ ,
which prevents a major scale-up of this behavior.

~~~
usrusr
All those points would not be an obstacle to an open source solution that is
not trying to build a grand unified global Uber drop-in for random rideshare
drivers to sign up with, but instead only ("only") tries to be an installable
turn-key solution for existing operators (or regional federations thereof) to
add the smartphone hailing user experience to their existing offering, without
much investment.

I did not find a clear answer on the site wether this project is aiming at
independent ridesharing or at being a turn-key solution for more conventional
taxi dispatch organisations. There is the idea of "hack and tune it for your
city", which is clearly not the global approach, but then they also advertise
"1-minute hiring", which is definitely not what I would be looking for if I
were to customize it for my hypothetical preexisting organisation.

Something like wordpress or the myriad open source online shop systems, but
for taxi dispatch and with a unified smartphone client (or client protocol,
actually) that can work with all installations. That might be the best way to
avoid a single gobally dominant private network that can set their "tax" on
all rides at will. The app/clients might be supported for discovery by a
global registry of regional installations and some trust management, but it
might actually be not only easier but also more reliable to just leave that to
plain old web, with something like libretaxi:-URIs to connect the app to a
regional network discovered by your search engine of choice.

------
jasode
_> , pay cash upon arrival. _

Paying cash is a non-starter. I haven't been to a bank ATM in over 10 years. I
don't even know what my card's secret PIN is to make a cash withdrawal. Being
virtually cashless by using credit-cards _for everything_ is very common in
professional circles.

A credit-card is simpler and the exact line-item amount showing up on my
monthly statement helps me keep track of travel expenses. (Also, many credit
cards transactions will download to the Quicken ledger for people that use
that personal finance software.)

Paying by credit also helps keep drivers accountable and reduces fraud.

~~~
mschuster91
> Paying cash is a non-starter.

That certainly depends on the country. Good luck living cashless in Europe,
especially in Germany where virtually no small store, food vendor etc. has a
CC reader.

~~~
pimterry
Really? That's pretty surprising - I live in Barcelona, and I use cards 99% of
the time, and in the UK it was even easier. Even taxis here have card
machines, and every small shop definitely does. The only holdouts are the
occasional tiny old wine bar here and there, but even most of them have moved
with the times.

~~~
schlowmo
Unfortunately I didn't find more actual stats, but there is a report from
Deutsche Bundesbank (German Federal Bank) from 2014 which states that in 2014
the share of cash payments in Germany was 79.1% and only 1.3% credit card
transactions.[0, page 27] If I remember correctly, there is no other European
country with such a low percentage of credit card transactions.

[0]
[https://www.bundesbank.de/Redaktion/EN/Downloads/Publication...](https://www.bundesbank.de/Redaktion/EN/Downloads/Publications/Studies/payment_behaviour_in_germany_in_2014.pdf?__blob=publicationFile)
[PDF]

~~~
lorenzhs
The relevant page is 31 (pdf-page 33), containing a figure "Share of payment
instruments broken down into various transaction amount categories in 2014,
2011 and 2008". In particular, 96% of transactions below 5€ were in cash, and
90% for transactions between 5 and 20€.

A breakdown by age group is on page 33. Unsurprisingly, young people pay by
card more often than older people.

Various other figure breaking down card/cash usage along different lines are
on the subsequent pages. Poorer people use cash for a larger percentage of
their transactions than richer people.

Page 63 breaks down usage by occasion/purpose of payment
(gas/restaurant/retail/...).

Lastly, 97% of Germans have a girocard (debit card), but only 1 in 3 have a
credit card.

------
bpierre
About the trust and reputation issue, I think blockchain technologies could
play an important role for decentralized services like this.

I would like to see a multipurpose reputation / trust system based on the
blockchain, exposing all the needed features as a simple library and / or HTTP
API, ready to be implemented by apps and websites.

I think we are still in a period where a lot of products are built either in a
centralized way, or all on the blockchain and decentralized technologies (like
IPFS). It makes sense as we are still in the experimentation phase, but it
could change in the near future. People could start using the blockchain where
it is the most efficient today, as a brick part of a product (e.g. to build a
solid decentralized reputation system), instead of being the foundation layer
of the product.

~~~
repomies691
I think most of this "blockchain talk" is just nonsense. Uber/lyft similar are
very complex services, which are pretty pain in the ass to maintain and
develop. What would be the incentive to develop such an app in decentralized
fashion? What if there are problems between rider and driver, who will act as
a middleman to resolve issues? What about basic support etc?

~~~
bpierre
> What would be the incentive to develop such an app in decentralized fashion?
> What if there are problems between rider and driver, who will act as a
> middleman to resolve issues? What about basic support etc?

Sorry if I wasn’t clear enough, but I am precisely talking about this: using
the blockchain for what it is good at today, instead of trying to put
everything on a decentralized system (which is really hard or just impossible
for now).

Uber / Lyft and others have a reputation system in place, opaque and developed
specifically for their product. It’s an important part, but it is just a brick
in the complexity of the services they are building.

I am talking about replacing this brick by an open, blockchain-based
reputation service (that doesn’t exist AFAIK). That way, any app developer
could benefit from the transparency and guaranteed properties from the
blockchain. It could even be easier to use than to implement it as a private
system.

~~~
vosper
What is "the blockchain" and what built-in features does it have that can
replace a purpose-built reputation system?

~~~
bpierre
In this context, you can see the blockchain as a database, always available,
and containing entries (transactions in blocks) that you can not delete. It’s
very simplified, see the Wikipedia article [1] for more details about
blockchain systems.

The specific features that I find interesting to build an “open trust system”
built on top of it, compared to a traditional database, are:

\- Transparency: anyone can explore this database, and verify that the
software is using it in a transparent way. It might sound not important for
something like Uber, but if you build an open trust system that could be used
by different services, it becomes very important for authors (Uber, Lyft,
etc.) to trust this system.

\- Reliability: because a blockchain is distributed, it is always running and
available.

\- Trust: transactions are immutable and a transaction can not be falsified
once confirmed (validated).

[1]
[https://en.wikipedia.org/wiki/Blockchain_(database)](https://en.wikipedia.org/wiki/Blockchain_\(database\))

~~~
vurpo
There is a problem: cryptographic solutions (like blockchain) cannot help
_build_ trust, only to _maintain_ it. If a driver loses trust, they can just
create a new private key and now they're up and running without any bad
reviews again.

~~~
AlexAffe
Very good point.

------
kiliankoe
Completely disregarding the rest of the page/service/post I kinda dislike that
Telegram is being touted as the most secure messenger out there. That's not
even close to true. By default all that Telegram offers is transport security
and afaik unaudited end-to-end encryption with their own protocol if two users
choose to use it (and lock themselves into the platform they start that
conversation on).

~~~
tommorris
Also having to have a phone number thing to set up an account sucks (same with
Signal, WhatsApp etc.).

------
jasonlfunk
It's definitely an interesting idea. Though one of the major features that I
love about Uber/Lyft is that I don't have to worry about paying in cash.

~~~
pmyjavec
_BitCoin integration is on the way!_

I know what you mean, but the Bitcoin integration is going to be really
exciting!!!

~~~
darpa_escapee
If there is one thing people love to be paid in, it is a collectible whose
value widely varies daily based on when its larger holders game the system or
when online drug markets get shutdown.

~~~
bcook
I'm not completely sure whether you're referring to cash or Bitcoin.

~~~
ralmeida
How does cash vary in value? If you have a $50 bill, you can expect to buy a
very predictable amount of food (for example) next week, regardless of what
happens. Not so much if you have 0.0521 BTC.

~~~
bcook
There are plenty of cash currencies, aside from USD, that fluctuate wildly.

~~~
ralmeida
That's true, but most vary fluctuate wildly with respect to the USD, not in
their purchasing power within their country of origin, even less so in the
span of weeks or days.

For example, if I was paid the equivalent of a 50 USD ride in Bitcoin in Jan
4, and were to go to buy food today, I could only buy 40 dollars worth of
food.

Which currency does that? Sure there may be a few examples in case of extreme
inflation, etc, but it's not the norm at all.

~~~
bcook
My point is that both are flawed and have their uses.

I won't be paying any bills with Bitcoin any time soon.

------
dvfjsdhgfv
Am I the only one to see the irony of this? Uber and Lyft bring "disruption to
the industry", then a new player enters and has the potential of disrupting
their business model... Now, their only line of defense against LibreTaxi is
to use the same rhetoric the Taxi companies had been using against them.

~~~
TulliusCicero
Their real defense is having a better product. I have a difficult time seeing
LibreTaxi take off; at least in developed countries, I doubt people want to
negotiate prices with drivers ahead of time and then pay cash.

------
anondon
> Based on Telegram app, most secured and fastest messenger in the world.

Red flag right there.

~~~
lucb1e
It's just a Telegram bot, it's not "based on" Telegram's source code (which is
what I assumed when reading your comment before opening the page). That's like
saying Facebook is based on PHP and saying "that's a major red flag!"

~~~
Dylan16807
Yes? That _would_ be a major red flag if it was being touted as a feature.
Especially if you add in a claim of "the most secure and fast programming
language".

------
coffeedoughnuts
Re: Credit Card Integration

Stripe doesn't really cost that much; you could support card payments and pass
the stripe fees along to both parties (50/50 to the passenger and driver)

This is a really good idea if it can take off, but I think cash only is a non-
starter, though I understand the restriction initially

~~~
timthelion
Unfortunately this isn't possible for a service like this. If money passes
through the hands of the app-creator than they have to hire an accountant,
take on risk, and file tax returns. Not possible with a non-comercial service.

~~~
colinbartlett
Stripe Connect lets a marketplace invite providers to create an account and
therefore Stripe handles a good portion of what you refer to.

------
martin-adams
Interesting idea. So does this skip on any verification that the person can
drive and car is safe to be in?

~~~
angry-hacker
What does uber or lyft do to take care of the safety?

~~~
horsecaptin
Probably some kind of a criminal background check. A Driver history check.
They also make sure that cars are new enough.

------
namlem
I don't think this is the right approach. IMO, what we need a platform for
regional driver co-ops. You obviously wouldn't have the consistency of Uber
and Lyft, but the service would take only a tiny cut since they don't have to
provide anything other than the app. When you want to hail a car, you'd be
able to choose from any local services, which are responsible for the vetting
and insurance of drivers. It has its flaws, obviously, but such driver co-ops
already exist in some places, so I think it could work.

~~~
Kalium
It's possible that consistency may be a large part of the value proposition of
Uber or Lyft. I can go across the country and get a ride with a company I have
some level of trust in. Regional co-ops do what taxi companies did, forcing me
to re-evaluate everything all over again in every new place.

~~~
bogomipz
Where's the consistency in getting into a stranger's car every time you use a
service? The consistency would be the app? Often Uber drivers also drive for
Lyft and vice versa. If the same drivers also embrace Libre Taxi I fail to see
any fundamental difference in the experience.

~~~
Kalium
Consistency in which app to use, the experience in using it, payment handling,
insurance, customer service, and driver vetting. All of these offer value
individually and in their consistency across locations.

You're right! It's absolutely possible that every driver may embrace Libre
Taxi. In which case there would be no advantage whatsoever in terms of
consistency.

------
jstejada
If becoming a driver is so easy, what about security for passengers? I'm from
a city that has been known to be "dangerous", and the main reason I use Uber
there over taxis is for security. How does LibreTaxi prevent bad actors from
becoming drivers?

~~~
fenwick67
Uber is not inherently safer than a taxi. Why do people always say this?

~~~
hehheh
It's not inherently safer but Uber does do things that most taxi companies
don't that help improve safety, albeit slightly. Really basic things like
providing the user with a photo of the driver and a description of the car
including license plate so the user can be sure (well, more sure) that the car
that arrived is the car they requested.

As far as I'm aware (in my experience) the only way you can compare the taxi
driver's face to their license is by getting in to the back of the car, where
the license photo is visible.

------
CrLf
At the first glance, this seems to be a way to bring the 3rd world taxi
experience to the 21st century.

Really, no taxi licenses, no requirements on cars, no driver verification, no
GPS, paying cash... I feel safe already.

~~~
ycmbntrthrwaway
> no taxi licenses

Well, this one is arguably a good thing.

------
eloisant
There are actually taxi cooperative or call center that have their own app.
But they're each limited to one city.

What they need to do is get together to release a high-quality app that works
all over the world by relying on the local taxi call center partner.

~~~
jagermo
Mytaxi (mytaxi.com) is a popular taxi app in germany. Since they are using
"real" taxis, they get around all the problems Uber and Lyft face.

------
xrjn
I'm surprised no one mentioned Arcade City[0], which is working on a peer to
peer alternative to Uber and Lift, using a blockchain. Drivers set their own
prices, and there are no georestrictions like on Uber.

[0] [https://arcade.city/](https://arcade.city/)

~~~
rkeene2
This service apparently requires a facebook.com account.

------
tehabe
I would love an app for calling and advising on regular unionised taxi service
in any city.

------
gmisra
If app-fication of ride hailing is what you want, it's worth mentioning that
in the SF bay area, Flywheel has done an excellent job of making a feature-
rich app and network [0]. Personally, I have found it to be an excellent
service, the things that matter the most to me are availability of rides,
timeliness of driver dispatch and arrival, and communication with drivers
(when necessary).

[0] [http://www.flywheel.com/passenger-app](http://www.flywheel.com/passenger-
app)

~~~
Kalium
I've used Flywheel!

Without being excessively negative, the experience showed me that Uber and
Lyft deliver value beyond the simple A-to-B transportation service.

------
docdeek
Interesting idea but not as convenient for someone who travels and doesn’t
want to organize a cash withdrawal to leave the airport. With Uber I can just
get going.

~~~
lucb1e
> doesn’t want to organize a cash withdrawal

You're not the first to mention this, but this is completely foreign to me.
I'd love to get off of cash, but there are just so many places in Europe that
are cash-only. The Netherlands is bad, but Germany is even worse. Lots of
bakeries, fries stores, stands, etc. are cash-only; in restaurants big groups
split and settle the bill with cash; and settling stuff between friends is
often cash as well (though this is more and more bank transfer / wire transfer
/ whatever it's called to IBAN within SEPA).

You're serious that "organizing a cash withdrawal" is 1) something you need to
do in the first place and 2) it's a hassle or something? I also read about
having a separate PIN for cash withdrawals (I had no idea a card could have
two PINs).

~~~
Dylan16807
Getting to a cash machine that won't charge you an arbitrarily large amount
for the privilege is nontrivial for many people.

~~~
softawre
Don't you just pull out cash before you leave then? Stop by a bank ATM or by
the bank if you need a different currency.

------
hd4
This is an absolutely brilliant idea, especially love how they're building on
Redis, Firebase and Telegram (regardless of whether you think it's secure or
not, that's hardly the point here), reinventing the wheel is what our industry
needs to stop doing, this may be the best example of "Standing on the
shoulders of giants" technology I've seen yet.

------
fataliss
I guess you need to think about this more as a monetized version of
hitchhiking than a free Uber/Lyft. Cause in terms of liability there is about
0 coverage. You can't even know if the driver is insured at all. While I love
the idea of the app and it's openness, I am not sure there would be a
market/use for it where Uber/Lyft is available.

~~~
dorianm
It's very similar to what Blablacar was before it received VC funding. And in
France we have [https://covoiturage-libre.fr/](https://covoiturage-libre.fr/)
too

------
sergiotapia
I would never use this or recommend it. Extremely unsafe. Any goon can create
a "Taxi" account and do whatever he wants.

~~~
feelix
I wonder if this issue could be helped with a good rating system

~~~
fb03
yes an escrow system would definitely help. It'd need some initial 'trust
seeding' tho, but if you're not too paranoid that's quite okay.

Maybe one of the creators of the system knows someone or runs a car himself
and he can initially start providing these initial "ok's" to the system.

------
gragas
The address shown on the phone is the address of a fantastic breakfast place
in Potrero Hill. I'd recommend it to anyone.

------
bruceb
Rideconnect.com, A way to create your own ride network was posted here a few
days ago.
[https://news.ycombinator.com/item?id=13502133](https://news.ycombinator.com/item?id=13502133)

All face chicken and egg problem but would be nice to explore uber
alternatives

------
UweSchmidt
Cutting out the middle man - that's what an internet business is supposed to
do!

------
creeble
Interesting, (I think) this is exactly the kind of app/service I was talking
about with a taxi driver in Tahoe a month ago.

It's a rural area with several small taxi companies, but none offer real-time
info or the convenience of a single app to use to call a taxi.

~~~
creeble
Wait, oops - no GPS tracking?

Um, that's the killer feature that makes Uber Uber. It's taxis with GPS.

------
homulilly
Using this looks like a great way to end up stuffed into a suitcase in the
bottom of a lake. Part of the appeal of Uber or Lyft is that they ostensibly
conduct background checks of some sort to weed out the psychopaths.

~~~
insulinrocks
This was my first thought. 1 minute driver hiring sounds like something a
serial murderer would love.

------
em3rgent0rdr
with #DeleteUber trending, I think now would be a great time to promote this,
but I think needs the following:

(1) ought to use a fully open-source messaging backend instead of Telegram
(closed server). Would be great if could interface to the Telegram bot with a
variety of messaging systems.

(2) needs to work without a dataplan if to be viable in rural areas (Silence,
the SMS-fork of Signal)

(3) needs to easily accept a variety of payment mechanisms, including credit
cards, PayPal(s), and crypto-currency, so can interface with people who don't
use cash.

(4) needs to have a distributed p2p reputation system (hello blockchain).

~~~
em3rgent0rdr
clarification: after testing out the app, it seems clear that passenger and
driver could agree on any mutually-agreeable payment method. But it would be
nice to have something integrated.

------
espadrine
In France, a somewhat similar effort is being built:
[https://le.taxi](https://le.taxi).

Except that it bootstraps its security on the existing vetting process for
taxi companies.

~~~
tom_mellior
... and on the existing mechanisms to ensure that the driver has insurance,
does not cut prices in a race to the bottom that harms everybody, and does not
cheat on taxes.

------
Sami_Lehtinen
In Helsinki Finland we had Kutsuplus, which was basically a shared minibus
taxi. It lasted five years and had to be subsidized heavily. It was about 50%
cheaper than Taxi. Yet of course also slower.

[https://www.wired.com/2013/10/on-demand-public-
transit/](https://www.wired.com/2013/10/on-demand-public-transit/)

------
thinkloop
Things I like about rideshares:

\- no payment friction

\- easy gps integration

\- safety

Things missing from this service:

\- see above

------
CodeWriter23
If you're in Los Angeles, I strongly recommend googling LAPD Bandit Cab
Enforcement before using this app to give rides. Also, other cities may have
similar enforcement operations.

~~~
tom_mellior
Why not just give a link if you know exactly what information you want to
refer people to?

~~~
CodeWriter23
I thought LMGTFY links were frowned upon around here.

~~~
softawre
Nope. See the discussion we had about this a couple months ago on HN.

------
exception_e
Might not be a bad idea to mark this as "beta" on the website and list some of
the roadmap ideas being worked on:
[https://github.com/ro31337/libretaxi#technical-roadmap-
unord...](https://github.com/ro31337/libretaxi#technical-roadmap-unordered) to
ease public concerns.

This is a _great_ idea, but it is really early on and needs a safety and open-
source-friendly CC integration before being advertised in my opinion.

------
hwestiii
Nice to see. Uber, Lyft, et al have always seemed like exactly the wrong
solution here. The availability of the vehicle and the demand for it are
inherently local phenomnena, so why should some arbitrary company who knows
where be the major broker for dealing with this issue worldwide? I understand
network effects, etc., but it seems that localized brokerage would serve all
parties the best.

~~~
tekknik
One massive benefit is increased resources for vetting drivers. How is my
safety both ensured and insured with LibreTaxi?

------
jacamat
I never carry cash. Why not just integrate Stripe for debit/credit card
transactions? Or literally anything.

~~~
anigbrowl
They're working on Bitcoin integration. Cash is legal tender for all debts so
it's the obvious place to start, plus people who may not want their activities
tracked too closely may be safer with cash.

Besides, you can't hand someone a suitcase full of electronic money. I mean
you can duct tape a black card into the suitcase or something but it just
isn't the same. Do your part to save the attache case industry.

------
daveheq
Sounds like a great way to get robbed... Drivers only take cash, robber
decides to rob driver of all cash.

Transactoons need to happen through the phone, not cash.

------
Steeeve
Install link doesn't work, and it doesn't show up on the play store.

------
Handwash
I don't like to bargain.

------
kixiQu
It could have great potential, and I see the virtue of this kind of thing
globally, but my first thought was "This seems like a great way to get
murdered." Maybe that's a gender thing?

------
mbostleman
Cash only. That makes it practical for me about .01% of the time.

------
Endy
How will they deal with the issues of ADA compliance, ensuring that the
drivers and vehicles are safe, and compliance with local T&LC regulations like
medallions, etc?

------
TeeWEE
This wont work. Taxidrivers often dont speak your language, and always try to
get high prices by being not so friendly. Uber/Lyft solves this problem.

------
pugworthy
I guess the days of names like, "iTaxi" and "Taxer" are gone. How long until
all the "Libre" names are passe I wonder?

------
adultSwim
Taxi companies need to band together now. They finally have apps but each one
has their own. They will keep getting crushed until they share dispatching.

------
floatboth
"Get hired instantly" doesn't sound good…

------
hobarrera
The "install" link forwards to some obscure URL that simply won't work on
normal browsers:

tg://resolve?domain=libretaxi_bot

------
partycoder
I wonder why kue. kue is a queuing system built on top of redis. Why not
something like zmq, RabbitMQ, Kafka, etc.

------
yalogin
How is this different from me remembering a bunch of cab phone numbers and
calling them? What is this app doing?

------
mrmondo
I like the idea, but the idea of having to carry and use cash is enough to put
me off completely.

------
dotchev
This is a great fit for IPFS so you don't need central infrastructure

------
icemelt8
Uber and Careem are banned in Karachi, a city of 20 million.

This seems like a life saver.

------
mattspitz
<Insert gratuitous joke about LibreTaxi vs. GratisTaxi here>

------
spectrum1234
Sounds great but the advantage the main guys have is the network effect, a
large fleet. The fact that this is free suggests no marketing budget and
therefore less drivers and passengers, both which depend on each other to
grow.

~~~
omouse
That's not really an advantage. Cab companies are location specific, the
network effect is limited by the number of taxi medallions handed out.

It's also a good starting point for _local_ companies to be the Uber or Lyft
of their city. For example in Toronto, Hailo doesn't exist and Lyft doesn't
operate here either. It would be awesome if a company could just pick up
LibreTaxi, pour in some $$$ for marketing and sales and start it up for
Toronto.

------
sharemywin
Maybe allow taxis to pay for a background check.

[https://checkr.com/](https://checkr.com/)

Also it would be easy enough to allow someone to send an invoice with their
own payment options.

------
kylebenzle
Bitcoin finally making new applications possible!

------
joe563323
The Best thing about FSF is they never give up even when it seems like there
is no chance of success at the present movement. True RMS spirit.

~~~
upofadown
Could you please elaborate? I don't see any link to the FSF on the site.

~~~
joe563323
Sorry. It is not FSF project. I am not able to delete my comment. When i
looked at "Libre" i just assumed FSF(confirmation bias)

------
CodeWriter23
No Rideshare Insurance? NO PROBLEM!

------
dmitrygr
> No vehicle restrictions.

uuuh.... no thanks?

------
jonthepirate
It is written in Javascript.

------
viach
It is disrupting the disruptors.

------
novorool
Really great tool, nice job!

------
thomasfl
This should have been implemented as a Facebook Messenger Bot.

------
jijji
this thing isnt ready for primetime...

------
awinter-py
free as in ...

------
Yan_Coutinho
I thought it was created by the same guys whi created LibreOffice

------
miguelrochefort
Why do we need a dedicated app for everything? Is it not time to build one app
that can be used for everything, including ride sharing, food delivery and
item listing?

~~~
cyborgx7
You mean like a webbrowser?

~~~
miguelrochefort
No I don't.

~~~
softawre
why do we need clocks, can't we just put a clock in everything else?

------
kkhire
This is the height of stupidity.

If you absolutely refuse to use any products built by C-suite execs that
advise and/or support Trump, then go live as a hermit in the wilderness.

edit: Uber/lyft are built by smart and motivated technologists who spend
everyday making the most sophisticated ridesharing platforms out there. To use
an unvetted and unsafe knockoff is inane.

~~~
cyborgx7
I've been looking for something like this. Not because of Trump but because I
strongly oppose the "sharing economy" that is explotative of workers,
circumventing legitimate market regulation and reaping profits in a
centralized manner.

~~~
tom_mellior
How is LibreTaxi _not_ "explotative of workers, circumventing legitimate
market regulation"? You're right about the centralized profit thing.

~~~
cyborgx7
It is absolutely that as well. But if this is the direction we are headed in,
lets at least make sure as much of the money goes to the workers as possible.


Ask HN: What are examples of open source projects with excellent tests? - adt2bt
One of my biggest shortcomings as a developer is not knowing how to test my code well. I suspect I am not alone.
======
tbirdz
SQLite has a lot of tests. You can read about their testing strategy here:
[https://www.sqlite.org/testing.html](https://www.sqlite.org/testing.html)

------
ColinCochrane
SQLite is one of the best examples I can think of.

[https://www.sqlite.org/testing.html](https://www.sqlite.org/testing.html)


Hume the Humane - pepys
https://aeon.co/essays/hume-is-the-amiable-modest-generous-philosopher-we-need-today
======
faitswulff
> ‘Be a philosopher,’ advised Hume, ‘but, amidst all your philosophy, be still
> a man’

...is by far one of my favorite quotes of his, and I'm glad they included it
in the article.

EDIT - they also got ‘Reason is, and ought only to be, the slave of the
passions,’ which is another one of my favorites that I'd forgotten!

------
JeuelyFish
I've always been a big fan of David Hume and, in general, empiricism. It's
nice to see that there is attention made to his point that a healthy human
life consists of a 'mixed kind' between higher intellectual activities as well
as common mundane activities.

Often times, at least in academia, his philosophical skepticism is presented
as the main and only point. From my perspective, his skepticism is way of
targeting those _already_ reading philosophy (and thusly more likely to favor
pursuing intellect over the body) in the hopes of persuading them into more
healthy balance. Because of that tho, I almost never suggest reading him as a
first introduction to Philosophy for new students. Instead, he seems a nice
counter point to the works of philosophers who are better suited for
introductory texts (Plato, Descartes, Aristotle, etc)

~~~
freedomben
Totally agree. He was one of the few greats that really understood the
importance of balancing intellectualism with real life.

Will also add that his skepticism (which I love about him) by nature requires
understanding what it is that he is skeptical about. It's very dialectical in
nature.

------
woodandsteel
My view on Hume is that his philosophy was a version of Pragmatism. I mention
this because he is generally seen by analytic philosophers as some sort of
materialist or radical skeptic.

------
freedomben
I do wish Hume was more included in academic philosophy curriculum. My first
encounter with Hume was more based on following a footnote. Hat tip to
Philosophize This! podcast for including Hume front and center.

~~~
mrec
He was very much included when I was doing undergrad philosophy. (UK, ~30
years ago.)

~~~
checkyoursudo
I finished my undergrad in philosophy at a religious uni in the US about 20
years ago. We had a bit of Hume. The monks (most of the philosophy professors
were monks) were more into ancient and medieval philosophers, with the
exception of Nietzsche and Heidegger. One monk in particular loved teaching
Nietzsche and Heidegger.

I would have preferred more Hume, as I later discovered.

~~~
mrec
We were almost the exact opposite; I don't think we really touched on ancient
and mediaeval writers at all. Not much in the religious vein either, we more
topic-centric (personal identity, ethics, formal logic etc) than philosopher-
centric.

~~~
checkyoursudo
I did one of my four years at a very large public university, and my
experience there was much more like you describe. I would have preferred that,
ultimately. I didn't know at the time.

Possibly, college kids (or secondary school kids heading into college) don't
commonly understand there could be a significant difference in instruction. Or
maybe it was just me.

------
alexashka
This article used so many words, I still don't know what makes Hume unique or
interesting. I wish the author had more time, to make it shorter - or whoever
is paying him, the wisdom to not pay per page of text.

~~~
dang
Maybe so, but can you please not post shallow dismissals to Hacker News? This
is in the site guidelines:

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)


Why is Lion downloaded from Facebook servers? - tudorizer
http://imageshack.us/photo/my-images/580/bildschirmfoto20110720u.png/

======
garyd
$ dig static.ak.connect.facebook.com

; <<>> DiG 9.7.3 <<>> static.ak.connect.facebook.com ;; global options: +cmd
;; Got answer: ;; ->>HEADER<<\- opcode: QUERY, status: NOERROR, id: 45796 ;;
flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 9, ADDITIONAL: 9

;; QUESTION SECTION: ;static.ak.connect.facebook.com. IN A

;; ANSWER SECTION: static.ak.connect.facebook.com. 858 IN CNAME
static.ak.connect.facebook.com.edgesuite.net.
static.ak.connect.facebook.com.edgesuite.net. 9684 IN CNAME
a1875.g.akamai.net. a1875.g.akamai.net. 20 IN A 69.64.227.14

------
saurik
One would presume because they both use the same CDN, Akamai, leading to all
of their content looking to share a few IP addresses.


Leaving “gifts” behind on dedicated server hosts - ivank
http://rachelbythebay.com/w/2018/04/14/flash/
======
DyslexicAtheist
Hetzner Cloud ;) came immediately to mind


Hack your brain: OpenEEG - geuis
http://openeeg.sourceforge.net/doc/

======
luckystrike
This brought back some good memories for me. (I mean the post only). My final
year project at engineering was (an attempt) to build an EEG machine (design).
I was not much of a hardware guy, and did it as a last chance (at least for a
while) to learn a bit more. The other option in my mind was to may write a
RTOS or something but i thought that can happen any time later as well.

Joerg Hansmann (the leading hacker behind this hardware design) was simply
awesome and very helpful with sharing his knowledge about the circuit design.
(This was late 2001). It was actually the first time i realized the true worth
of open source communities, and their role in sharing of knowledge and
information.

Thanks geius for posting this, i ought to contribute back to this community
for sure, in one way or the other.

------
sown
I looked into this one time and got scared away the the DIY part of the kit
and the warnings that you could seriously injure yourself. :( This will
require braver souls than I.

~~~
qwph
Soldering up a bunch of electrodes, hooking them up to a power source and
strapping the whole lot to your head? What could _possibly_ go wrong?

(I'd read this first though:
<http://openeeg.sourceforge.net/doc/WARNING.html>)

~~~
sown
I might die.

~~~
kirubakaran
You might perform a lobotomy equivalent on yourself. That scares me much more
than the possibility of dying.

------
s3graham
Neat. Is there any cheap "commercial" ones? If I could delegate the "it-
won't-kill-you" testing and pay double, I might go for that.

What I _really_ want though, is that 100x100 tongue point video camera that
Hawkins mentions in "On Intelligence".

~~~
s3graham
Hmm, or maybe not. <http://science.howstuffworks.com/brainport2.htm> That
picture's not really sellin' it.

~~~
ntoshev
You can get the same input via the auditory channel. All you need is webcam
and software, or a Series 60 mobile phone:

<http://news.bbc.co.uk/2/hi/science/nature/3171226.stm>

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


A Holographic Future - dain
http://dain.io/post/117746721225/a-holographic-future

======
hsingh23
Whao man, that's pretty cool. VR vs holograms - i think holograms win.

------
ljk
i wonder how these new technology will affect people's vision, but in that
world there's no use for good vision since everything will be right in front
of you


Roy — small functional language that compiles to JavaScript - paulmillr
http://roy.brianmckenna.org/

======
Miky
It makes me sad that having monad sugar is now just a given feature for a
functional language.

Especially when that language has unrestricted side effects and the example
code using the monad syntax uses those side effects, completely obviating the
need for, and in fact rendering useless, monads as used in the example.

This is cargo cult programming at its worst. Including monad sugar because
it's the thing to do, without even understanding what monads are or why
they're useful. This is quite clear from the "tracing monad" example code.
This "tracing monad" is like the Writer monad, stripped of all utility and
sense.

What drove you to unleash this horror on the programming masses, Moggi? Why
have you cursed us so?

~~~
pufuwozu
The example sucks but is very simple.

I didn't add monadic sugar just to be part of the "cargo cult". I added it
because I'm eventually going to use it to implement an automatic continuation-
passing transform. I've done a similar thing before with ClojureScript's
macros:

<http://brianmckenna.org/blog/cps_transform_js>

~~~
Miky
Monadic sugar is probably not the way to go for implementing an automatic
continuation-passing transform. Why not just do macros?

~~~
pufuwozu
Monads suit the problem nicely and it's been done in quite a few languages
already:

<http://lambda-the-ultimate.org/node/4117>

<http://ocaml.janestreet.com/?q=node/100>

[http://en.wikibooks.org/wiki/F_Sharp_Programming/Async_Workf...](http://en.wikibooks.org/wiki/F_Sharp_Programming/Async_Workflows)

This is something that JavaScript desperately needs.

Macros aren't so nice for this stuff in non-homoiconic languages.

~~~
Miky
I previously had a someone antagonistic comment, but I decided to remove it.

I think that finding ways to notate asynchronous code cleanly is a pretty
awesome goal, and I hope you find success in your project.

------
joebo
The tracing monad is fascinating. What would be a practical application of it?
I've been studying monads through Learn You a Haskell for Great Good but
haven't been able to put them into context (other than isolating side effects
and enforcing order of execution).

[https://github.com/pufuwozu/roy/blob/master/test/trace_monad...](https://github.com/pufuwozu/roy/blob/master/test/trace_monad.roy)

      let traceMonad = {
    	  return: fn x =
    		console.log "Return:" x
    		x
    	  bind: fn x f =
    		console.log "Binding:" x
    		f x
    	}

      console.log (do traceMonad
    	  bind w = 1
    	  let x = 2
    	  bind y = 3
    	  bind z = 4
    	  return w + x + y + z
    	)

~~~
embwbam
Know what would be awesome? If you could use the monad syntax to clean up
async, cb-passing code. I've been learning a lot of Haskell lately too, and I
like to think of the monads as returning a set of instructions with side
effects to be executed in order. I think this example is kind of trivial. I'd
love to see one that does something more than simple addition (IO!)

~~~
samdk
Jane Street's Async library for OCaml does this:
<http://ocaml.janestreet.com/?q=node/100>. It's excellent, and I now miss it
in every other language I use.

Code looks something like this:

        ...
        (* long_running_call : unit -> string Deferred.t *)
        long_running_call ()
        >>= fun result ->
        print_endline result
        ...

Running calls in parallel is easy. Say we want to run a couple of queries
against a db at once, and only perform an action once both return:

        ...
        (* Db.query : Db -> Db.Query -> Db.Result Deferred.t *)
        let d1 = Db.query db query1 in
        let d2 = Db.query db query2 in
        d1 >>= fun r1 ->
        d2 >>= fun r2 ->
        ...

If you have questions about getting it set up/using it, the mailing list is
the place to ask: <https://groups.google.com/forum/#!forum/ocaml-core>

~~~
Peaker
Doesn't this have the same problem that Python's Twisted does -- that async
calls may lack handlers for error conditions, and so errors may be silently
ignored?

~~~
samdk
Async includes a module called Monitor that lets you correctly handle
exceptions in async code. The signature of one of the most commonly used
methods is this:

        Monitor.try_with : ?name : string
                           -> (unit -> 'a Deferred.t)
                           -> ('a, exn) Result.t Deferred.t

It takes two arguments. Name is used to tell you what monitor the error was
caught by. The second is a function that returns some kind of Deferred.t. The
whole thing returns a (deferred) Result.t (: [`Ok of 'a | `Error of exn]),
letting you either do something with the results of the async call or handle
the error. Usage might be something like this:

        (* query_or_print : Db.t -> Db.Query.t -> Db.Result.t option Deferred.t *)
        let query_or_print db query =
          Monitor.try_with (fun () -> Db.query db query)
          >>| function
          | `Ok result -> Some result
          | `Error e -> print_endline (Exn.to_string e); None

------
archivator
This looks great! It has all the essentials and compiles to readable
JavaScript, should be a real productivity booster.

Looking at the JavaScript, though, all those anonymous functions can't be very
fast.. I wonder if the compiler could try to defunctionalize the output..

~~~
hammerdr
The only gratuitous functions I saw were the "case" statement and the "with"
statement. The with statement can really only be implemented with that
function (though there is something to be said of only defining it once
instead of n times). The "case" statement may be gratuitous but it feels like
the compiler has a reason for wrapping it in a leakless function wrapper.

~~~
pufuwozu
For "match", it needs to be an expression for some things so that means
wrapping it in a function and returning the result. In the future I'm going to
do some optimisation to see if the expression is the last in a function and
remove the wrapper. For example:

        return (function() {
            if(b instanceof True) {
                return ifTrue;
            } else if(b instanceof False) {
                return ifFalse;
            }
        })();

Can just become:

        if(b instanceof True) {
            return ifTrue;
        } else if(b instanceof False) {
            return ifFalse;
        }

The output of `with` is pretty gross. Definitely want to hear ideas on how to
clean it up :)

~~~
jawher
Can't you take te same approach ClojureScript took, i.e. to generate a
straitforward translation to JavaScript, and then let Google's closure
compiler take care of the optimizing thing ?

For instance, for this Roy generated JS:

        var True = function(){};
        var False = function(){};
        var getBool = function(b, ifTrue, ifFalse) {
            return (function() {
                if(b instanceof True) {
                    return ifTrue;
                } else if(b instanceof False) {
                    return ifFalse;
                }
            })();
        }

The Closure compiler generates:

        var True = function() {
        }, False = function() {
        }, getBool = function(b, c, d) {
          var a;
          b instanceof True ? a = c : b instanceof False && (a = d);
          return a
        };

~~~
pufuwozu
Roy has the same goal as CoffeeScript - create output that would be similar to
how a JS dev would write it. If you use Roy but then decide you don't like it,
just take the output and keep going.

I could rely on Closure for optimal performance but what I really want is
optimal readability.

------
prpatel
Interesting language. Feels a bit like Coffeescript with lesser use of symbols
and (possibly less) syntaxic sugar. Going to play with it a bit more...

~~~
tjholowaychuk
or... coffeescript looks like other languages that already exist.. and this
one just happens to have significant whitespace as well :p

------
epidemian
It looks very nice! I'm digging the simple Haskell-ish syntax.

The example on Types is not compiling as it is. The last line should be
something like:

        console.log (getName {firstName: "John", lastName: "Doe"})

~~~
meric
I do like Haskell syntax, but only because it allows partial application of
functions.

No partial application allowed here, so what is the point? =\

       let add a b = a + b
       let add2 = add 2

Does not work.

       let fact a =
       if a == 0 then
          1
       else
          (fact (a-1)) * a

Does not support recursion like this either. The "functional" description
brought my expectations too high I think.

It compiles to very lean Javascript though, so that's a big plus.

~~~
epidemian
For some reason the parser breaks with that factorial definition, but adding
spaces in between `a-1` seem to do the trick:

        let fact a =
           if a == 0 then
              1
           else
              (fact (a - 1)) * a

        console.log (fact 5)

Now, it's true that the Haskell syntax does not make that much sense if there
is no partial application. I think that the variadic-arguments-are-always-
allowed nature of JavaScript is not very compatible with partial application
though.

~~~
masklinn
> I think that the variadic-arguments-are-always-allowed nature of JavaScript
> is not very compatible with partial application though.

It could be implemented by compiling Roy functions to chains of 1-arg
functions, but the amount of recursion and funcalling would probably be
expensive (JS is not very good at these).

A SmartEnoughCompiler® you could also see partial application points and craft
a partial application right there:

        let add x y = x + y
        console.log (add 1 32)
        let add2 = add 2
        console.log (add2 5)

        var add = function (x, y) { return x + y; };
        console.log(add(1, 32));
        var add2 = function (y) { return add(2, y); };
        console.log(add2(5));

As long as the number of arguments can be understood at compile time (which it
can), it's not _that_ hard: if the number of arguments provided make the
function's arity reach 0 you partially apply it (and decrease the arity of the
result), otherwise you fully apply it.

~~~
pufuwozu
I decided against outputting like that a while ago but after seeing that
example, I can't think of a great reason against it.

I'll have a go and see how well it works. Thanks!

------
skrebbel
I don't understand the monad because I'm too stupid, but I really really like
Roy nevertheless.

I've really missed static typing on Javascript and Coffeescript; little typos
are so hard to find! Structured typing really sounds like the way to go for
putting type checking into Javascript, and I like how, just like Coffeescript,
Roy tastes a lot like Javascript otherwise - avoiding all kinds of leaky
abstractions you get with less JS-like languages. Plus, it has a sexy syntax.

I'd like to try this out in a real project. Is that being done already?

------
false
<http://roy.brianmckenna.org/bundled-roy.js>

There are some characters that shouldn't be there in the middle of the file,
thus demo is broken.

------
cheald
This may just be my ignorance talking, but isn't a functional language that
doesn't implement tail call optimization a Bad Idea?

------
jaipilot747
The roy code looks very clean and readable, but what will the js output be
like for larger projects, I wonder.

------
g3orge
I think this has the same disadvantage with coffeescript. The web is full with
javascript and there isn't an easy way to swap between the languages. Also
it's a pain to debug.

~~~
mhd
Let's hope that Mozilla's SourceMap[1] gets finished then. Should alleviate
most of the debugging problems.

[1]: <https://wiki.mozilla.org/DevTools/Features/SourceMap>


What is the correct JSON content type? - andysandimas
http://stackoverflow.com/questions/477816/what-is-the-correct-json-content-type

======
shawabawa3
I usually hate people that say this but... why has this been upvoted?

Usually these stack overflow posts have interesting answers, but this one is
literally "use application/json"

Is there something I'm missing?

~~~
skore
First submission of a barely 2 weeks old account with no other submissions or
comments takes 14 points to get to the frontpage. Definitely seems like some
algorithm isn't performing properly.


License plate tracking for police set to go nationwide in the USA - novok
https://www.cnet.com/news/license-plate-tracking-for-police-set-to-go-nationwide/
======
Ancalagon
I guess I don't have a lot to say other than: this is pretty disheartening. We
are going further and further down the rabbit hole that is the surveillance
state.