Sunday, August 31, 2014

learning, emoji, bayesian or frequentist

The scientific research on learning styles is “so weak and unconvincing,” concluded a group of distinguished psychologists in a 2008 review, that it is not possible “to justify incorporating learning-styles assessments into general educational practice.” A 2010 article was even more blunt: “There is no credible evidence that learning styles exist,” wrote University of Virginia cognitive scientist Daniel Willingham and co-author Cedar Riener. While students do have preferences about how they learn, the evidence shows they absorb information just as well whether or not they encounter it in their preferred mode.

Follow the way of the emoji and you will mourn the moment when you finally open your heart to the person who has meant the most to you. But you will also learn how much easier it is to get out of an unwanted date (flames + person running + heart broken in two), resign from a rubbish job (paper and pencil + briefcase + lit bomb + pink-sweater-girl waving goodbye + wine) or arrange to go out on the town (multiple possibilities, suggesting that this is what it's all about). Roland Barthes would have had a field day.

You have a coin that when flipped ends up head with probability [Math Processing Error] and ends up tail with probability [Math Processing Error]. (The value of [Math Processing Error] is unknown.)

Trying to estimate [Math Processing Error], you flip the coin 14 times. It ends up head 10 times.

Then you have to decide on the following event: "In the next two tosses we will get two heads in a row."

Would you bet that the event will happen or that it will not happen?

from Lizard's Ghost

Saturday, August 30, 2014

writing skills

writing skills

from Lizard's Ghost

a submarine cable map

from Lizard's Ghost

Friday, August 29, 2014


on ifttt using api token instead of using userid/pwd to access pinboard..

" I'm happy to drive to their office and implement it myself if they feel they lack the resources."

on work-for-hire projects..

"You ask a developer to do work for you, they do the requested work, and you pay them. If you don't like the work, you end the relationship. But you still have to pay them for their time."

from Lizard's Ghost

reminiscence. if i were a carpenter.

from Lizard's Ghost

3d printing as a service

works in sg even...

from Lizard's Ghost

Thursday, August 28, 2014

but you know,for 30 cents, my post office delivers my parcel by tomorrow..

According to a story this week in The Information (subscription required), the company’s 16-month-old Google Shopping Express service loses big money on every one of its same-day deliveries (it charges $5 per delivered order from one of its retail partners after a free six-month trial period). The story says Google spends “multiples” of that and tries to make it up on volume, or, more properly, by encouraging consumers to “to search for products on Google and thus boost revenue from retail advertisers.”

from Lizard's Ghost

zelda himself said

"[These are] the sort of people who, for example, might want to watch a movie. They might want to go to Disneyland," he said.

"Their attitude is, 'okay, I am the customer. You are supposed to entertain me.' It's kind of a passive attitude they're taking, and to me it's kind of a pathetic thing. They do not know how interesting it is if you move one step further and try to challenge yourself [with more advanced games]."

Miyamoto's comments mark the first time a Nintendo executive, and a longstanding member on its board of directors, has publicly outlined intentions to shift away from casual customers.

from Lizard's Ghost

printing as a service.2

why not a website that people who own 3d printers can register their location with. then let customers send them things they want printed. then collect later. or have them mailed over?

some bidding process might be required. ebay is probably best equipped to do this. just needs to add location to the seller.

from Lizard's Ghost

work in sweden!

er, no, actually this..

from Lizard's Ghost

a cab hailing dream


1. geolocate me. or i specify a pickup point. and time.

2. i specify a destination.


a. geofence. 5km radius. list of all pickups. sorted by proximity or user ratings. or magic. show top 5 or 10 only.

b. selects me. or up to 3 pax.

c. puts up a price for the trip. 0.2btc perhaps. and how long the offer stands. 120s perhaps.


3. select 1 driver. agree or disagree to share the trip with other pax. the more pax sharing the ride, the cheaper it is for each.


d. gets notified whether each pax agrees to the trip. accepts the drive or not.

e. picks up passengers.


4. once driver is in passenger proximity. 100m? deduct from btc stored in wallet.

5. once passenger is in destination proximity. 100m? pay driver.

6. option to tip driver.

from Lizard's Ghost

we never tell them what to do

4.Recipients use the transfer to pursue their own goals

Recipients use transfers for whatever is most important to them; we never tell them what to do. An independent evaluation of our work in Kenya by Innovations for Poverty Action found that recipients use transfers for a wide variety of purposes that on average generate large income gains. Common uses range from buying food to investing in tangible assets such as housing and livestock to investing in children's education.


from Lizard's Ghost

3d printing, ikea and motorola

So how DO I buy a printer then?

A fair question to be sure. Well, here are some pointers:

  1. Educate yourself Each minute you spend learning about 3d printing and 3d printers before you commit to buying one will save you a nerve or two in the long run. Don't fall for the catchwords.

  2. Listen to the experts There's a vibrant community on Google+ about 3d printing. Lots of them to be exact. And also a lot of very good blogs. There's a good chance that when a suspicious printer appears some of the bloggers will react and warn people.

+Richard Horne , +Jeremie Francois , +Whosa whatsis , +Nicholas Seward , +nop head , +Thomas Sanladerer are some of the people you should follow. It's amazing how much good info you will get from these guys.

  1. Read the forums RepRap forums, Ultimaker forums, Printrbot forums... there's lots of places with knowledgeable people willing to help.

  2. Find reviews The best way of knowing if something is worth your money is to see the other users' experiences with it, free of all the corporate and marketing BS.

  3. Don't take news portals seriously While 3d printing news portals like or are a good source of latest info, think of them more like the celebrity pages in the papers. They will usually publish whatever info they get from manufacturers, without checking the facts or offering any critique, so not a good place to find crucial information on how to best spend your money. Every printer seems really cool and packed with features if you read about it on those sites. All in all - good to stay in the loop, but to be taken with a grain of salt.

  4. Avoid Makerbot My final piece of advice - do us all a favor and do not give Makerbot your money. They are the exact opposite of what the global 3d printing community stands for and works towards.

Now that you're done with this take a look at Jeremie Francois' excellent rundown of what you'll run into when you do buy a printer and try to do something with it.

Every year, CGSociety goes to SIGGRAPH, one of the premier conferences on innovation for the computer graphics and VFX industries in the world. In 2012, we watched as Martin Enthed, the IT Manager for the in-house communication agency of IKEA, gave a short presentation. He told us how their visualisation team had evolved from the use of traditional photography for the IKEA catalogue to a system today, where the bulk of its imagery is CG. I remember leaving the auditorium (which was packed) thinking, “Those natural-looking photographs in the IKEA catalogues are amazing. I can’t believe they're mostly CG. It’s incredible.” It was such a great presentation that we went and saw it again in 2013 when it was an official talk, and figured you guys might like to know how IKEA did it - what they had to build and innovate to get their still images to look so real. So we made a time to catch up with Martin, and asked him how and why IKEA decided to make the leap from traditional to digital.

Motorola began as Galvin Manufacturing Corporation in 1928, just before the Great Depression, founded by a 33-year-old native of Harvard, Illinois, named Paul Galvin. Its small offices stood on Chicago’s West Harrison Street, a dozen blocks from the Loop. Two years later came the company’s first big breakthrough: commercializing the first mass-market car radio by figuring out how to eliminate static interference from under the hood. But success didn’t come easily, says Paul’s grandson Chris Galvin, who ran Motorola from 1997 to 2004. Paul was a serial entrepreneur, and two previous ventures of his had flopped. “The company’s success,” Chris explains, “was born of failures.”

from Lizard's Ghost

Wednesday, August 27, 2014

Thou shalt not lie with mankind, as with womankind: it is abomination.

Dear Dr. Laura:

Thank you for doing so much to educate people regarding God's Law. I have learned a great deal from your show, and try to share that knowledge with as many people as I can. When someone tries to defend the homosexual lifestyle, for example, I simply remind them that Leviticus 18:22 clearly states it to be an abomination. End of debate. I do need some advice from you, however, regarding some of the other specific laws and how to follow them:

When I burn a bull on the altar as a sacrifice, I know it creates a pleasing odor for the Lord - Leviticus 1:9. The problem is my neighbors. They claim the odor is not pleasing to them. Should I smite them?

I would like to sell my daughter into slavery, as sanctioned in Exodus 21:7. In this day and age, what do you think would be a fair price for her?

I know that I am allowed no contact with a woman while she is in her period of menstrual uncleanliness - Leviticus 15:19-24. The problem is, how do I tell? I have tried asking, but most women take offense.

Leviticus 25:44 states that I may indeed possess slaves, both male and female, provided they are purchased from neighboring nations. A friend of mine claims that this applies to Mexicans, but not Canadians. Can you clarify? Why can't I own Canadians?

I have a neighbor who insists on working on the Sabbath. Exodus 35:2 clearly states he should be put to death. Am I morally obligated to kill him myself?

A friend of mine feels that even though eating shellfish is an abomination - Leviticus 11:10, it is a lesser abomination than homosexuality. I don't agree. Can you settle this?

Leviticus 21:20 states that I may not approach the altar of God if I have a defect in my sight. I have to admit that I wear reading glasses. Does my vision have to be 20/20, or is there some wiggle room here?

Most of my male friends get their hair trimmed, including the hair around their temples, even though this is expressly forbidden by Leviticus 19:27. How should they die?

I know from Leviticus 11:6-8 that touching the skin of a dead pig makes me unclean, but may I still play football if I wear gloves?

My uncle has a farm. He violates Leviticus 19:19 by planting two different crops in the same field, as does his wife by wearing garments made of two different kinds of thread (cotton/polyester blend). He also tends to curse and blaspheme a lot. Is it really necessary that we go to all the trouble of getting the whole town together to stone them? - Leviticus 24:10-16. Couldn't we just burn them to death at a private family affair like we do with people who sleep with their in-laws? (Leviticus 20:14)

I know you have studied these things extensively, so I am confident you can help. Thank you again for reminding us that God's word is eternal and unchanging.

Your devoted fan,


from Lizard's Ghost

Tuesday, August 26, 2014


When I'm serious about programming I use Common Lisp. When I'm serious about connecting with other people I use English. Many people seem to confound these pursuits and end up with languages that compromise weakly between talking to people and talking to computers. -

from Lizard's Ghost

Monday, August 25, 2014

island wide coverage 2

so 600 APs is waaaaay underestimating the problem.

if each AP can connect 100 devices, then something like 60000 APs will be needed to connect 6000000 devices.

some of those devices, specifically android phones for now, can actually work as nodes in the commotion mesh.

imagine every* router sold on the island were running commotion , and many people install it on their laptops and PCs, and some even install it on their phones. it'd be nice, though i doubt it'll happen, if some isp/telco even runs it on their cellular base stations.

* ok so thats probably not going to happen**. but what if someone offered to flash routers to commotion firmware for free? will more than 60000 people take up the offer? i think mesh networks are probably limited to a few hundred nodes before the mesh metadata is too much for them to be useful, actually. so those 60000+ APs will have to be split into smaller geographical zones.. which is not as nice as 1 giant network for the entire island, but is probably useful anyway.

in fact, what would it look like if every android phone on the island were running the commotion app?

**what if 1 of the telcos actually did that? say, if m1 actually turned every router and android phone they sold into part of a mesh, and perhaps even made their cellular base stations part of it, what would the result be?

from Lizard's Ghost

island wide coverage

i still occassionally dream that people can free themselves from the telco/isp oligopoly.

the dream usually revolves around ~600 wifi APs.

i think perhaps is a way to start.

from Lizard's Ghost

apparently lots of fish know the sun is "up"

from Lizard's Ghost


Please note that I'm looking for kickass engineers who want to build the backbone of an industry. But Hired encourages a bidding war. We don’t play along with that. Everyone here at makes sacrifices to be here, because that's what it takes to be a startup, to build a successful company. You should be interested in because of what we do, what you can learn here. We can figure out the salary / equity package once we both agree this is the best next opportunity for you. However, if the minimum salary is what matters to you, _ is not for you and we’d just be wasting each others time. Please keep that in mind. Thanks! -

By sending an email that repels all but the most gullible the scammer gets the most promising marks to self-select, and tilts the true to false positive ratio in his favor. -

from Lizard's Ghost

Saturday, August 23, 2014

what about job guarantee/employer-of-last-resort schemes?


How ELR addresses some of BIG’s goals without introducing its disadvantages.

While the primary objective of an ELR is somewhat narrower than that of BIG—it only aims to eliminate unemployment while maintaining stable prices—it accomplishes a number of goals that are important to BIG advocates as well.

Most importantly, ELR does not introduce inflationary pressures. The ELR wage unit maintains a relatively constant purchasing power of the dollar—the dollar will be worth the amount of labor it can hire out of the ELR labor pool. This is a major advantage over basic income. ELR does not introduce inflationary pressures for several reasons. The most important one is that it fixes the value of the currency to the labor bufferstock wage.

ELR does not suffer from the inflation trap characteristic to BIG and if the wage is set at the living wage level (something which most job guarantee supporters favor), neither does it have the unemployment or poverty trap that BIG proponents fear. Note that ELR is strongly countercyclical, rising when the private sector downsizes. BIG does not—everyone gets her check no matter what is happening to the economy. ELR helps to stabilize the economy; BIG does not.

Like BIG, ELR is universal and purely voluntary. We strongly object to punitive conditionality criteria or demeaning means-tests—as do BIG proponents. Furthermore ELR jobs provide not only an income but also socially valuable goods and services.

Among BIG advocates Van Parijs, for example recognizes that even a colossal BIG program may not resolve issues such as inadequate housing, education, healthcare—all key components of a decent standard of living. Parijs acknowledges that a BIG must be part of a more comprehensive social policy that includes other programs, but very little discussion is devoted to how we can ensure these other necessities are provided.

What ELR offers is a vehicle for achieving many of the goals that society democratically determines are worth pursuing. If the goal is the adequate provision of care for the young, sick, and elderly, then ELR can explicitly incorporate these services in its institutional structure. If it is deemed that communities require environmental cleanup, then ELR jobs can be targeted specifically to solving these problems. In other words ELR can be designed as an open and flexible program that can serve many societal needs. ELR can also broaden the meaning of work by recognizing certain activities as socially useful and by compensating for them. By extension then, through the many forms of community involvement which are now recognized as legitimate ELR jobs, we foster advanced citizenship, reciprocity and social cohesion.

Finally ELR increases efficiency. By training and educating workers and maintaining them as gainfully employed, ELR also enhances human capital, thus the detrimental effects of idleness and unemployment are avoided. ELR also increases efficiency because it increases production, maintains human capital and protects the environment.

In conclusion, BIG and ELR share many of the same goals and objectives. BIG proponents oppose ELR because they believe it promotes the fetish of work. ELR proponents advocate providing jobs to those who want to work. In their view, ELR is compatible with BIG, and so they do not oppose it. ELR proponents would prefer NOT to send a Big BIG payment to all as this would devalue the currency. However, if we are going to have a BIG for all, it is still necessary to offer ELR so that those who want to work have the opportunity to get a job.

ELR supporters do agree that we need decent incomes for all. Most people can achieve decent income through work so long as their wage is high enough. Others will need income not related to work—some form of BIG. Hence, ELR supporters are not opposed on principle to BIG. They just want to get the horse (jobs) before the cart (decent incomes for all).

also, a page with lots of info about BIG..

from Lizard's Ghost

price gouging and overcharging.2.

i think price gouging might have something to do with equitability. some people think its unfair to discriminate who needs water, for example, more by how much someone is willing to pay for it.

people think the dehydrated poor person who cannot afford $1000 for a bottle of mineral water is more deserving(needs it more) of the water than a rich person who is going to use that bottle of water to shampoo his/her dogs.

but that is actually similar to how water is often priced. there are pricing tiers. which to me seems that we want to enable poor people to be able to afford water.

but only to a limited extent. our idea of equitability does not extend to the next price tier, nor does it appear to extend to those who cannot pay at all.

assuming we think everybody deserves a certain amount of water, up to a point where we think they're wasting it, why make people pay at all for that first tier?

this doesn't just apply to water. all other goods and services that people think "price gouging" when prices increase, why not have a base level of consumption that is guaranteed to be free?

it could be implemented by giving coupons to everyone that pay for such goods.

but then maybe there will be some who think this setup will be "abused" by people who will then sell the coupons or the goods bought with the coupons.

when a person who believes they need something else more than the goods bought with the coupons is deemed to be abusing the system, then i feel that is a separate issue altogether - those who think that behaviour is abuse feel that they are better appraisers of what other people need than those other people themselves. hubris much?

on the other hand, if such abusive behaviour actually occurs, then perhaps we can accept that. after which the next thing to do is to accept that we cannot decide for others what goods, and how much of those goods, they need. at which point we might as well give everyone a basic income that can afford the minimum amount of water, food, fuel, shelter or whatever that we feel can be susceptible to price gouging.

from Lizard's Ghost

price gouging and overcharging.1.

i'm just jotting down what i think i'm seeing. these are 2 behavious that are curious and undecipherable to me.

price gouging

1. we're ok with the demand/supply way of setting prices.

2. usually people accept how it works. more demand or less supply, ceteris paribus, higher price. vice versa.

3. but often during events such as natural disasters, such behaviour is often labeled 'price gouging'. sometimes there are even laws against it.

over charging

1. when buying air tickets or booking hotel rooms its commonly accepted that prices are going to be different depending on when you purchase.

2. people negotiate prices all the time. like when they go buy antiques. or art. or property. or second hand cars. many people like to ask for discounts too.

3. i believe its usually called price discrimination.

4. but when we buy a thumbdrive at simlim shop A for $30 and find that shop B and C are both selling the same thumbdrive for $10, we call that a rip off. or over charging.

5. or when a caucasian buys bbq lobster at x5 the price that the locals pay.

what are the rules that govern when pricing by the demand/supply model is ok and when its not? what are the rules that govern when price discrimination is ok and when it is not?

from Lizard's Ghost

Friday, August 22, 2014

is this really novel and non-obvious?

did apple just reinvent dead reckoning ? and how are they going tell which level/floor your car is on, in a multi-storey carpark?

my thought on the matter is.. see how the banks and airports and security services boast how good their facial recognition technology is? why not the malls/offices , with security cameras everywhere, simply tell you where you parked if you asked them nicely?

from Lizard's Ghost

Wednesday, August 20, 2014

because microsoft totally screwed up?

Ask anyone at Sony, and they're likely to tell you that sales of 10 million PS4s in less than nine months is unvarnished good news. But in an uncharacteristic bit of self-questioning, Sony's head of Worldwide Studios Shuhei Yoshida has expressed some bewilderment and nervousness over the system's quick success.

"It's just beyond our imagination. We are so happy. But I for one am a bit nervous because we do not completely understand what's happening," Yoshida told Eurogamer in a recent interview. "You need to understand why your products are selling well so you can plan for the future, right? It defied the conventional thinking. Lots of people thought the dedicated game hardware might not be needed going forward, but still lots of people are very excited." .. ..

While PS4 sales have been quicker than expected, the worry of exhausting the market may be overblown. The PlayStation 3 took just over 13 months to sell its first 10.53 million units worldwide after its release in late 2006. That system then went on to sell more than 75 million units worldwide over its lifetime. It's possible that the universe of "core gamers" interested in a game console has dwindled in the intervening time or moved on to mobile or PC platforms, perhaps. Still, the quick sales of the PS4 thus far could just as easily suggest the opposite has happened. ..

from Lizard's Ghost

printing as a service

it just occurred to me. why don't 7-11 or singpost or any photocopy services shop offer a network printer as a service?

people who print occassionally can totally print to it and then go collect later, yes?

if its singpost, they could even offer to mail the printed pages to me.

from Lizard's Ghost

Tuesday, August 19, 2014

"solving" email

The best way to unify all your address books by importing contacts, identifying & remove duplicates, and backing up to a secure cloud.

Sync Contacts, Fix Duplicates, Keep Contacts Up to Date, Clean Contacts, Import Business Cards..

CiviCRM allows you to define contact types to suit your needs such as individuals, households, organizations, activists, families, affiliates. It allows you to define the data you will collect from these contacts based on their interactions with you including contact, billing, subscriber, events, membership and contribution information.

It also allows you to manage their relationships with one another such as employer/employee, spouse, parent/child, member and volunteer relationships. You can also group contacts for the purposes of giving them access to select content on your Web site or to select electronic mailing lists such as a monthly e-newsletter. You can automatically add contacts to relevant smart groups based on their interactions with your organization’s Web site.

Address - A public signing key and encryption key.
Address Fingerprint - A hexadecimal representation of an address often used for convenience.
Identity - A private signing key and encryption key. Generally contains an Address.
Router - A system that translates addresses (or address fingerprints) into server locations.
Server - The AirDispatch server which collects and sends a user's mail.

turn your email into a RSS feed and read it thusly:

If you wish to read various feeds, but don't want to use one of those new-fangled web browser thingies (they'll never take off), you can just point your Usenet news reader towards and read all the kitteh blogs from the comfort of something I don't quite know how to end this run-on sentence.

