Google Launches Sidewalk Labs - <AUTHOR> https://plus.google.com/u/0/+LarryPage/posts/M1twDYHaui3 <comment><USER2> Someone needs to develop a public toilet that's self-cleaning but doesn't cost more than some houses. The problem is making it homeless and drug dealer proof. SF has had major problems with their self-cleaning toilets.[1] Portland succeeded, but theirs is armored to contain a velociraptor and provides limited privacy.[2]

[1] [http://www.sfweekly.com/sanfrancisco/occupied-san- francisco-...](http://www.sfweekly.com/sanfrancisco/occupied-san-francisco- understanding-the-city-through-its-toilets-yes-really/Content?oid=2948873) [2] [http://www.citylab.com/design/2012/01/why-portlands- public-t...](http://www.citylab.com/design/2012/01/why-portlands-public- toilets-succeeded-where-others-failed/1020/)

<comment><USER3> Hasn't this already been invented? With the problem being that most westerners don't like the solution because it looks unfamiliar:

        * You install a squat toilet
        * It's cleaned by flooding the entire
          toilet area with water, which once
          turned off all washes down into the
          toilet
        * No toilet paper, you clean yourself
          with water

<comment><USER4> The biggest problem is not even that it looks unfamiliar, but that the majority of "westerners" have insufficient ankle flexibility to squat, due to a lifetime of sitting in chairs and no experience squatting.

You might be able to build a squat toilet where the feet rested on a ramp (i.e. raised at the heel side), though I suspect most Americans would still refuse to use it.

<comment><USER5> You don't need a ramp to squat on tiptoe. I squat with my feet flat on the ground, but I have been told that doing that is hard for most (US) people. Still, Americans do squat. They just don't do it with flat feet.

<comment><USER6> Have you actually tried pooping while on tiptoes??

<comment><USER5> No, for multiple reasons. But if you're looking for people with that experience, I suggest talking to some American backpackers.

</comment></comment></comment></comment></comment></comment><comment><USER7> I don't understand the desire to do vague announcements. Why bother announcing at all until you have something more concrete?

What does "time to get to work" even mean here? Doing what?

<comment><USER8> This is a huge undertaking where public support and co-operation is paramount. They cannot come out one day and tell people what they have done and what to do. They need to give a heads up.

Is it only me or does HN take all announcements cynically?

<comment><USER9> This wasn't an announcement. It was the announcement of an announcement.

</comment></comment></comment><comment><USER10> Google is going to start building infrastructure. Rail, fiber, cable, etc.

All the things the US Government should have been doing

<comment><USER11> Why should the government be doing it?

<comment><USER12> There's no reason the government actually needs to _build_ the infrastructure itself—but since infrastructure is a natural monopoly (only room for one set of roads, one EM spectrum, etc) the government needs to "regulate it into existence", setting laws to incentivize cooperative building of neutrally- owned infrastructure by interested players, rather than the natural monopoly leading to a real monopoly/oligopoly.

<comment><USER13> The notion of natural monopoly, while superficially plausible, is an ahistorical ex post rationale for government intervention.[1]

Any day now some guy or gal will visit my home to hook up my Google Fiber. How can that be if if Time Warner Cable has a natural monopoly? Oops, I should say that TWC, AT&T, DIRECTV and Dish have an oligopoly. Before you protest that I lump guys who launch satellites together with guys who hang wire on poles, remember in a dynamic world supposed natural monopolies are not safe from substitutes.

[1][https://mises.org/library/myth-natural- monopoly](https://mises.org/library/myth-natural-monopoly)

<comment><USER14> But you're comparing apples and oranges. Are you seriously suggesting that we could duplicate or triplicate all the roads in the country to allow competition between private road companies?

(and your example is a bad one - here in my area of NYC, Time Warner absolutely _does_ have a monopoly, I have no other providers to choose from. So it makes sens that _someone_ regulates them.)

<comment><USER15> But the reason that Time Warner has a monopoly because the city granted them a monopoly--not because of technology. Plus, politics and regulation make it difficult for new entry into their market.

<comment><USER14> _But the reason that Time Warner has a monopoly because the city granted them a monopoly_

That isn't the case. Verizon have rolled out FIOS to areas in the city, but have decided to stop doing so.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> I wonder how much Google does this just to get positive PR to hire for their main businesses. It gives the impression that you'll be working on cool stuff like this when you join Google instead of the rest of the 99% that drives the ad hive (which is where you'll really end up).

<comment><USER17> I don't know where you are getting this from - do you have any personal experience to draw from?

It doesn't match my experience. In almost seven years at Google I've worked on amazingly interesting projects - from hardware to user-facing products.

I've never once, in my entire time, had any level of management tell me that I should be worrying about selling ads or monetizing my projects. The consistent message has been "build great products".

So the notion that 99% (or really any majority) of developers at Google "drive the ad hive" is completely untrue - at least in my experience.

<comment><USER18> I have the personal experience!

I'm a new hire, and I got assigned to somewhere that doesn't align with my interests, at all... other than the fact that it's "not front end."

Hoping switching is as easy as everyone says!

<comment><USER19> Former Googler here: After an epic blind allocation fail, my attempt to switch to a project that made use of my talents enraged my manager and he reported me to HR. I left for greener pastures shortly thereafter and HR has apparently banned me from ever returning now that there _is_ relevant work for me.

<comment><USER18> Oi. Hope I grow to love my assignment, or can at least switch "cleanly."

<comment><USER19> If you're a new college grad or just new to the industry, Google rocks. But, if you have "a very particular set of skills. Skills I^Hyou have acquired over a very long career" then Google will most likely arbitrarily assign you* to whatever arbitrary team needs seatwarmers at the moment. And FWIW, my skills were considered irrelevant to Google the year I joined, but suddenly _very_ relevant barely a year after I left.

*Unless you're an acqui-hire, and then Google once again rocks because you get both the perks and the interesting work.

</comment></comment></comment></comment></comment></comment><comment><USER20> At what point is Google going to officially become a consulting company?

Right now, they seem to be playing arbitrage with engineering talent. They buy up engineers with large salaries and fancy perks. Those people, who now span almost every industry, are then used on projects like these. This has nothing to do with Google's core business or any branch of it at all.

It seems like Google is designing all sorts of products outside of its core competency (medicine, cars, now this?) with the hopes of either spinning it off, selling to the highest bidder, or...? I can't see shareholders liking Google trying to enter every market in the world.

<comment><USER21> > Right now, they seem to be playing arbitrage with engineering talent.

I think the actual problem is that very few other companies know how to make appropriate use of engineers.

"Robert, you said this sprint that you would move the logo image 2 pixels to the left. Can you PLEASE come to the morning stand-up, listen to 26 people report their status, and then tell us if you have any roadblocks? kthx."

<comment><USER22> I laughed really hard at this. Have been in some hour-long "standups." :) IRC standups are pretty nice.

</comment></comment></comment><comment><USER23> *Larry Page said: "By improving urban technology, it's possible to significantly improve the lives of billions of people around the world. With Sidewalk, we want to supercharge existing efforts in areas such as housing, energy, transportation and government to solve real problems that city-dwellers face every day. Every time I talk with Dan I feel an amazing sense of opportunity because of his passion for all the ways technology can help transform cities to be more livable, flexible and vibrant. And when you combine that with his experience as an investor, in NYC government, and as CEO of the large information company Bloomberg LP, I can't imagine a better person to lead these efforts."

Let's get serious. This initiative is not about toilets, smart flushing and homeless.

I'm fine with it as long as I don't have to have anything always connected to internet, sync data in the cloud and be forced to agree/manage/monitor gazillions of privacy changes, terms and conditions where companies decide to update and change their data protection acts, the ways the share, store and manipulate my data.

Maybe we should firmly keep big technology companies, already in tune with the NSA friends, get closer to our families and private lives. The last thing I'd want is Google, Bloomberg, IBM, Facebook and Cisco circulating all my activities (toilet flushes including) for the sake of my children, future nephews and my neighbours to NSA, have my own cars or my own house lock me out because Palantir discovered about my passion for Moroccan tea or my kid flies a Chinese quadcopter in the backyard.

</comment><comment><USER24> Without attacking Google, the consensus is that Google Launches {Project} is not anymore news than it is a long sigh and a jaded response of "Oh Google just launched another project, go Google. Now to work on my side project".

</comment><comment><USER25> It's interesting that Google chooses to create new companies for problems orthogonal to its core purpose, instead of choosing to diversify itself as a company into multiple industries. Is this a common phenomenon or is it something that is new?

<comment><USER26> That is interesting indeed. You didn't see Apple Computer, Inc. spinning up Apple Mobile Technologies, Inc. after the iPod and iPhone success. They simply pivoted (to use a maligned term) their company and mission to Apple, Inc.

</comment></comment><comment><USER27> Sorry for OT but why is google plus not responsive?!?

Sometimes I have to increase the size of the page to ease my reading. This is what I get:

[http://puu.sh/iklL3/08aa3d3563.png](http://puu.sh/iklL3/08aa3d3563.png)

And I can't even scroll to the right! Is there something wrong with my chrome configuration (maybe a plugin not playing nice)? Or can someone else repro this on their mac?

<comment><USER28> I can reproduce it. In order to fix it, I have to refresh the page. Happens on my Mac all the time when accessing G+ from a browser window that may be a different size from the browser window I previously used to access G+ in another session.

</comment></comment><comment><USER29> So if you choose to live in X urban area, could you potentially be forced into using Google technology because of where you live?

<comment><USER30> That is probably already true of other companies. The systems that run the traffic lights may be run by IBM, train routes may be overseen by Cisco, etc.

</comment></comment><comment><USER31> So they targeting companies like Siemens now? They do not make public transportation systems, they do not make energy systems, they do not build houses.

[http://w3.siemens.com/topics/global/en/intelligent- infrastru...](http://w3.siemens.com/topics/global/en/intelligent- infrastructure/pages/intelligent-infrastructure.aspx)

[http://w1.siemens.com.cn/sustainable-city-en/sustainable- cit...](http://w1.siemens.com.cn/sustainable-city-en/sustainable-city.html)

<comment><USER32> I don't think the word "Targeting" is correct. Google has unique innovation skills, and they are willing to use them to collaborate with others who are willing to innovate. Only unless said companies(say ISP's) aren't willing to innovate, they'll be a threat.

At least that seems the general theme at Google.

<comment><USER33> Not sure you really addressed why 'Targeting' isn't correct. Just because they have unique skills doesn't mean they can't target someone's business.

</comment></comment></comment><comment><USER34> From their homepage: "By 2050, the population in cities will double, intensifying existing socioeconomic, public health and environmental problems."

Yes.

People move into a few big cities because companies companies like Google congregate there, ultimately creating problems such as skyrocketing rents, congestion, declining real living standards, homelessness.

Google holds an obvious solution in its hand. By altering their way of working they could support remote working, creating clusters of specialized work forces and communities online rather than in a narrow physical location.

<comment><USER6> If you look at settlements from a scaling point of view you will inevitably find that not only are larger cities more efficient structures but they lead to an improved quality of life. This is not just because of "companies like Google". Here are some slides ([http://www.complexcity.info/files/2011/12/BATTY-Scaling- Laws...](http://www.complexcity.info/files/2011/12/BATTY-Scaling-Laws-For- Cities.pdf)) and a TED talk ([https://www.youtube.com/watch?v=XyCY6mjWOPc](https://www.youtube.com/watch?v=XyCY6mjWOPc)).

<comment><USER30> Yes, large cities make humans more productive! It's not necessarily intuitive but more interactions leads to more innovations.

(Shameless Plug) You can read a bit more about the research in the TED talk here: [http://santafe.edu/research/cities-scaling-and- sustainabilit...](http://santafe.edu/research/cities-scaling-and- sustainability/)

Our research group (started by Geoffrey West & Luis Bettencourt) is also trying to understand (and help address) the issues of growing cities in the developing world, where the biggest issue are slums: [http://santafe.edu/research/informal- settlements/](http://santafe.edu/research/informal-settlements/)

</comment></comment></comment><comment><USER8> People comparing Apple and Google on everything forget that both companies are very different in their missions. It's not about right and wrong, it's just different.

<comment><USER35> Making money is agenda number one for both companies regardless of what their respective PR departments say.

<comment><USER36> If you must make money to pay for your living and take care of your spouse and kids so that they may have a better future than the life you have lived, is your agenda number one to make money regardless of what you tell your friends you are working for?

<comment><USER35> No it's not. You can support your family without enabling an evil corporation in sneaking billions in tax evasion schemes. Greed destroys. Capitalism destroys. No paint job fixes that.

<comment><USER37> > Capitalism destroys.

All systems destroy. Destruction is a natural phenomenon. The difference is that capitalism creates more than it destroys, and (empirically) creates more than any other economic system.

> Greed destroys.

On greed: [https://www.youtube.com/watch?v=RWsx1X8PV_A](https://www.youtube.com/watch?v=RWsx1X8PV_A)

</comment></comment></comment></comment></comment><comment><USER38> Google is bassically just five products- search, ads, gmail, youtube and android. Anything else is just roundoff error, even though they may be very interesting.

<comment><USER39> and Google Maps

</comment></comment><comment><USER40> This is visionary. We are becoming a predominantly urban species and there are incredible tech opportunities both from a business and from a social benefit perspective. Walkscore, Bikewise and Open311 are a few examples that come to mind, but that's just tip of the iceberg. After the internet-of-things, the internet-of-habitat is coming. It's brilliant that Google wants to help invent it.

</comment><comment><USER41> Microsoft, IBM, GE, Siemans, and even companies like Cisco, Rockwell and others have all been making moves here.

Nice to see Google finally joining the rest of the tech industry ;-) I have to assume this was prompted by the sort of standards work Nest were doing, and the sort of impact that Google Maps is having on traffic.

</comment><comment><USER42> From [http://www.sidewalkinc.com/](http://www.sidewalkinc.com/): _" By 2050, the population in cities will double"_

Is the best solution a frontal attack? Or could it be moving away from existing cities?

Could one design a new city from scratch?

<comment><USER43> > Could one design a new city from scratch?

Yes, but the result is Milton Keynes.

<comment><USER42> Thanks for Milton Keynes but that can't be the only result in the whole world.

One proposal is Arcosanti, an urban laboratory focused on innovative design, community, and environmental accountability. [https://arcosanti.org/](https://arcosanti.org/)

<comment><USER43> With all due respect to the project, I don't consider a 150-person community a city. Letchworth is closer but it's still not going to tip the scales or become a second Newcastle or London anytime soon.

</comment></comment></comment></comment><comment><USER44> Google: Serving you ads, in every corner of the city.

</comment><comment><USER45> They mention public transport. Does this mean "google buses" for everyone, or is that still going to be a sore point in SF?

</comment><comment><USER46> When Google killed off a lot of its technology projects the assumption was Page and Brin listened to the Jobs' advice to focus on fewer products. But then they started announcing a bunch of these other projects that are not directly related to their core products.

Isn't Google better off just running and maintaining those other projects they killed?

I am not saying these are bad but from an investor point of view only a small number of them make sense.

<comment><USER47> I don't think Larry and Sergey are interested in upping their $$$ status to $$$$. They are pure technology enthusiasts and want to change the world with it, and they use their money printing machine as the enabling engine.</comment></comment>


Show HN: Execute a shell command each time a given file or directory changes - <AUTHOR> https://github.com/Dinduks/change-execute-loop

<comment><USER2> I'm sure I've seen a nicely crossplatform command-line tool for this, but I can't seem to find it. The closest (by support for non-poll APIs) seems to be 'simplefilewatcher'[1], but that's just a C++ library.

incron, inotify, filewatcher[2], puncher[3], guard[4] are a bunch of existing ones, but they're all either not entirely functional cross-platform, or require some faffing with dependencies to get working.

[1] [https://code.google.com/p/simplefilewatcher/](https://code.google.com/p/simplefilewatcher/)

[2] [https://github.com/thomasfl/filewatcher](https://github.com/thomasfl/filewatcher)

[3] [http://rawsyntax.com/blog/puncher-the-simple-file-watcher- fo...](http://rawsyntax.com/blog/puncher-the-simple-file-watcher-for-os-x/)

[4] [https://github.com/guard/guard](https://github.com/guard/guard)

</comment><comment><USER3> I'm aware that it's beyond the scope of cel, but I'd use incron anyday for jobs like this.

<comment><USER4> A better approach surely would be to wrap inotify/osx fsevents

<comment><USER5> That's what incron does...

<comment><USER4> On Linux yes, it doesn't exist on osx though. My point was that the author could have written his tool as cross platform without relying on an 'ls' every 100ms, by using the platform tools availble</comment></comment></comment></comment>


Scooping the Loop Snooper: Proof That the Halting Problem Is Undecidable (2000) - <AUTHOR> http://www.lel.ed.ac.uk/~gpullum/loopsnoop.html <comment><USER2> Actually, it's quite possible to determine if a deterministic program with finite memory will loop. Either it halts, or it repeats a previous state.

You can check for repeating a previous state by running two copies in lockstep, one running twice as fast as the other. If the states of the two match, you're in an infinite loop. In the 1970s, a batch system intended for beginning programmers actually did that. The college had discovered that the successful jobs ran about a second, and the ones in a loop ran out the 30 second timer. So it was a win to take a 2x speed penalty to catch simple loops.

You can make a program cycle through a very large number of states, so you don't always get a practical halting check, but in theory, and often in practice, you do repeat a state eventually.

Undecidability requires infinities.

<comment><USER3> > Undecidability requires infinities

Not in any reasonably modern system. The state in this case is the exact sequence of bits contained in RAM and on your hard drive, which might as well be infinite (lets ignore for a moment that your computer is connected to the Internet and to real entropy sources, which really _do_ make things infinite).

Some napkin math: if you've got a terabyte hard drive and 32 gigs of RAM, then there are approximately 2^(1,032 * 1024 * 1024) states your computer might be in, which is about 1.79 * 10 ^ 325,753,719. It can be hard to conceptualize numbers at that scale, but a fun illustration is that it is so big that the number itself would not fit on many laptops. It is infinite for any useful sense.

For comparison, there are an estimated 10^86 atoms in the observable universe -- if each atom in the universe was in fact its own universe, and each atom in all of those universes was its own universe, and so on... you'd have to go four layers deep to start talking comparable numbers here.

<comment><USER4> A finite deterministic state machine can not perform more transitions than it has states without returning to a state it has been in before, and once that happens, because it is deterministic, it will repeat the sequence of transactions, that occurred between the first and second occurrence of that state, indefinitely.

All programs that halt, therefore, must do so in less than #states steps, and the rest certainly never will, so we could show, in finite time, whether any given program on that machine will halt. We know, therefore, that the halting problem on this machine is decidable, even if we could not, in practice, demonstrate it.

The halting problem was not posed because we want to know if a given program will halt; it was posed as a means of attacking a much deeper problem.

Note also that any NFA can be converted to an equivalent DFA by powerset construction.

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

</comment></comment></comment><comment><USER5> The easy way to think about the halting problem is imagine a program to do some sort of exponential time algorithm. At the end, it checks the result, and if it meets some test, the program goes into an infinite loop. If you could determine that this program halts faster than it would take to run it, then you would know something about this difficult calculation without having to run it. This would be a way to speed up any algorithm!

<comment><USER6> But it's not only impossible to decide halting faster than the program would run, but impossible at all, a much stronger statement.

<comment><USER7> It's not really stronger, given that non-halting programs run forever.

</comment></comment></comment><comment><USER8> Submitted many times, but only [https://news.ycombinator.com/item?id=10077471](https://news.ycombinator.com/item?id=10077471) had comments, only two.

</comment><comment><USER9> I've always felt that the lesson in the Halting Problem was that you should write programs that a theoretical P would be able to take in as data and calculate an answer. It's easy to make computers blow up but hard to make them useful. That's why we have well paying jobs managing them.

</comment><comment><USER10> I wonder, while the halting problem is undecidable for arbitrary Turing machines, are there any practically useful subsets where the halting problem is decidable?

<comment><USER11> This is the best I could find: [https://en.wikipedia.org/wiki/Total_functional_programming](https://en.wikipedia.org/wiki/Total_functional_programming)

There's also [https://en.wikipedia.org/wiki/Primitive_recursive_function](https://en.wikipedia.org/wiki/Primitive_recursive_function) implemented in [https://en.wikipedia.org/wiki/LOOP_(programming_language)](https://en.wikipedia.org/wiki/LOOP_\(programming_language\))

</comment></comment><comment><USER12> According to my (admittedly minimal) understanding of Turing machines and the halting problem, a Turing machine has a set state encoded on the tape and then the head starts running the program.

I didn't think there was any provision in pure Turing machines for referencing external data, so to reference itself, Q must contain itself recursively on the tape to start with.

If every copy of Q contains a full copy of Q within it then it must be an infinite length program, and any Turing machine will require infinite steps to even read it.

I don't believe this "proof" for this reason.

<comment><USER13> Here's the information you're missing: [https://en.wikipedia.org/wiki/Kleene's_recursion_theorem](https://en.wikipedia.org/wiki/Kleene's_recursion_theorem)

</comment></comment><comment><USER14> Does the halting problem imply perfect automated testing is impossible on nontrivial systems?

<comment><USER15> No, the halting problem is an abstract result that only applies to infinite systems.

You can test a system with a bigger system, but that is generally economically infeasible, since testing costs are exponential in system size.

</comment></comment><comment><USER16> Of course, the ever relevant (but in this case somewhat strangely worded) xkcd: [https://xkcd.com/622/](https://xkcd.com/622/). Mathematical proofs in the form of poetry are always fun to read.

<comment><USER17> I was actually surprised by your choice of xkcd, even if it is a fun one. For me the most relevant would have been 1266 - 'Halting problem' : [https://xkcd.com/1266/](https://xkcd.com/1266/) which is one of my all time favorite.

</comment></comment><comment><USER18> It may well be, you can't be 100% sure.</comment>


Ask HN: Scientific evidence for anti aging skin care product effectiveness? - <AUTHOR> Hi, we live in the world of anti aging and wrinkle removing skin care products but surprisingly  I was unable to find any scientific evidence that these products actually do what they claim. Anybody know a study or scientific evidence that proves/disproves the claims of facial skin care industry? <comment><USER2> Quick check on [https://www.reddit.com/r/askscience/search?q=anti+aging&rest...](https://www.reddit.com/r/askscience/search?q=anti+aging&restrict_sr=on) suggests you're right. Cells age and the products help a bit with hydration but not the kind of revolutionary improvement (the 'anti' part) the marketing claims.</comment>


Stenographer – A full-packet-capture utility - <AUTHOR> https://github.com/google/stenographer

<comment><USER2> A bit surprised to see no support for DPDK. While using AF_PACKET makes the project a bit more portable, you'll be able to save a lot of cycles by using skipping the kernel all together.

<comment><USER3> I blame blissful ignorance: I'm not at all familiar with DPDK. I'll definitely read up, though!

I wonder if O_DIRECT writes can happen from DPDK memory space? If not, we don't gain anything, since we'd need to copy packets into RAM for writes anyway.

Supporting stock Linux is definitely a nice-to-have... I'd like to make this a relatively easily installed deb. Currently, all dependencies are available via apt-get in stock Ubuntu.

</comment></comment><comment><USER4> Interesting!

An open source high performance rolling packet dump with packet index for incident response.

To be honest, I had imagined Google already had solutions like this internally :)

These have been commercially available for a few years, look at RSA Security Analytics (formerly NetWitness), or BlueCoat Security Analytics (formerly Solera). Or the (open source) Bro Time Machine. I used to work with one of these products in the past.

What make systems like this a lot more powerful is more and easier search and retrieval. While indexing IP numbers and port numbers is good, it will get much more useful if you can connect it to something like 'bro' and get session level data and then index filenames, user-agents, file hashes, and others pieces of information. I'm sure you can see the use cases.

Having an easy way to query 'all traffic with this particular user agent', together with the full packet capture, which allows you to write new rules, can significantly increase the efficiency of a security team.

Apart from the streaming analytics, once the PCAP data is stored, you can use mapreduce type operations on them to search through yesterday's data with today's IDS signatures (look at PacketPig/what Packetloop does). Maybe a lambda architecture is the way to go, or just reprocess old data through the same stream processing.

Cool work though! I'm curious where this will go next.

</comment><comment><USER5> The design document is a good read and includes high-level details of how they're grabbing packets (AF_PACKET), the packet index format (leveldb), and defensive action they took (fuzz testing via AFL, setcap, setcomp):

[https://github.com/google/stenographer/blob/master/DESIGN.md](https://github.com/google/stenographer/blob/master/DESIGN.md)

<comment><USER3> Hey, thanks! If you have any additional questions about the design process, internals, etc, feel free to ask. I'm the primary author of the project, and I'll be refreshing the HN post for the next hour or so trying to answer questions as they come up, and/or updating the docs.

<comment><USER6> What kind of performance do you see when searching over, say, 10TB/day or two of captured data? It seems like the query would have to open a file for every minute? Have you considered a higher level index, to tell which minute files are worth inspecting? (I realize this only helps when searching for more unique characteristics.)

Is LevelDB the best choice out there for write once KV pairs? For, say, IP address indexing, what's the final bits/packet overhead of indexing?

I didn't see any compression for the packet data. Did you consider high perf compression like LZ4?

Is AF_PACKET better than PF_RING+DNA? It's been a while since I looked but with hardware accel they boasted massive perf advantages.

Excellent design docs and cool work!

<comment><USER3> Hey, great questions!

Query Performance: Right now, we've got test machines deployed with 8 500GB disks for packets + 1 indexing disk (all 15KRPM spinning disks). They keep at 90% full, or roughly 460GB/disk, about 1K files/disk. Querying over the entire corpus (~4TB of packets) for something innocuous like 'port 65432' takes 25 seconds to return ~50K packets (that's after dropping all disk caches). The same query run again takes 1.5 sec, with disk caches in place. Of course, the number of packets returned is a huge factor in this... each packet requires a seek in the packets file. Searching for something that doesn't exist (host 0.0.0.1) takes roughly 5 seconds. Note that time-based queries, like "port 4444 and after 3h ago and before 1h ago" do choose to only query certain files, taking advantage of the fact that we name files by microsecond timestamp and we flush files every minute.

A big part of query performance is actually over-provisioning disks. We see disk throughput of roughly 160-180MB/s. If we write 160MB/s, our read throughput is awful. If we write 100MB/s, it's pretty good. Who would have thought: disks have limited bandwidth, and it's shared between reads and writes. :)

We actually don't use LevelDB... we use the SSTables that underly LevelDB. Since we know we're write-once, we use [https://github.com/google/leveldb/blob/master/include/leveld...](https://github.com/google/leveldb/blob/master/include/leveldb/table_builder.h) directly for writes (and its Go equivalent for reads). I'm familiar with the file format (they're used extensively inside Google), so it was a simple solution. That said, it's been very successful... we tend to have indexes in the 10s of MBs for 2-4GB files. Of course, index size/compressibility is directly correlated with network traffic: more varied IPs/ports would be harder to compress. The built-in compression of LevelDB tables is also a boon here... we get prefix compression on keys, plus snappy compression on packet seek locations, for free.

We currently do no compression of packets. Doing so would definitely increase our CPU usage per packet, and I'm really scared of what it would do to reads. Consider that reading packets in compressed storage would require decompressing each block a packet is in. On the other hand, if someone wanted to store packets REALLY long term, they could easily compress the entire blockfile+index before uploading to more permanent storage. I expect this would be better than having to do it inline. Even if we did build it in, we'd probably do it tiered (initial write uncompressed, then compress later on as possible).

AF_PACKET is no better than PF_RING+DNA, but I also don't think it's any worse. They both have very specific trade-offs. The big draw for me for AF_PACKET is that it's already there... any stock Linux machine will already have it built in and working. Thus steno should "just work", while a PF_RING solution has a slightly higher barrier to entry. I think PF_RING+DNA should give similar performance to steno... but libzero currently probably gives better performance because packets can be shared across processes. This is a really interesting problem that I'm wondering if we could also solve with AF_PACKET... but that's a story for another day. Short story: I wanted this to work on stock linux as much as possible.

<comment><USER6> Thanks for the detailed reply! But I'm really curious: That performance is a bit beyond the spec'd max spec for such HDDs (3.0ms seek + 2ms latency, so 50K random IO should need around 31 seconds with 8 disks. I'm guessing a bit of clustering in the packet distribution improves seek time so a sector/page contains multiple hits?

I'm interested because I wrote an app-specific indexer, but with requiring "interactive" query response times over a couple TB, for multiple users. But that was years ago, before LevelDB and Snappy, and Kyoto Cabinet had far too much overhead per kv), and on small CPUs and a single 7200rpm disk. I got compressions rates of 5 to 6 using QuickLZ; a non-trivial gain.

I was looking at this problem space again and considering a delta+int compression approach to offsets, given they're just incremental. (And there are cool SIMD algorithms for 'em.) But it sounds like SSTable + fscache is fast enough, wow, that's pretty cool!

The decompression of blocks in some apps doesn't have to be much of a penalty if there's a reasonable amount of clustering going on in the sample set. What I did was instead of just splitting blocks on time, I segmented them based on flow and time. I did L7 inspection, and an old quad-core Core2 could handle 1Gbps, so 10Gbps is probably achievable nowadays, certainly for L4 flows. That way there's great locality for most queries.

Further, the real cost is the seek, and transferring a few more sectors won't cost as much. If you're using mmap'd IO for reading, you might be able to compress pages and not pay any IO penalty, right? And in fact, it might even reduce the number of seeks, due to increasing clustering of packets onto the same page. And I think some of the fastest compression algorithms only look back a very small amount, like 16K or 64K anyways? Although, this is probably easier done just by using a compressed filesystem cause the cache management code is probably nontrivial.

<comment><USER3> I think the reason we're getting faster performance is that we tend to have packets clustered on disk, as you've surmised. Since packets with particular ports/IPs/etc tend to cluster in time, there's a good chance that at least a few will take advantage of disk caches. Even if we clear the disk cache before the query, the first packet read can cache some read-ahead, and a subsequent packet read may hit that cache entry without requiring an additional seek/read.

As far as compressing offsets, I haven't done any specific measurements but my intuition is that snappy (really any compression algorithm) gives us a huge benefit, since all offsets are stored in-order: they tend to have at least 2 prefix bytes in common, so it's highly compressible.

I experimented with mmap'ing all files in stenographer when it sees them, and it turned out to have negligible performance benefits... I think because the kernel already does disk caching in the background.

I think compression is something we'll defer until we have an explicit need. It sounds super useful, but we tend not to really care about data after a pretty short time anyway... we try to extract "interesting" pcaps from steno pretty quickly (based on alerts, etc). It's a great idea, though, and I'm happy to accept pull requests ;)

Overall, I've been really pleased with how doing the simplest thing actually gives us good performance while maintaining understand-ability. The kernel disk caching means we don't need any in-process caching. The simplest offset encoding + built-in compression gives great compression and speed. O_DIRECT gives really good disk throughput by offloading all write decisions to the kernel. More often than not, more clever code gave little or even negative performance gains.

<comment><USER6> Yeah it's very impressive how fast general systems have become, eliminating a lot of the need for clever hacks.

I wonder how much would change if you were to use a remote store for recording packets, like S3 or other blob storage. In such cases the transfer time overhead _might_ make the compression tradeoff different. And the whole seek- to-offset might need a chunking system anyways (although I guess you can just Range when requesting a blob, but the overhead is much larger than a disk seek).

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> They probably don't want to give away too much (like security details of their network), but I think it'd be more compelling with some examples of how to use this for Intrusion Detection.

It's a topic I don't know much about, and I think it'd reinforce the claim this isn't for user monitoring.

<comment><USER8> Ok so this isn't a Google product. In brief (please correct if I'm wrong), Google lets its employees work on their own side projects on company resources if they assign copyright to Google. This means that it gets published on the Google github account, but is then denoted to not be a Google product - it's someone's side project.

I do however have at least anecdotal experience with how these sorts of systems work. The idea is that as a large company, you traditionally pump all of your internet through a firewall, which scans it all online, does deep packet inspection etc to look for attackers.

Then, because it takes up a lot of space, you ditch it, and perhaps keep finer grained logfiles - perhaps just the DNS requests or headers or suspicious packets etc.

The idea here is that for many companies, this isn't helpful when you do get owned - you'll have deleted most of the relevant data (showing exactly what got exfiltrated etc, how it happened etc) and you might have some logfiles showing TCP addresses but you know little else.

Since a company of 1000 will use no more than around 1-10TB per day for its staff, it's actually now feasible to store every packet that is sent in and out of your network - you could store for 90 days on around 0.1-1PB - which is actually fairly affordable for a company of that size.

Then, you either run large (more expensive than can be done in a firewall) jobs over the data offline to look for intrusions, or wait for a breach and then drill down on the data to try to learn exactly what happened.

The reason why this isn't really a tool for monitoring users is:

a) What can you do to track users that you couldn't already do with systems that don't store all the data? b) The target seems to be corporate networks who can and should monitor what their users are doing on their network. c) The nature of this sort of data is that because it's not really indexed any specific searches would be very expensive - perhaps requiring runthroughs of terabytes of data. So individually spying on many people isn't really doable without further processing - this is really just a big packet dumper.

If you were going to try and monitor random Joe Public, then you'd certainly be fitting a device like this to a computer their traffic would be passing through - but this isn't useful for someone who's not an ISP or nation state (and in that case, there'd probably be smarter ways of doing this (since here, you can only sniff local connections)). For Google, the most they'd be able to sniff is communications from their users to their own servers - which isn't a huge bonus for the costs.

Even for an ISP, it'd just be massively expensive and unhelpful - a UK ISP (Plusnet) I just searched up has around 800,000 ADSL users, and at peak time they see total usage of 130Gbps-ish. Even assuming average half utilisation of 65Gbps, that's still 702TB a day. That's a massive amount of data to store for any reason. The reason you (bad person) only store the metadata is beause the metadata is the valuable part!

I welcome corrections :)

<comment><USER7> Thanks!

> Then, you either run large (more expensive than can be done in a firewall) > jobs over the data offline to look for intrusions, or wait for a breach and > then drill down on the data to try to learn exactly what happened.

I was thinking in terms of offline jobs, and don't have a good intuition for what those rules would look like. I'm also skeptical that your average company would have the expertise to write a good set of rules. So I was interested to see that "half" of an IDS tool.

I think the real answer is that it truly is just a rolling packet dump, and it's up to you to use it however you choose.

I can think of uses outside of network security: capturing traffic from your mobile devices on your home network (maybe this is just IDS if you're watching for the contents of your address book to be exfiltrated by a malicious app), or snooping on people through a Internet cafe, library, or other (small) open network that you administer.

For these uses, just like IDS, you'd want to run offline jobs against the data. Whether that's a full scan for something interesting, or an indexing pass that extracts (portions?) into a more easily viewable form.

<comment><USER3> Offline jobs are an interesting idea, but they weren't what we were really thinking of. Instead, we use stenographer more like a database of recent traffic. Consider this as a simple use case for intrusion detection:

      set up snort and steno
      foreach snort alert
        request all packets in stream from steno: srcIP,srcPort,dstIP,dstPort match
        OR request all packets on that srcIP,dstIP, to get OTHER connections between those hosts
        store pcap to directory (or central DB, or whatever)

Then, when a human analyst wants to investigate the alert, instead of getting the very limited PCAP that comes out of snort, they get a ton of data they can use to build context, write new detection rules, etc.

</comment></comment></comment></comment><comment><USER9> What does this offer that tcpdump doesn't?

<comment><USER10> 1) Performance. Zero copy ("The kernel writes them from the NIC to shared memory, then the kernel uses that same shared memory for O_DIRECT writes to disk. The packets transit the bus twice and are never copied from RAM to RAM."). Parallelism.

2) Disk management. Rotates old data, etc

3) Indexing and supports efficient retrieval while writing.

It allows to analyse the traffic after the fact, at 10Gbps line speed.

<comment><USER11> You can get zero-copy for tcpdump with PF_RING or netmap.

<comment><USER10> I'm aware of libpcap's ability to share memory with a user buffer, but I didn't find any mention that tcpdump utility is actually written to exploit it for extra fast writes.

Look here how they handle this in stenographer: [https://github.com/google/stenographer/blob/65fb928e6bce276c...](https://github.com/google/stenographer/blob/65fb928e6bce276ccd2481542dc45cf68fd33530/stenotype/stenotype.cc#L42)

I guess that in principle they could have patched tcpdump, but it's probably easier to have a smaller software written to do exactly what you want rather than extend a general purpose mature complex tool such as tcpdump.</comment></comment></comment></comment>


Ask HN: What is your hardware/garage side-project? - <AUTHOR> If have personal blog about it please share it. <comment><USER3> I'm working on a headphone stand that has a USB DAC/headphone amplifier built in, along with circuitry to detect when the headphones have been hung up, thereby switching the DAC output to a line out (to drive speakers, or whatever).

It's a shameless amalgamation of a DIY post on Reddit[1] and some design aesthetics from an existing DAC/headphone amp[2] that I really like. I'm currently at the point where the internals are close to finalized enough to order boards and do integration testing, and starting work on modeling the enclosure, which will involve some mix of CNC milling, mandrel bending and welding.

I really like throwing away money, apparently.

Blog here: [https://nuclearfurnace.wordpress.com/](https://nuclearfurnace.wordpress.com/)

[1] - [https://www.reddit.com/r/3Dprinting/comments/529qyp/smart_he...](https://www.reddit.com/r/3Dprinting/comments/529qyp/smart_headphone_stand_toggles_the_default_audio/)

[2] - [https://www.jdslabs.com/products/151/the- element/](https://www.jdslabs.com/products/151/the-element/)

<comment><USER4> That's really cool. I've always wanted something that would seamlessly switch between headphones and my monitors.

<comment><USER3> Yeah, right now, I have some dinky 2.1 speaker setup, and there's a remote control box that feeds back to the subwoofer to control the volume and expose a headphone port. I have to plug/unplug when I want to switch, and the volume control button/wheel has low resolution because it's so small.

The Reddit link uses a Windows program to do it, but I wanted it to be universal because I dual-boot, so doing it in the DAC/amplifier seemed like a better approach. :)

</comment></comment></comment><comment><USER5> I've been developing a Motorola 68K-based retro computer. The goal is somewhere around Atari ST-era sophistication, but it isn't quite there yet. Currently has a UART, some switches, some LEDs, and a periodic timer. Still needs keyboard input, video output, removable storage, and a slightly smarter interrupt controller.

[http://coderjames.bitbucket.org/](http://coderjames.bitbucket.org/)

The website has a bunch of broken links to missing material, as I haven't gotten around to writing it yet. All the schematics, gerbers, and firmware source code are up though, so it should be reproducible.

</comment><comment><USER6> I'm building a two person research submarine with some friends. Targeted diving depth: 100m

I have an electronics/IT background so building something so mechanical is a fun learning experience.

[http://ubaad15.org](http://ubaad15.org)

<comment><USER7> Now that's cool. Do you have some automated way of testing it or will you be in it on the first test at that depth?

<comment><USER6> I imagine that the first test pilot will be a computer. Submarines are really nicely simple systems, which is why it is possible for a bunch of amateurs to build one.

</comment></comment></comment><comment><USER8> I'm building my PiPlay Advance. A Pi Zero game console with all off the shelf components (plus our PCB) and only a few solder points.

Our BOM is about $35 - $45 right now before bulk discounts.

[http://blog.sheasilverman.com/wp- content/uploads/2016/10/778...](http://blog.sheasilverman.com/wp- content/uploads/2016/10/7781242402913675050-account_id1.jpg)

[https://docs.google.com/forms/d/e/1FAIpQLSerQdiZrYwMojO9M8Hi...](https://docs.google.com/forms/d/e/1FAIpQLSerQdiZrYwMojO9M8HiSxwgYY8evDopPK- WO2hFTkaXRct8TA/viewform?c=0&w=1)

</comment><comment><USER9> I'm currently working on trying to crack an electronic safe lock based on the awesome DEFCON talk by Plore ( [https://media.defcon.org/DEF%20CON%2024/DEF%20CON%2024%20pre...](https://media.defcon.org/DEF%20CON%2024/DEF%20CON%2024%20presentations/DEFCON-24-Plore- Side-Channel-Attacks-On-High-Security-Electronic-Safe-Locks.pdf) )

I don't think the photos are exactly up-to-date, but I currently have an STM32F429 DISCO dev board, configured with a ladder DAC, so I can generate the analog keypresses for the safelock via my laptop, the board also sets a pin high to force my oscilloscope to trigger and capture the voltage from my ucurrent, which is hooked up to the battery of the safe-lock.

[https://www.anfractuosity.com/projects/safe/](https://www.anfractuosity.com/projects/safe/)

I'm also trying to get some iron nanoparticles, if I can find them cheap enough, in order to try to optically image a floppy disk.

I've got some images from one in the link below, but that was using a magnetic developer, with much larger particles.

[https://www.anfractuosity.com/projects/optical-magnetic- stri...](https://www.anfractuosity.com/projects/optical-magnetic-stripe- reading/)

</comment><comment><USER10> A 40 digit calculator using a Ras Pi, Java, 7-segment readouts, MAX7219 chips driven slightly out of spec (ab)using the SPI pins. Two 4x4 keypads to form an 8x4 keypad so it will be a scientific calculator. Found a Java library to do transcendental functions using BigDecimal. All of this on a breadboard. (I'm a software guy who doesn't know which end of a soldering iron to pick up.)

Other project. A 64x64 RGB LED display driven by a Teensy 3.2, in C++. A friend who does hardware but not so much software sent a beautifully assembled rig in a very nice enclosure.

No blog.

</comment><comment><USER11> I've been working on my generative adversarial network. It's a fascinating type of ML that can learn from both supervised and unsupervised data.

In essence, given data it will create a generator of that data. Right now my datasets are mostly images. I have tried on audio data and that does start to work - then diverges.

I'm still trying to find a configuration that works really well:

[https://github.com/255bits/hypergan](https://github.com/255bits/hypergan) *

* needs modern GPU to run

<comment><USER12> This is really interesting. How much data does it require to build a generative model with say 60% accuracy for story type data?

<comment><USER11> GANs work on real-valued data. The problem with sequence data, like text, is that the error gradient can't flow through the generator.

There's some really great work being done called "Sequence GAN" that turns sequence generation into a RL problem. I'm not sure how successful they are, but it seems potentially powerful. [https://arxiv.org/abs/1609.05473](https://arxiv.org/abs/1609.05473)

</comment></comment></comment><comment><USER13> I'm currently converting a cargo van into a camper van suitable for full-time living. I bootstrapped the project out of a garage in two weeks and will now be doing most of the work in SF out of the van itself. It's an exercise in woodworking, metal working, solar/electronics, and interior design. I'm documenting the build on Instagram (same username) if anyone wants to follow along.

<comment><USER14> [https://www.instagram.com/bloudermilk/](https://www.instagram.com/bloudermilk/) for the lazy

</comment></comment><comment><USER15> I develop Open-Source software for CNC simulation.

[https://blog.buildbotics.com](https://blog.buildbotics.com)

<comment><USER16> If you're in the bay and need someone with a simple 4'x8' CNC router running mach 3 to test with, I'm game.

<comment><USER15> I am. I don't really have anything to test but it would be fun to meet up. My email address is linked in the last paragraph this blog post: [https://blog.buildbotics.com/is-camotics- alive-3be83275493#....](https://blog.buildbotics.com/is-camotics- alive-3be83275493#.ph836t6xw)

</comment></comment></comment><comment><USER17> I'm working on a device that mounts to a baseball cap and uses infared LEDs to block your image from digital cameras (at least the ones that don't have infared filtering, i.e. most surviellance cameras, which need to see at night). First attempt was underwhelming: [https://sr.ht/SBGV.jpg](https://sr.ht/SBGV.jpg)

Currently obtaining much more powerful LEDs. Next version is going to need cooling and an external power supply :D

</comment><comment><USER18> Does wetware count?

I'm rebuilding engineered bacteria which can take pictures [1]. I'm using new proteins which will make the bacteria more reliable and use cheaper materials to take pictures. I hope to create some pretty sweet looking images to hang on the wall.

[1] - [http://www.nature.com/news/2005/051121/full/news051121-8.htm...](http://www.nature.com/news/2005/051121/full/news051121-8.html)

</comment><comment><USER19> I'm trying to design and build a small direct-drive robot arm, inspired by this cool post:

[https://news.ycombinator.com/item?id=12536041](https://news.ycombinator.com/item?id=12536041)

I haven't worked with electronics since college, so I was trying to find a suitable project.

I unconscioussly bought some components and a couple of CHIP computers and I wanted to do something that interacts with the real world (sensors and actuators), but servo-based actuators seemed a bit lame.

Initially, I was going to use two motors and a spring per DOF in order to simulate a muscle ("variable stiffness joint", according to the previous post - I was going by intuition).

But then I read that direct drive was possible (the motor's magnetic field acts as the "spring") and that once that you have a suitable motor controller built all the rest is software defined, and I found the sweetspot for a project.

Such a motor controller is sufficient to keep me researching and prototyping for some time!

If I succeed with this, I'm planning on researching how to do some sort of artificial skin for robots. For the moment the idea revolves around connecting a USB camera to a bunch of fiber optic threads from a cheap lamp such as [http://prosites- lottofun9.homestead.com/files/fiberlamp2.jpg](http://prosites- lottofun9.homestead.com/files/fiberlamp2.jpg) and try to detect pressure on loops of the fiber by changes in the light source. That way you can cheaply and efficiently have a huge number of data points, with off-the-shelf components... but if someone does it beforehand I'll also be happy!

</comment><comment><USER20> I'm adding flow meters to my keggerator so I can detect when someone pours themselves a beer from one of the taps.

The plan is to have a camera take a photo, do some facial recognition to see if its either one of my flatmates or myself, then optionally post the pic to #beertheif on twitter or start playing some music based on the chosen beer.

<comment><USER21> My buddy has something going along the same lines but is using temp sensors to detect a pint being pulled:

[https://mobile.twitter.com/toms_beer_keg/status/799323771043...](https://mobile.twitter.com/toms_beer_keg/status/799323771043659777)

<comment><USER22> Two other non-contact methods I've seen are direct mass measurement (probably ebay the scales, it'll be like $500 new) or the most innovative thing I've seen is flow rate meters watching the CO2 source. See you can measure flow rate of the beer but that can get weird with bubble formation and sterilization but CO2 is clean and biologically boring and single phase. You can buy a flow rate meter with digital output for immense expense but its easier to use an analog one with a webcam. Big fun!

<comment><USER20> Measuring the co2 flow rate is an idea I hadn't considered! I only want to know when beer is being poured and not actually how much has been poured so measuring co2 may be a bit simpler for cleaning and actually wiring up too (although the wiring issue is specific to my setup)

</comment></comment></comment></comment><comment><USER23> Presently, none, but I have had a few ideas I've been wanting to get started on when I have more time for a hardware side project.

The first one to come to mind is an LED lighting setup that shift's it's color temperature according to the time of day, à la f.lux[1] or Redshift[2]. LED continue to improve for general lighting purposes, but it can't be good for my sleep patterns to have daylight temp lighting in my home right up until bedtime. It would be really nifty to the lighting in my home adjust to warmer temperatures with the solar day like my computer screens do.

1\. [https://justgetflux.com/](https://justgetflux.com/)

2\. [http://jonls.dk/redshift/](http://jonls.dk/redshift/)

</comment><comment><USER24> Does full time but fun count? We're building a network of automated food preparation and retail service locations based upon robotics, to initially launch in mainland China: [http://8-food.com/](http://8-food.com/)

The idea is the consumer can buy from their phone and pick up customized meals. Currently we're iterating functional prototypes toward ready for manufacturing while tweaking our form factor and components and increasing our ingredient volume and breadth.

We'd consider bringing on additional founders with strong mechanical engineering (CAM/materials science/foodtech) experience.

</comment><comment><USER25> deltabot - [https://www.youtube.com/watch?v=cbNiJKSRCpA](https://www.youtube.com/watch?v=cbNiJKSRCpA)

digital theramin - [https://www.youtube.com/watch?v=bZxVEUxaw1w](https://www.youtube.com/watch?v=bZxVEUxaw1w)

3d printer - [https://www.youtube.com/watch?v=QFOR1YPwFMM](https://www.youtube.com/watch?v=QFOR1YPwFMM)

stacked focus camera rig - [https://www.youtube.com/watch?v=6ovWjnzBGUw](https://www.youtube.com/watch?v=6ovWjnzBGUw)

<comment><USER25> more stacked focus rig - [http://imgur.com/a/SMLx9](http://imgur.com/a/SMLx9)

more deltabot - [http://imgur.com/a/05G1L](http://imgur.com/a/05G1L)

more theramin - [http://imgur.com/a/lvLE4](http://imgur.com/a/lvLE4)

slayer exciter - [http://imgur.com/a/5Rwtm](http://imgur.com/a/5Rwtm)

mame cabinet - [http://imgur.com/a/hzE1x](http://imgur.com/a/hzE1x)

polywell - [http://imgur.com/a/Tsg40](http://imgur.com/a/Tsg40)

</comment></comment><comment><USER26> I have a friend who builds kite buggies out of carbon fiber. Amazing, gifted inventor and craftsman, zero love for computers. Going to build a raspi based automatic tempering and ventilation system with him as well as seeing to getting him some crowdfunding.

Other than that, I really want to turn my, ahem, indoor flower growing project into a test environment to familiarise myself with sensor based programming. Thinking something like a bubbleponics setup with automatic nutritient dispensing and stuff. Zero human input being the goal.

</comment><comment><USER27> CNC machine shop. I rigged a Sherline mill and lathe with stepper motors, limit switches, electronic touch-off and emergency stop button. I multiplexed the limit switches with a custom designed PCB with Schmitt triggers and an Arduino. I hooked this all up to a stepper motor controller board and power supply, and I placed all that into a custom built enclosure. I connected the controller board to a PC using PCIe parallel port cards. The PC runs LinuxCNC. This lets me machine alumninum into parts modelled in 3D CAD. Then I've machines various tools needed around the shop. I've also made a Turner's cube using the lathe, and again using the mill.

I've also built a custom PS3 style controllers for manhually controlling the CNC machines. This was again done with custom PCBs, joystick and encoder parts, and Arduino.

I'm working towards machining a Stirling engine with my CNC machines. I've also been working on and off on a robotic arm (which is what got me into machining metal parts in the first place).

Unrelated to CNC machining, I've done a small, beginner SDR project: ADS-B receiver built with R820T2 USB SDR and custom built antenna from coax cable and PVC pipes, lets me to track commercial aircraft that frequently fly over my house.

</comment><comment><USER28> Not yet, I'm in research / learning / pooling resources for pcb fab on a desk, all-in-one. I've done CNCs before as a hobby, film scanners and stuff like that and I have some concepts which I think could yield an 'affordable' all- in-one pcb. You give the machine gerbers, you get (a few layered) pcb out. Maybe even a pick and place inside, but that's further down in concept. One step at a time, as time permits.

<comment><USER29> Out of curiosity, how are you planning on handling plating for vias and through-holes?

The desire to stop handling chemicals (I have no convenient means of proper disposal) has got me using the on-line prototype services for anything multi- layer (though I've thought about using my CNC mill for some simple single layer stuff).

<comment><USER28> That's the thing. I have to build several prototypes first in order to see which will be less hassle. Initial idea was to have the machine handle chemicals and a contained disposal system. On the other hand I could do it with hollow 'jackets' (that's how we call it, grommet is probably the proper name).

I have to balance two ideas into a concept first and then prototype. Those two primary ideas are:

1) have end-user buy as basic things as possible in order to produce PCBs (not rely on my chain of supply / custom shit). This is in order for machine to be as usable as possible, no matter where you live and to keep costs for you down as possible.

2) Have the workflow as hassle-free as possible with the best possible result.

Sometimes, those two ideas are clashing. Ultimately, it would be a machine built out of commonly available parts. For most parts, at least. And, I would provide pre-built machines as convenience. BOM for protos is already at around 7k-10k Euros, and it will take some time to build and refine on what I'll see from protos. Ultimately, I want a sub 2k Euros machine ready, out of the box, experience for end user. Maybe even less if I opt for smaller FR4 boards. From everything I've pooled so far together, on paper, it's doable. I just need to find a bit of time. I already set some time and cash after May next year just for this (after I finish a TV series I'm working on - my day to day job).

In my opinion, I think an affordable desktop PCB factory could open a lot of possibilities for people. If you had a machine and only things you would need to buy are FR4 boards and some commonly available and cheap chemicals and have the machine 'print out' a pcb for you, maybe even with parts placed, and have the exhaust for fumes and disposing system safe and easy and cheap... We need this. I need this.

</comment></comment></comment><comment><USER30> I'm developing an open hardware microwave vector network analyzer [1]. A previous switched single receiver prototype have worked for measuring S11 (reflected power, useful for antennas) up to about 4 GHz. I'm currently working on bringing up a full two port four receiver version that should work up to about 10 GHz.

[1] - [https://github.com/loxodes/vna](https://github.com/loxodes/vna)

</comment><comment><USER31> My garage project is cleaning out my garage so I can do a garage project. :-( In this case, a little library for the inlaws and cabinet carcasses for our kitchen.

</comment><comment><USER32> DIY Home Automation, using a mix of Raspberry Pis (for "bigger things") and Atmega328p micro controllers (same chip used in the Arduino Uno's) - Goal #1 is to have heating controlled by this lot..

So far, I've the heating relay control board done (16x 240V channels, controlling boiler activation and zone actuators to open the flow to different rooms). The on-wall thermostat PCB's are currently being manufactured, once they arrive I'll solder all the components in place and get a crude mounting done.. Then it's time to design the enclosure.

Once all this is done, I'll move onto the lighting as Goal #2. For these, it'll be the ATMega MC's, some RFM69 RF modules, and either a simple relay (for on/off lighting) or some as-yet-to-be-determined dimmer circuit. The challenge for these is, there's A) no neutral wire in at the light switch in EU (or maybe just Ireland/UK?), and B) it's 240V supply or nothing - <USER2> the thermostats, where each is wired separately back to a central point, and can be swapped over to a 5V supply, these will need to drop the voltage on board using minimal space (much less than a typical 5V wall-wart).

</comment><comment><USER33> Home automation with old industrial hardware: an Allen Bradley SLC 503.

I read and write data to the SLC with a python script on a RaspberryPI, which also serves up an interface to the SLC and historical data using Flask and MySQL. I've got the thermostat, a door switch, and a few lights hooked up.

I VPN in when I'm on the road just to keep tabs on things. I've never enjoyed how 'closed' commercial home automation is, and this was the result.

</comment><comment><USER34> A very trivial implementation of TCP running atop RS232<->USB converters connected back-to-back so you can run SSH over USB (or RS232) at around 3Mbps. For tunnels and stuff.

5000 LEDs drilled into 30m^2 worth of plywood, wrote a kernel driver to present the LEDs as a frame buffer on an RPi with Chromium, we (small team) mounted whole thing onto concrete slabs standing in a lake. Another RPi receives SMS text messages using a JS script to decode GSM PDUs with Unicode that are ultimately rendered on the LEDs. Nice graphics are added on top if you write something sweet for example.

A device to virtually switch an SD card out of an RPi and onto a host computer so you can remotely format the SD card and reboot the RPi.

A crawler versus human detector that is a bit simpler than those normally are.

Lots of projects that get tossed because they require expertise outside of my own area. I'm quite bad at finding other tinkerers to cooperate with, unfortunately.

<comment><USER24> Have you seen Linux's own IP over USB support? No need for an RS232 layer. [http://superuser.com/questions/593757/the-best-way-to-do- tcp...](http://superuser.com/questions/593757/the-best-way-to-do-tcp-ip-over- usb-on-linux)

You could even combine this with multiple cables to multiple ports (eg. 2x cables to 2x ports on each node) using the bonding driver.

</comment></comment><comment><USER35> A lighting desk for lighting live bands. The other desks on the market don't support the busking that this is designed for. The aim is 'no friction between the music and your lights'.

36 motorised faders, 2 DMX universes built in, up to 8 more with ethernet adapters. uses two Beaglebone Blacks and a Raspberry Pi 2, as well as 42 Atmel ATTiny828s. GUI code written in Python using pyside, and the other stuff written in Go.

No blog, just a single facebook page: [https://www.facebook.com/ManyHandsLighting/photos/a.79431027...](https://www.facebook.com/ManyHandsLighting/photos/a.794310270704282.1073741830.794297710705538/811843772284265/?type=3&theater).

</comment><comment><USER36> Getting a drone to play ping pong.

More specifically using a tiny indoor quad to intercept a ping pong ball off the bounce. While I doubt it will be able to return the ball reliably, it could be used for beer-pong to defend your cups from a bounce shot.

The high-level idea is that something like Reinforcement-learning / openAI trained on a physics simulator should then be able to learn how to inctercept the ball, then be applied to the drone IRL. Right now I'm stuck on the hardware hacks: using an arudino to input control commands into a the hand- held controller, and using a mirror on the table to get a 3d position on the drone/ball.

Reply if you're interested, have ideas.

<comment><USER37> Cool!

How does it hold the paddle? I imagine a simple string on a winch might be sufficient to create a pendulum effect, so the drone can move side to side to swing the paddle, or reel in the winch to change height.

</comment></comment><comment><USER38> I've been making little speakers out of old suitcases and boxes. Similar to what www.theboomcase.com does but not quite as fancy/powerful. I'm not trying to sell them but its fun to give them to friends as gifts and its enjoyable to work on at our makerspace with the kids.

I like finding sale components on www.parts-express.com and amazon. You can get small amps for $10-20. I've made them with a rechargeable lead-acid battery. Next goal is to figure out how to get a bluetooth module in the mix (right now they just have an aux port). I'm admittedly bad at audio electronics but I'd like to figure out how to use more powerful amps with a battery.

Sorry, no pictures on me at the moment.

</comment><comment><USER39> I am working on programmable J.A.R.V.I.S.

Currently, it could help with stress reduction, recognizing heart illness or overtraining detection. It's also an "open" device. Open to communicate with, and open to create apps full of health information for anything that supports Bluetooth 4.0+. Soon, I'll extend Aidlab with simple A.I module and gesture recognition, so mobile phones or the smartwatches will not be mandatory.

Site: [http://www.aidlab.com](http://www.aidlab.com) (`For Developers` might be very interesting for YC community)

Blog: [https://medium.com/@Aidlab](https://medium.com/@Aidlab)

</comment><comment><USER40> I've put together illustrations for each habit I'd like to keep, and then printed them on archival paper. I also built a LED calendar to keep track of things and combined it all into a wall frame. I occasionally write project logs on Hackaday[1].

It's fun to work on and I've noticed I'm already keeping up on these habits since they are always on my mind when building. Also the sunk cost has an effect on me to want to get as much out of this project as I can.. even more incentive!

[1] - [https://hackaday.io/project/18304-21days-habit- tracker](https://hackaday.io/project/18304-21days-habit-tracker)

</comment><comment><USER41> Tickerstorm.io - An algo trading platform in Java (pretty early still).

Difference from other platforms I've found: integrated machine learning phase which reuses the same data pipelines used by the algo when backtesting or trading live. Trying to reuse as many open source frameworks as possible to reduce the amount of new things a user has to learn. Based on Apache Storm, H2O machine learning, guava, Spring Framework etc. Not HF focused.

Most other platforms start off with you coding up your rules and allow you to back test those assumptions. However, this platform also incorporates the discovery phase of these rules rather than just assume you already have a set of rules.

</comment><comment><USER42> I recently made a tiny laser turret that's controlled by a video game controller. [https://www.youtube.com/watch?v=wlMuXKNZ748](https://www.youtube.com/watch?v=wlMuXKNZ748)

</comment><comment><USER43> I'm building a USB-connected OPL3 synthesizer. I'm using an Arduino Nano as a command processor, so that the host computer sends register change commands, and the Arduino manipulates its output pins accordingly to actually send the data to the hardware.

When I've got that working, I'll make some modifications to Dosbox, to make it pass through Adlib/Adlib Gold commands over serial to the device.

</comment><comment><USER44> Minimum Viable Synth. [https://github.com/kbob/MinimumViableSynth](https://github.com/kbob/MinimumViableSynth)

Today's progress was (a) receiving my SMD rework station from Amazon, (b) continuing to wait for OSH Park to send PCBs, (c) writing graphics primitives for the LCD display (which I can't see until I make the PCBs).

</comment><comment><USER45> Using a BeagleBone Black to read current sensors and send MQTT messages whenever an appliance (washer/dryer) is turned on/off.

<comment><USER22> I did something similar a couple years back except thermally by monitoring the dryer exhaust temp and ran into a problem where apparently "permanent press" means cold air for the last 10-15 minutes. Ok then that meant a timer initiating when the temp drops below whatever. I would imagine this will show up in your current monitoring where the heating elements turn off but the tub keeps spinning. Of course you may be monitoring a gas dryer LOL. Good luck it'll be fun.

</comment></comment><comment><USER46> I have been working on my Anybar implementation on real hardware, so it works on everything and I don't have to worry about any particular DE or OS:

[http://www.tnhh.net/mobile/posts/led-strip-for-your- computer...](http://www.tnhh.net/mobile/posts/led-strip-for-your- computer.html)

Makes a good swag on my desk, too.

</comment><comment><USER47> I've got one of those IKEA Dioder strips, and I've got it hooked up to a RasPi. There's a node library (of course) that lets you set it to any RGB color and even supports transitions.

Next step would be to make it flash when messages come in - different color for Facebook Messenger, WhatsApp, etc. - and having it integrate with the Philips Hue and Alexa.

</comment><comment><USER48> I built a 5-octave, 31-note-per-octave just intonation keyboard with pressure sensitive keys.

I've been working on putting together a thorough writeup, but for now there's just this video which I uploaded today:

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

</comment><comment><USER49> A ultrasound imaging dev kit for academics, teachers, researchers, and hackers : [https://kelu124.gitbooks.io/echomods/content/](https://kelu124.gitbooks.io/echomods/content/)

</comment><comment><USER50> Just recently added an ultrasonic presence sensor to my computer. [http://www.michevan.id.au/content/are-you- there/](http://www.michevan.id.au/content/are-you-there/)

</comment><comment><USER51> I'm trying to build a camera that uses the sensors on your phone to help you take the perfect picture. Your mobile phone knows so much about it's environment, yet most photography apps only take into account what the lens sees.

</comment><comment><USER52> A Flying Car. Anyone with CAD, CFD, aerodynamics skills wanna help?

<comment><USER53> me and my friend are working on something similar. We prefer to call it a drone though :$

My friend was looking into the material strength and feasibility while I was looking into the software.

We intend to use a 3d printer to build a small scale model and progressively keep making it bigger.

We would love to collaborate if that's ok with you.

Based in Canada (Toronto) and we put ~10 hrs/week max on this project.

<comment><USER54> The only person I ever saw get a human off the ground was this guy [https://www.youtube.com/watch?v=soxxPyaAT1k](https://www.youtube.com/watch?v=soxxPyaAT1k) and several build vids. He would have really benefited with some fly by wire help

<comment><USER53> that + [0] + [1] inspired us to get started...

[0] - [https://www.youtube.com/watch?v=0Yn2uyQJ1jc](https://www.youtube.com/watch?v=0Yn2uyQJ1jc)

[1] - [https://www.youtube.com/watch?v=PAdCt6qgj9k](https://www.youtube.com/watch?v=PAdCt6qgj9k)

<comment><USER52> Terrafugia is awesome. They have tremendous respect from me.

But I dislike any type of folding wings. They will need to make a massively strong hinge/joint for this type of machine since the entire car hangs off that hinge. This makes is heavy, inefficient, painful to maintain, vulnerable in fender benders, etc, etc.

</comment></comment></comment></comment></comment><comment> mchaves-br I learned some FPGA on my graduate course, while my mummy do my lunch I try to create an ADC to create a radar so I can jack off without my mummy catch me

</comment><comment><USER55> An AOA (i.e. Angle Of Attack) indicator based on GPS and accelerometer data. Arduino-mounted.

</comment><comment><USER56> I built a barn-door electric drive astrophotography rig for long exposure star photos.

</comment><comment><USER57> A completely numeric orrery for lack of a better term.</comment>


Apocalyptic Claims About Climate Change Are Wrong - <AUTHOR> https://www.forbes.com/sites/michaelshellenberger/2019/11/25/why-everything-they-say-about-climate-change-is-wrong/ <comment><USER2> There is a lot of money to be made going around reassuring people that the greatest existential threat of our time is no big deal.

When the hundreds of millions of refugees flood across borders driving governments to fascism, and those fascist governments do what they do and trigger global thermonuclear war, these same individuals will insist none of it was their, or the fascists', fault. If money still means anything they will be well-paid for that, too.

<comment><USER3> When you start going down the road of affected things, and then affected- affected things, and then affected-affected-affected things, you leave your case more vulnerable to alternative explanations (and thus solutions) with each step along the way.

Climate change -> population migration -> fascism -> nuclear war is quite a severe set of steps, and if this is truly the scenario we're worried about, then climate change is probably the most difficult step to correct. We'd likely have a much easier time trying to control migration or fascism or nuclear war. And there's a decent chance something will naturally interfere with these set of steps such that it doesn't occur.

Additionally, it seems to me that nuclear war can derive from a number of different sequences, and climate change is probably not the most immediate one.

<comment><USER2> I.e., nothing causes anything, doing anything has no effect. The song is old.

<comment><USER3> Or rather, history is not a simple straight line for you to trace out and predict as your political needs require.

We can play the same game with other sequences as well, and its still not that convincing

Video games -> de-sympathizing -> murderers -> high crime rate

Poor -> Uneducated -> Republican -> Trump

religious -> muslim -> jihadi

religious -> anti-science -> ludite -> Unabomber(s)

DnD -> Anti-Christian -> Anti-good -> satanists

Just because you drew a path doesn't make it convincing.

I.e., Something could cause something, which could cause other things, so they definitely do cause it, so stopping something stops everything. The song is old.

</comment></comment></comment></comment><comment><USER4> From the article: "First, no credible scientific body has ever said climate change threatens the collapse of civilization much less the extinction of the human species."

They say millions in the US will be displaced due to climate change in the coming decades. And yet, here we are in CA already displacing millions just from this self inflicted housing crisis.

<comment><USER5> That's a leitmotif in the article, and I think it's a good cautionary note. We need to tackle climate change, but we can't stop work on other problems, mistakenly thinking they'll be solved automatically by fixing climate change.

</comment></comment><comment><USER6> It's about time people start being more sensible on this topic. This was becoming bordeline stupid, with pretty much everything « caused by climate change ». i wonder what the next victim of media insanity will be..

</comment><comment><USER7> The tipping points are real, cataclysmic and not mentioned here. Read about the clathrate gun and the methane coming out of the tundra, never mind the huge fires in the boreal forests this year. The IPCC estimates are famously conservative and the trend figures all indicate the most aggressive scenarios or worse are likely. Anyone who suggests the world will end in 20 years is wrong, but the impacts will be massive on longer timescales. Minimizing the risks in this way is so deeply frightening.

</comment><comment><USER8> This Shellenberg guy has a really weird schtick. I can't figure out if he's just insane or a member of some strange cult.

A few juxtapositions of this current column against his previous columns:

He doesn't want people to say that climate change will make Koalas extinct, but he himself thinks wind turbines will make several species extinct.

He thinks it makes sense to burn coal in India because it's cheap, but he attacks renewables, which are cheaper than running existing coal in some regions, because they will "lock in" fossil fuel usage which is apparently a bad thing when they do it.

He relies on the IPCC as the last word on whether climate change will have catastrophic impacts, but also rails against it for it's anti-nuclear bias. Are we allowed to question the IPCC or not?

He wants everyone to be reasonable and sensible but think most environmentalist are csecret communists who want to intionally made people poorer?

<comment><USER9> Apart from your final sentence, which is just weird, I don't see these as contradictions. Seldom does anyone agree 100% with someone else (mathematicians might be an exception), so one could reasonably consider the IPCC to be reliable on some issues and not on others. But that's probably not even what's' happening; the author might (for all I know) think the IPCC is too far on the side of exaggerating the climate change problem (and ignoring the nuclear solution), but still use them as evidence that the climate feature is not as bad as some claim. And the idea that coal is a good idea in India (a relatively impoverished country) and bad in "some regions" (presumably wealthy countries, you don't say) seems entire non-contradictory to me.

"Insane" or "strange cult"\--oh, stuff and nonsense. You need to come back to reality.

</comment></comment><comment><AUTHOR> I withs the title was better, but I wasn't sure what to change it to.

It's mostly just debunking hyperbole around climate change.

</comment><comment><USER10> but still ... i would rather live in a world with less pollution ...</comment>


Show HN: Quickly generate an invoice PDF for a single product/service - <AUTHOR> https://lazy.invoice.workers.dev/?hn <comment><USER2> Thanks for sharing. I tried it a bit.

Yen mark is in sample but generated pdf shows backslash.

All Japanese text goes gibberish but that is probably beyond your specification.</comment>


Siempo's new app will break your smartphone addiction - <AUTHOR> https://techcrunch.com/2018/05/19/siempos-new-app-will-break-your-smartphone-addiction/ <comment><USER2> imo these apps are completely unnecessary. all i needed to do was leave my phone on do-not-disturb mode at all times. this way, i don't have notifications and vibrations constantly nagging me, and i only check my phone during natural breaks in my activities

give it a try

<comment><USER3> That's where it's at.

The constant stream of notifications does not distinguish well what's important and too much of it ends up in the Important/Urgent quadrant.

                    Important | Urgent
                    </comment></comment><comment></comment><comment></comment><comment>
                              |
        Important             |
                              |
                    </comment><comment></comment><comment></comment><comment>
                              |
        Urgent                |
                              |

I hope we'll start seeing more app- and os-level tools to sort out notifications into the correct quadrant. _This_ is where I'd welcome AI-based solutions. Gmail already offers me to unsubscribe from un-opened newsletters. Can't wait for a _She_ -like AI-assistant who would take on the drudgery of my inbox.

Such changes of course would be counter productive to the business model of many social apps which use intermittent rewards to create easy to exploit addictive behaviors allowing them to monetize on the unregulated resource of human attention. This includes establishing addiction in children, as a business model.

Attention is one of the most valuable assets human beings have. Focused attention + time are two of the pillars of any achievement and becoming. Robbing humanity of its power to become and achieve is not a healthy or sustainable source of profit.

<comment><USER4> I suspect Android is pushing more and more in that direction. I have not seen it in the announcements but one of the features I sea on the P beta is that when I dismiss a notification, the OS might ask me : 'you often display these notification, should I continue displaying them ?'

The groundwork is here with the channel API anyway.

Apps can declare as many channels as they want in order to post notifications there.

For exemple a music app will have the music channel (duh) and maybe a push discovery one.

The developper sets whatever property they want for these channels, but the users can override them. You can for example change the priority, sound or even completely hide them.

<comment><USER3> The thing is, not all content in a channel is created equal, so maybe one day we'll see a more granular approach.

But a more granular approach means more complex configuration.

Instagram should notify me about my fiancee's feed. FB messenger should notify me when I get a message from my company's page or one containing a family emergency. When I leave the office priorities would swap.

I should be able to easily schedule office hours, and notify people when I'd be available, similar to some of the features related to driving right now.

And, a powerful AI will read my mind and tweak the settings for me ;)

<comment><USER4> the API is also there for that :)

A dev can dynamically create channels.

Communication apps is the best application indeed, some of them (for example TelegramX) already leverage this by creating one channel for each of your contacts.

So my gf has an 'interrupts do not disturb' rule while my noisy friend on a time zone can't make my phone ping.

Now it is up to devs to leverage this and implement this in all the apps.

If it starts to become common enough, it looks like an AI could classify these signals based on how you interact with them.

</comment></comment></comment></comment><comment><USER5> RIP to anyone who clicked that link without ad block.

The app is a cool concept but I don't see it ever taking off. They broadly assume that people want to be distanced from their phones, which I'm sure most don't. There is nothing wrong with enjoying technology. Yes I check my phone at last once every few minutes when I'm at home, does that made me an "addict"? I'm not checking social media, I'm just browsing through the things I have installed to pass the time or have some laughs. Add on the fact that this is a paid app once it releases, who is actually going to pay for an app to inconvenience them? Some of the features are noble, such as forcefully blocking notifications until user specified times, and putting a more human catered UI for apps in. I applaud the effort, but I just can't see this taking off and becoming a best seller. Sure many people will pay for it, but it won't reach as many people as they are hoping.

EDIT: Adding on some more thoughts There are absolutely people who have unhealthy addictions to phones. I have a nephew who is staring at his phone screen nearly every waking moment. Every minute he doesn't have a phone in his hands he is whining. That is a new generation of smartphone addiction that I don't think most current adults have. Do you think these type of people want to forcefully have that addiction helped? Do you think they'd actually pay money to inconvenience themselves?

I agree with whoever said that app notifications need to be catered to. It might not work well with generic settings. Allow all and deny all for apps isn't doing much. I agree with the other fellow who also chimed in about smartphone addiction really not being a newsworthy topic. It's not something that can really be fixed at large. Even getting a small number of individuals to break their truly unhealthy smartphone addiction seems near impossible.

<comment><USER6> >Yes I check my phone at last once every few minutes when I'm at home, does that made me an "addict"?

I'd say undoubtedly so.

"Addiction is a brain disorder characterized by compulsive engagement in rewarding stimuli despite adverse consequences."

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

The adverse consequences is debatable but it is very likely we are all missing out on experiences and losing health by checking our phones every few minutes for those hits of neurotransmitters.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5076301/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5076301/)

"Cell-Phone Addiction: A Review"

<comment><USER5> What you described is precisely what's not happening though. In that there are no consequences to my frequent phone checking. If I'm playing a game and waiting for a match to start for example, it's not affecting me negatively in any way to just open youtube and watch a quick video. That's one of my points here; in that enjoying smartphones and being addicted to them gets muddled.

<comment><USER7> It's not affecting in ways that you notice right now, but we don't really know the true effects of never letting your brain be bored.

There is some evidence that boredom is good for you as explained in this post: [http://www.bbc.com/capital/story/20170719-how-moments-of- bor...](http://www.bbc.com/capital/story/20170719-how-moments-of-boredom-help- us-achieve-more)

<comment><USER8> Not to mention the people who 'have' to check while say operating machinery. Also, tallied up the time spent checking / browsing the phone or devices which could be used either for rest or learning a new skill, or even just being bored as you suggest.

</comment></comment></comment></comment></comment><comment><USER9> "To help you understand your current phone habits, Siempo needs permission to store information on this device. We do not read your private files or collect information about files on your device."

No option to opt-out

<comment><AUTHOR> Andrew from Siempo here - with optimizations in an upcoming release we will no longer need to ask for this permission.

Apologies for the inconvenience! We are committed to respecting user's privacy and are currently working with The Center of Humane Tech community to improve our privacy policy word by word, and make the changes necessary for GDPR.

<comment><USER10> You've got two days.

<comment><USER11> Neat, bro.

<comment><USER12> Not sure if you know, but GDPR deadline actually is May 25.

[https://www.techrepublic.com/article/gdpr-compliance- deadlin...](https://www.techrepublic.com/article/gdpr-compliance-deadline-is- approaching-10-things-to-do-right-away/)

</comment></comment></comment></comment></comment><comment><USER13> I think the per-app distinction of notifications is too coarse.

I want an app that allows me to train it on the notifications I receive, regardless of what app they come from. For instance, if I get a message from a random Facebook group that I find not very interesting, I want to be able to indicate that. Conversely, if I get a Facebook message that is urgent, then I want to indicate that too.

Please don't ask me upfront whether I want to enable/disable all Facebook messages, because I can't possibly answer that question now.

</comment><comment><USER14> This is pretty cool. Some feedback:

1\. Lock screen functionality would be good. It's sort of jarring to go back and forth between this (pleasant, mellow) and my normal lock screen (looks just like my normal phone).

2\. It'd be nice to be able to resize the custom background images.

3\. Not sure I like the distinction between "tools" and "apps", especially because I try to view all my apps as tools. It'd be nice to be able to add a custom tool (I wanted to add Audible for example) that would just be on the one page.

<comment><AUTHOR> Thanks for this feedback! Feel free to pass along other thoughts or suggestions to firstname.lastname@example.com

1\. We are exploring possibilities for the lock screen. Any ideas?

2\. Absolutely! We plan on offering more formatting options in upcoming releases.

3\. On our roadmap :)

</comment></comment><comment><USER15> I've been using this as my launcher for the last few weeks, it's actually pretty good at what it advertises to do. This mixed with a blocking app, greyscale and the Messenger Lite have made my device a semi-smart. The last page of the launcher randomizes everytime you swipe over to it so that's super handy. Notifs every 20 minutes has literally changed how I use my device allowing me to balance group chats vs constant attachment to my phone.

Devs: Please, please, please add some theming support it's ugly as sin, maybe regex style controls over which notifs get through on a per-app basis.

<comment><AUTHOR> Thanks for sharing this feedback! Check out today's update: we now offer a dark theme and ability to set custom wallpaper :)

We also let you select apps that may interrupt you during Tempo (Settings > Control notifications). We need to do a better job of making users aware of this.

More customizations to come - feel free to send over any suggestions to email@example.com

<comment><USER15> You're the man, man! Keep up the great work :)

</comment></comment></comment><comment><USER16> Currently, I use the Moment App on the iOS to keep track of how much time I spend on my phone and it has been immensely useful. Though it only captures my usage and can't actively help me reduce my smartphone usage.

I love the ability to batch up the notifications. In my ideal world, I would get notifications at 8AM, 12pm, 5pm and 9pm. And that's all.

I am jealous of the Android platform that it is possible to create an app like Siempo. I don't think iOS has an API to create a comparable experience.

I wonder what plans do Siempo team have for iOS.

<comment><USER17> > I love the ability to batch up the notifications. In my ideal world, I would > get notifications at 8AM, 12pm, 5pm and 9pm. And that's all.

Couldn't you do this manually by silencing your phone except for alarms, and then setting vibrate-only alarms at those times?

Alarm goes off, you check your phone and deal with any notifications you have so far, and then you go back to ignoring it.

<comment><USER18> For me, this would functionally be no different than just deciding I wasn't going to check.

Alarms would make sense if I had trouble remembering to check if I didn't check constantly, but the problem is the compulsion to thoughtlessly reach for my phone to check for notifications every few minutes. If I could batch up notifications therefore making the act of grabbing my phone and looking at it pointless, that seems like it would have a real impact.

</comment></comment></comment><comment><USER19> Is smartphone addiction really a thing that needs this constant coverage? I use my phone quite often but I've never felt controlled by it or like I need it. Maybe people should just delete the apps that are causing problems, instead of downloading another app to manage it. Is this the smartphone equivalent of safe-injection sites?

<comment><USER20> >Is smartphone addiction really a thing that needs this constant coverage? I use my phone quite often but I've never felt controlled by it or like I need it.

An alcoholic would say the same exact thing. :-) Just sayin!

</comment></comment><comment><USER21> You can do a lot of this yourself. Put your apps in folders, leave your home screen mostly empty, turn off notifications. Don't even install apps like twitter or facebook, you have to use the browser if you want to see those sites. The phone is still pretty tempting though when there is downtime.

</comment><comment><USER22> It's actually quite easy to "break" your addiction to smartphones:

Don't use them in the first place.

<comment><USER23> That comment is even less helpful than saying "It's actually quite easy to break your addiction to alchohol - just don't drink".

The reason it's even less helpful is that, unlike alcohol, smartphones provide useful functionality in day to day life.

<comment><USER22> _Smartphones provide useful functionality in day to day life._

Do they now?</comment></comment></comment>


Finding Domain Experts with Slack - <AUTHOR> https://landshark.io/2020/01/04/find-experts-with-slack.html <comment><AUTHOR> Author here. I'm interested to hear from anyone with an opinion on this idea. Is this something you'd find useful?</comment>


10 Must Have Tools for Developing Smart, Beautiful Websites (slides) - <AUTHOR> http://cloudpoint.co/pres

<comment><USER2> What is this meant to be? All I see is a link to a page displaying a QR code. What is wrong with just clicking through to a page with the content on it these days?

<comment><AUTHOR> It's in a presentation format. Use your left and right arrow keys to navigate it. A flat list would have been better, but I like the style. (I did not create this.)</comment></comment>