from Lizard's Ghost

nobody would want this i suppose..

just saw

and thought

how about an app or google map layer that:

1. takes the co-ordinates of an accident location

2. takes the co-ordinates of the emergency vehicles dispatched to said accident

3. takes the co-ordinates of the hospital the ambulance is going to

4. draws a line or lines on the map and displays it

5. refresh every min or 3

6. so that vehicles in between can better get out of the way

from Lizard's Ghost

Monday, August 18, 2014

there is no itch to scratch

The Chandler team also overestimated how much help they would get from volunteers. Open source doesn’t quite work like that. It’s really good at implementing copycat features, because there’s a spec to work from: the implementation you’re copying. It’s really good at Itch Scratching features. I need a command line argument for EBCDIC, so I’ll add it and send in the code. But when you have an app that doesn’t do anything yet, nobody finds it itchy. They’re not using it. So you don’t get volunteers. Almost everyone on the Chandler dev team got paid.

from Lizard's Ghost

Saturday, August 16, 2014

give starbucks a tiger!



from Lizard's Ghost

basic income, the movie

and also,


from Lizard's Ghost

Friday, August 15, 2014

Think about this for a second

The human longing for freedom of information is a terrible and wonderful thing. It delineates a pivotal difference between mental emancipation and slavery. It has launched protests, rebellions, and revolutions. Thousands have devoted their lives to it, thousands of others have even died for it. And it can be stopped dead in its tracks by requiring people to search for "how to set up proxy" before viewing their anti-government website.

Beware Trivial Inconveniences

from Lizard's Ghost

Thursday, August 14, 2014

bad crypto vs no crypto

An irreconcilable difference between you and I on this point: you think it's a good thing if people use bad crypto instead of no crypto, and I don't.

I don't think bad crypto makes the global adversary go "aw, shit, we better target someone else". I think it makes them go "excellent, something else we can get a secret appropriation to go break".

from Lizard's Ghost

google needs to do this. scale it.

from Lizard's Ghost

tech vs gimmick

Siri and Cortana are modeled to be our robotic companions and servants. Google Now is omniscient, all-powerful ether. Google Now is not a friend. It’s a silent god that takes our calls.

from Lizard's Ghost

monitoring in the other direction..???

once upon a time a couple of years ago i signed up for when they launched.. ever since then i've had it monitor 1 cron job on each of my 3 vpses..

later launched but i didnt see why i needed just 1 more such monitor..

and just now launched..

i like the idea very much so i'm curious why this is not more common..i mean..i could use this at the end of every single cron job...

from Lizard's Ghost complicated can it be?

A lack of knowledge sometimes can be a strength, because you naively say to yourself “ complicated can it be?” and just dive in. I started this article by thinking “Hm…what exactly is a draw call?”. During my 5-Minute-Research I didn’t find a satisfying explanation. I checked the clock and since i still had 30 minutes before bedtime i said …

“Pfff, how complicated can it be to write it by my own?”

… and just started. This was two months ago and since that i was continuously reading, writing and asking a lot questions..

from Lizard's Ghost

its not new

automation in diablo 3

automation elsewhere..

from Lizard's Ghost

Why don't more apps use peer to peer networking?

the full question (from

I think my question boils down to: is there a fundamental reason apps don't use p2p networking, or is it just that there aren't any good app P2P SDKs or programming techniques out there?

(Note: by P2P in this context I mean over the Internet, not the emerging wireless "Internet of things" P2P networking stuff. That's a bit different, and has a different use case.)

Take an example: SnapChat. (Just using them as a hypothetical here.) Why didn't they architect their app to send snaps directly when possible? It would have saved them a lot on bandwidth for starters. If they wanted to also store snaps on their servers they still could have done so, but they could have saved considerably on downstream bandwidth costs by sending snaps "horizontally" between users if these users happen to be online.

Is it just that it would have been too much work development-wise, or is there a more fundamental reason companies like this pass on P2P?

Spotify used a P2P protocol but last I heard they were moving away from it. Netflix -- about as bandwidth heavy as you can get -- doesn't do it. Skype has moved away.


The only reasons I can think of are:

(1) It's hard to program and there are few good SDKs to make it easier.

(2) Some users -- enough to be meaningful -- have bandwidth caps even on wired Internet connections.

(3) Cellular data connections almost always have bandwidth caps, and so users on these networks dislike p2p apps eating their bandwidth.

Which of these is most significant? Or are there other reasons?

he says it best:

drewcrawford 40 minutes ago | link

Let me give you a comprehensive answer on this that goes back to first principles. I've worked on apps like SnapChat, so I am probably pretty close to an authority on why apps like that don't use p2p.

The first problem is that mobile devices are pretty much inherently asynchronous. There are apps that you would use at the same time as another person (like real-time games) but especially on cellular, lag is an issue. This pushes people into designing products that can tolerate lag measured in seconds (because that isn't shockingly bad performance on cellular networks for apps that use your standard off-the-shelf tools like REST/HTTPS/AWS for example). This produces a lot of asynchronous, or semi-asynchronous applications.

Now partly due to those product designs, and partly due to people having lives, they use these apps asynchronously. You pull out SnapChat, fire off a message, and go back to reading Reddit or whatever. Snapchat is off. There's no way to reach you.

Okay, so why don't we run SnapChat in the background? Well there are layers of reasons. The first layer is that it costs energy, and the mobile revolution is in large part possible because software and hardware developers got very aggressive about energy management. If we ran things in the background like you do on your laptop it would need to be as big as your laptop and plugged in regularly like your laptop. There are also practical problems, like announcing every time your network address changes, or even figuring out when your network address changes, which is hard to do passively. I'm glossing over some networking details but there's a deep principle here that within the design of existing TCP/IP/cellular stack you can't have reliability, energy-efficiency, and decentralization. You must pick 2.

Apple, very presciently IMHO, has decided to legislate a lot of rules about background processes that I don't have time to go into here but basically they try to regulate the types of work that apps can do in the background to only the energy-efficient kind. The rules are actually pretty well-designed but they're still rules and they restrict what you can do. Android doesn't have this limitation but unless your product is Android-only you're going to comply with the iOS rules when you design a feature that communicates across platforms.

Okay, so we can't run Snapchat in the background. But what if two users happen to have it open? We can use p2p then right?

Well sure. But the user may be on a network that blocks p2p traffic. That is their network's fault, but they still e-mail you to complain, and leave bad reviews for your product, because as far as they can see "the Internet works" so it's your app's fault.

So what you do is you design a scheme that uses p2p by default and client-server as a fallback. There are actually apps that work like this. Problem here is, instead of getting support tickets about it not working, now you get support tickets about it being slow.

And there are ways to solve this, like permanently giving up on p2p after a certain numbers of failures for example. But the first experience is still pretty bad, which is what counts in mobile. And I remind you, this p2p feature is already a scheme that only works in the 0.3% of cases that users actually have the app open at the same time, and now you want to add code that disables p2p in even more cases than it's disabled already. This process continues until basically zero actual customers will ever use the feature.

And we haven't even gotten to cases like "Why didn't this message get delivered to all my devices?" because there is just zero chance that any customer, anywhere, will have all his devices turned on at the right time to receive incoming p2p connections.

Now non-messaging products like Spotify or Netflix are more plausible, but you still have to ask who wins here. Customer experience is worse, both because of connectivity problems and increasing bandwidth bills and the energy efficiency losses that comes with rebroadcasting content to other users. Developers are worse because they probably have to build both client-server and p2p architecture, because p2p isn't reliable enough on its own. Support is worse because almost any issue is potentially a p2p-related issue, have you tried disabling p2p and seeing if the issue persists?

There's really no reason, certainly no compelling business case, to inflict that much pain on any mobile product I can think of. I mean, there's probably a place where p2p makes sense--we live in a big world--but in general it makes things much worse for everybody.

from Lizard's Ghost

Saturday, August 09, 2014

antispam idea

  1. you email me at

  2. my mail server or spam filtering gateway auto replies with a url..which perhaps requires a password to access or expires in 24hours or requires a captcha or whatever..

  3. url is a webform, with my exact preferences..maybe 500 character limit textarea, 2mb file attach, etc

  4. this text form actually sends mail to my inbox

  5. can work in 2 ways

    i. i actually read my mail at but send mail as

    ii. the webform cleverly writes the mail into my inbox via imap or something..or er, smtp..whatever...

  6. curious how this will work with email threads, mailing lists

  7. maybe it can work with some auto whitelisting rules, like, if i replied to an address before, it doesnt do the webform thing but goes straight to inbox..

from Lizard's Ghost

Tuesday, August 05, 2014

stuff i want to run, kiv..

ahahaha! so cute! because it can be done!

Simple, Full-Stack

Front-end and back-end using the same programming language JavaScript.

NoDB, No Configuration

Not only database: data stored in JSON files also support mongodb etc.

High Performance

All the data stored in the cache layer(memory), you can access the data with zero-time delay.

from Lizard's Ghost

Monday, August 04, 2014

How to hire way better programmers/designers than yourself/your team is


a: There would seem to be at least two independent problems here:

  1. How can you recognize that someone is actually a better programmer than you are, as opposed to someone who can bullshit beyond your ability to detect it? (It may be easier to detect that someone is a worse programmer than you are.)

  2. Once you've found someone who you're convinced is a better programmer, how do you convince them to join a company where they'd be the most skilled programmer (and thus have nobody to learn from)? You might need to offer them extra compensation and a better job title than they'd be able to get elsewhere.

Also, I'd question whether you can actually rank programmers on a linear scale of better/worse. The best programmer I ever hired was better than me in some ways (could build complex systems faster than I could) but worse than me in other ways (the systems he built were less maintainable).

I don't really have good answers to these questions, but hopefully this might clarify some of the issues and help get the conversation going.

b: > 1. How can you recognize that someone is actually a better programmer than you are, as opposed to someone who can bullshit beyond your ability to detect it? (It may be easier to detect that someone is a worse programmer than you are.)

This question comes up a lot, and I'm not sure that it's really as hard of a problem as it's often made out to be. Especially if you're having a candidate write algorithmic code on a whiteboard, I think there are ways that you could judge whether they're better than you:

  1. They solve your problem faster than you did (the first time). Of course this assumes you have a novel problem (i.e. they haven't practiced it before), etc.

  2. They solve your problem and in the process of doing so teach you something unique. Maybe their solution is faster or simpler than yours. Maybe they catch some corner case you didn't see.

Another way to look at this is that if you make up your own (difficult) interview question, and then use it repeatedly, you will eventually become an expert on it. As you watch other people solve it, you'll learn various tricks for solving it, and will see it from many different angles. You'll also become aware of common pitfalls.

So when someone walks in the door and has never seen your problem before in their life, you have them at a disadvantage. Now if they give a solution that's as good or better than yours, what does that mean? It could just be that they're solved similar problems before, but maybe they're better than you.

This approach does assume that you are good enough to create a novel question, which in and of itself is a difficult thing to do...

[EDIT] One thing I left out is that while I believe it's possible to say "this candidate is probably better than me," there's an upper bound on your ability to see exactly how much better they are. In other words, it might be difficult to tell the difference between someone moderately better than you and someone vastly better than you.

c: Another problem I wrestle with is how to hire someone with skills way outside your own skillset and outside anyone else's skillset in the company. For instance I'm in a situation where I can tell the people that have set up the infrastructure are not capable of doing it right because the infrastructure stinks by any outside measure. But without knowledge of how to do it myself, how am I supposed to hire anyone better?

d: Here are a few things I would try:

a) Gain enough knowledge to make a more informed hiring decision. You don't typically need as much knowledge as you think.

b) Find someone who is knowledgable about the role and ask for help. If you know a company with a great infrastructure person, it is very likely that he would be willing to help filter out a few candidates for your company. At the very least he could explain what he does on an average day and what he looks for in a candidate.

from Lizard's Ghost

Sunday, August 03, 2014

tox, from 4chan

Every peer is identified by a curve25519 public key. To add someone as a friend, you add that public key.

Connections between friends are encrypted.

is the crypto used.

describes the protocol used to connect securely to friends after they find themselves.

This protocol has PFS, message padding to prevent length based leaking and should be immune against replay attacks.

What makes it secure is that you know the long term public key of your friends making it really easy for the software to establish secure connections to them.

from the discussion here:

from Lizard's Ghost