Ask HN: Any Special Projects Over the Holidays? - <AUTHOR>

I just finished all of my work for this semester. Now I am free to do whatever I want until about the middle of January. My plan is to learn more about Objective-C. Since a lot of us are college students, I was wondering: What projects are you working on over the break? <comment><USER2> I'm a grad student. I'm working on a way to turn papers written in latex into a form that's readable online, because having to print everything is so 1990s. I start from the output of latex2html and go from there. For instance, if you hover over a citation, I pop up a bubble showing you links to author homepages, the abstract of the cited paper, download links, etc., even though the latex bibliography didn't specify any of those.

Edit: I do this by doing a full-text search on the citeseer database, which is a couple gigs uncompressed. Right now I'm grappling with the xapian library: <http://www.rkblog.rk.edu.pl/w/p/xapian-python/> If someone knows an easier/better way to do this, I'd love to hear. Thanks.

<comment><USER3> Why not just convert it to a PDF?

<http://www.msi.umn.edu/software/tex/help/pdf.html>

<comment><USER4> Being able to hover the mouse over a citation and get a hyperlink to the referenced paper, abstract, and homepage would be a huge time saver when doing research. PDF can only give the title of the paper and (if you're lucky) where to find it.

</comment></comment></comment><comment><USER5> I have a 5000-line, awfully written and horribly slow (but working!) patch from an offshore team that implements the rather complicated MBAFF features of H.264 in the open source x264 encoder.

I'm going to take it and make it committable.

Yes, I'm risking my sanity.

</comment><comment><USER6> I'm a full-time small project maniac. I've been working by myself for over a year now, my model being to work on a lot of small things for a few days, trying if anything catches on. Worked great so far. I've done about 40 different things, some released and abandoned, some abandoned due to lack of interest, but a few I've released and they've succeeded well enough to cover the time spent on all the others. Christmas will be the only time I'm NOT working on some small project, but I'm sure I can't avoid thinking about them.

<comment><USER7> I'd like to learn more about how you're making this work. I'd like to take the same approach, but am worried about sustainability. I'd appreciate it if you could get in touch. My profile has my email.

</comment></comment><comment><USER8> I'm not a college student, but I have been taking advantage of a little bit of a slowdown during the holidays (sales always drop off a bit for a couple of weeks).

I'm working on a chiptune version of Abbey Road, in order to teach myself a few new trackers that I've never used before (the last trackers I used heavily were OctaMED and ProTracker on the Amiga). I'm mainly tinkering with Renoise, which is an awesome multi-platform modern tracker with VST/LADSPA support. But I'm also playing with a cool sounding SID emulating tracker called Goattracker, and NitroTracker for the Nintendo DS. I probably won't finish all of Abbey Road in two weeks or spare time, since it's quite elaborate, and I'm only about half of the way through one song two days in, but I'm sure I can make three or four nice tracks. And I'll probably get faster as I get more comfortable with the tools.

<comment><USER9> I can whole heartedly recommend renoise... very solidly built and it has great sound quality... can also work inside other hosts.. cubase etc..

</comment></comment><comment><USER10> Making a local politician tracker for Chicago.

Basically a Chicago clone of this:

<http://prototype.nytimes.com/represent/>

<comment><USER10> Also, we're hoping to open source it and release as a Django project for others to hack on. Should be cool.

Type in your address.

We figure out the coordinates.

We place those coordinates in all their relevant political "zones" (neighborhood, district, ward etc.) and give you maps of what they look like, just like the Times.

We show you everyone representing you in those zones with links to the homepage, wikipedia page, twitter results, flickr results, youtube results etc

We show you a newsfeed of their appearances in mainstream press.

Should be cool.

<comment><USER11> Very cool idea. Do you have a URL for it yet? I'd like to bookmark it to check back in the future... :)

<comment><USER10> Follow me on twitter <http://twitter.com/bflora> I'll announce on there.

Looks like we're going to build it at the eventual live URL so I'd rather not give that out just yet. My buddy's doing all the heavy lifting on this one. I'm just tracking down shape files and representative listings and so forth.

<comment><USER12> You might be interested in a UK site <http://www.theyworkforyou.com/>

<comment><USER10> I'm a big fan of what they've done. Those MySociety People are really making some neat stuff.

</comment></comment></comment></comment></comment></comment><comment><USER13> My goal over the holidays is to become much better with my editor (emacs). I am also trying to contribute a bit to open source and release some Merb and DataMapper code onto github.

</comment><comment><USER14> I've got updated versions for all of my products (<http://www.wonderwarp.com>) in the works.

I've got an incremental update to ShoveBox in testing now, but I'm spending most of my resources finalizing the iPhone version of the app and getting it to sync properly with the desktop app. That will probably be 1.8 or 2.0.

I'm not sure if I should charge for the iPhone app or not though. I'm worried Windows people will accidentally download it and get pissed. Hmm. But none of my direct competitors (except for maybe Evernote) have this feature, so I'll be psyched to have it out.

<comment><USER15> Cool! I love shovebox. iPhone sync would be rad

<comment><USER14> Thanks!

If you're interested in beta testing, you can join here: <http://www.wonderwarp.com/shovebox/beta>

<comment><USER16> Cool, just found ShoveBox and it looks awesome! Can't afford to buy a licence right now, so I may as well help you test it! :)

</comment></comment></comment></comment><comment><USER17> 1) I promised someone I'd build him a remote-controlled swivel for a pole mounted movie camera and I have yet to finish it, that's project #1. Gonna be spending a couple hours in the machine shop! 2) Hopefully finish up the software for my wireless temperature monitor, build a page for it and start getting some sales :-)

</comment><comment><USER18> Continung work on 'perf' my top replacement:

* Load average based on the amount of CPU cores in the machine, so that 100% is busy anywhere you run it.

* Figures for memory unused by apps, more apparent usage of page cache

* Figures for IO alas IOtop

* IO nicing

* Not doing silly thing like opening and closing a file handle every loop.

* Zebra striping, other niceties.

Also making a working, simple, stable dock for Linux - a GNOME panel applet to replace the window list.

</comment><comment><USER19> A compiler that takes Sed programs and produces Parrot interpreter code. It was a project in a college Compilers class that I didn't take seriously enough, so I'm revisiting it to see if I've actually grown better at this programming thing since I've graduated.

</comment><comment><USER20> I'm working on a way to play the card game Mao online, except that, as Mao is a game that lets you make your own rules, in order to be capable of playing a substantial subset, it'll have to be capable of playing any card game.

(Yes, I've thought about turning this into a startup.)

And that reminds me, I really should be working on that right now, if I'm going to have time to do my college apps...

</comment><comment><USER21> Writing my novel!

Okay, so I guess I'm not a real hacker.

<comment><USER22> Oh please :)

I wrote a novel during nanowrimo and ignored it since then, I may use my free time to edit and maybe publish copies for friends/family.

but mostly, I'm going to knit, work on some iPhone and Mac app ideas, and generally just have fun.

</comment></comment><comment><USER23> Hoping to get a bit further with the robotic xylophone I'm building: <http://prehacked.com/tag/xylophone>

</comment><comment><USER24> Finish XMPP/Jabber support in Mibbit.

It's a ridiculously overcomplicated horrible format designed by committee :( Seems like a good job to pick though...

<comment><USER25> I find your site very useful. If you'd like some SEO advice shoot me an IM sometime (AIM: StanleyShilov).

<comment><USER24> Your comment scores 98% on my spam detector.

<comment><USER25> Haha, I can see why you would say that. What I was trying to convey was that from an SEO standpoint, your site fails miserably. You need to change your title tags to be more keyword specific, and move your wiki to a subdirectory instead of a subdomain (same goes for the blog).

<comment><USER24> Fails miserably??

#1 on google for 'mibbit' (obviously)

#2 on google for 'web irc', 'online irc client', 'web irc client', 'web based irc', 'irc web', 'irc web client', 'web based irc client', etc etc

#9 on google for 'irc client', (Only mirc and xchat beat it).

This is all without doing any SEO. Sure there are ways to improve it, but it's more important to improve it for users, than for search engines.

Glad you like it though :)

<comment><USER25> SEO is not just about ranking for a handful of keywords, it's about ranking for the million other searches that aren't as popular.

Well, either way you're obviously against taking any advice so I won't waste any of my time trying to help you. Good luck with your service.

<comment><USER24> Sure, and I appreciate the advice, but it's not rocket science.

I already have <http://www.mibbit.com/networks/> (Work in progress) which is a complete browsable list of networks and channels, with topic info etc etc. As well as being hugely useful for users, it's obviously useful for ranking on searches. For example, if someone searches for "freenode", mibbit has some good results there.

A solid example: Search google for "freenode javascript". Mibbit is result number 3. I'm happy with that...

I repeat. SEO is not rocket science, it's simple best practices for end users.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> Trying to understand a reimplementation of a famous AI program from the 70s that I've had lying around for 9 years: <http://github.com/akkartik/am- utexas/tree/master>

And oh, learning prolog as I go.

</comment><comment><USER27> Eat turkey. Drink eggnog. Spend time with the family. Stay away from the computer and work.

</comment><comment><USER28> I'm going to be improving metapaw-dip: <http://www.metapaw.co.uk/projects/metapaw-dip/>

At the moment I'm working on automatically generating maps from a small base dataset, and shortly I'll start working on a Django based wrapper to host this for many people's use.

</comment><comment><USER29> My partner and I are going to remake <http://jobzor.com>. We were originally looking to make a job board and internship recruiter as a Facebook App, but it's just not our thing and there is enough competition in the market already for that.

Instead, since we both rely heavily on freelance work, we're positioning it as a directory of approved designer (with specific specialties), copywriter, and developer freelancers so clients looking for work or partners can find them easily.

Given my focus on delivering great designs within my focus-time of 24 hours, this should be a good help in finding clients, as well as any revenue we scrape together through the site if we choose to monetize it.

Any HN members interested in being listed?

<comment><USER29> In the next few days I'll also be releasing my personal project, <http://epictee.com> to connect great t-shirt companies with the media they deserve. I helped co-found <http://anticlothes.com> and while I was there, a major problem was getting coverage for the brand and for the owner.

I've noticed this is common for most tee labels, especially as they start out (no coincidence), and rather than be a salesman trying to move shirts, I'll be a salesman moving brand equity, which I'm much more comfortable with.

</comment></comment><comment><USER30> Going to take a nice week long break away from my home in Austin. For the past 4 months I've been cooped up in my place trying to get everything put together with this mobile app company. It's been many late nights and 7 day work weeks... time to recharge.

Spiked egg-nog... here I come!

</comment><comment><USER31> I'll finishing my sinatra/sparrow web app that ensures a set amount of EC2 instances are up and running at all times by automatically running other instances among failure. I'd like to launch early next year, <http://www.ec2mon.com>

</comment><comment><USER32> Thinking of hacking together a twitter archiver, for those who want to keep a record of their tweets past the limit Twitter itself currently offers. Will allow export in csv etc., and possibly printing off your tweets as a diary- style book, if there's enough interest.

<comment><USER31> Interesting idea; Wasn't aware there was a limit...

<comment><USER32> The web interface only allows you to go back 10 pages (* 20 tweets), and the API only allows 10 * 200. So if you want to keep your tweets, start archiving!

</comment></comment></comment><comment><USER33> Although I'm not really on holiday I seem to have taken on the reinvigoration of the customwars project. It's a java 2d tile war game like chess but with nice animations. It's over at customwars.com if anyone would liek to help out over their time off.

</comment><comment><USER34> Flock simulator in either ObjC, some form of lisp/scheme, or Erlang. Haven't decided yet but Erlang really makes me happy.

I'll probably start up another company January 2. I have a dream about educating the world's future smart people.

<comment><AUTHOR> Explain your "educating the world's future smart people." I have thought about writing a free online textbook for some branch of undergrad mathematics.

<comment><USER34> I'm planning on starting a "chain" of either charter or cost-free/cost-very- little schools. These schools would be high schools, but they'd be for geeks/nerds/people who actually want to learn.

Needless to say, I'm still in the very early stages of this idea.

About your textbook, what branch would you _like_ to write about?

<comment><AUTHOR> I have always been fascinated by the application of both ordinary differential equations and partial differential equations. The mathematical ideas behind the methods involved in reaching solutions are some of the most beautiful ideas in mathematics. I also find the mathematics of game theory and finance quite beautiful. Any one of these topics are more than enough to fill several textbooks.

</comment></comment></comment></comment><comment><USER35> Working on some super awesome blog software. Just like, uh, everyone else in the world.

<comment><USER16> Me too — I try to rewrite my own blogging platform/CMS every year or so, wrapping up all the design elements and programming quirks I've learnt over the past year, into a cool little package — fast, simple, and fun to use. :)

</comment></comment><comment><USER36> Writing a Java bytecode emitter for my company's language (currently called GScript, hopefully open-sourced under a different name some time in the not- too-distant future). It's currently executed off the parsed AST.

</comment><comment><USER37> Research into web crawlers for a startup idea, some consulting work, and bartending classes.

Also writing up an article about the soda machine card reader I built, as well as some other blog posts.

</comment><comment><USER38> Nothing spectacular but I'm going to try my first go at using PyGTK as I finish up a very simple command-line ftp uploader. The api is almost done, then I'll just wrap the GUI around it. I've only worked on it for a few hours but have learned a lot about Python in terms of file/directory scanning, ftp, and threading.

Apart from that, I'm just taking the time to get a simple portfolio/resume site up. Working full time during the year makes it hard to get time for these things.

</comment><comment><USER39> Writing a simple Missile Command clone with separate game logic and graphics modules; after using simple 2D graphics to test the gameplay, I'm writing a 3D artillery-style graphic representation. The whole thing is mostly an exercise to learn the Actionscript 3D library Papervision3D better -- there's a ton of work there in the future as the Flash Player keeps improving its core 3D transformations.

</comment><comment><USER40> I created Ruby Advent (<http://advent2008.hackruby.com>), which was inspired by 24ways(httpL//24ways.org). It was actually turned out to be a great experience. I got the opportunity to connect with many renowned Ruby Hackers and learn bunch of awesome stuff myself. Also, I sincerely hope other Rubyists too enjoyed the series.

</comment><comment><USER41> I've been playing through the games I haven't had time to, and also learning how to write apps for my Mac and by extension for the iPhone. I've had a bunch of ideas for things I thought would be great for the iPhone, so I made a class next semester with a friend of mine and we're going to start a business. (And before someone says it, we checked and we own the code ^_^)

</comment><comment><USER42> I'm no longer in college, but my employer does give a lengthy winter break. I plan to finish some iPhone applications (hopefully providing some extra income), work on some music recording, read, and do a bit of volunteer work for Project GNU.

Basically, what I do on free evening/weekend hours, but I'll get to focus on it for longer blocks of time. :-)

</comment><comment><USER43> I'm gona finish <http://www.bestdealaz.com> soon, and then begin to expand portfolio at <http://www.madetokill.com> Also, have a nice web app {secret} me and my friend have been working on :)

</comment><comment><USER44> A Lisp library for the Twitter API. And then, use it for some reasonably small entertaining side project.

</comment><comment><USER45> We'll be releasing a new project to hacker news on Tuesday. It's perfectly timed for the holidays.

</comment><comment><USER46> Going to wedding parties! Looks like all of my friends are getting married nowadays.

Also beginning work on a new project that is essentially an online site editor like Weebly but for a very niche market. Still figuring out exactly how to do that though.

</comment><comment><USER47> I'm gonna work on my Jekyll-in-python project I started a few weeks ago: <http://github.com/mapleoin/pyblee/tree/master> . And while I'm at it, I'll also be improving my blogging.

</comment><comment><USER48> I'm working on a lightweight shell. It was originally an assignment for university, but I thought it was interesting to work on it.

I'm also trying to start a project with my Arduino, though I'm not sure what I'll create. Maybe a simple robot.

</comment><comment><USER49> I have a large project I am working on, and will be spending my entire summer on. However, over Christmas break I have a very small website which is basically a product specific blog. Hopefully I will make a little amazon affiliate money.

</comment><comment><USER50> For my last winter break, I'll be working on completely re-doing a web-based game I made. I'm thinking I might also work my way through a simple book on NLP (<http://www.nltk.org/book>).

</comment><comment><USER51> Working on finishing up two web applications and an iPhone app that compliments one of the web apps.

Also some updates to my current iPhone apps (<http://www.awaytalk.com>).

</comment><comment><USER52> Working more and more on my PHP framework, it's starting to get some traction as I will release 0.2 before new years. Check it out, <http://artisansystem.com>

</comment><comment><USER53> Brand-jacking: <http://twitter.com/clearlytired>

Exit strategy: get rid of crappy service without having to pay for the 'privilege' of doing so.

<comment><USER54> Send me an email (in profile)... I may be able to help.

</comment></comment><comment><USER55> Studying graduate-level texts on computer vision

... after re-learning 1st & 2nd year calculus

... after re-learning trigonometry

... after refreshing my memory on algebra & geometry

</comment><comment><USER56> SICP and learning calculus.

</comment><comment><USER57> I'm making a mod for Half-Life 2 with a friend. At this point we're both fooling around with the SDK to see what we can do, but I think we have a solid plan for a pretty good mod.

</comment><comment><USER58> Upgrading our webapp to the latest version of the symfony framework, then spinning off the open source version to attack another vertical. Makes for interesting and exciting work.

</comment><comment><USER59> I'm not a student, but I do have most of a week off and I'll be working on a way to help diabetics better manage their disease (my wife is Type I and I'm pre-pre-Type II).

</comment><comment><USER60> I would like to really sink my teeth into OCaml or Haskell.

</comment><comment><USER61> Trying to do this <http://news.ycombinator.com/item?id=406705> ...any ideas welcome!

</comment><comment><USER62> Just graduated from college 2 weeks ago, working full-time on my iPhone gaming startup now. This last week has been the best in my life, I love startups!

</comment><comment><USER63> Python to C compiler.

<comment><USER18> Awesome. Anywhere I can follow your progress? What do you think the performance will be like vs psyco?

<comment><USER63> I will post a link to it on HN in sometime.

</comment></comment></comment><comment><USER64> Finishing my second app; boosting the marketing to improve conversion rates on my site (which are abysmal....)

</comment><comment><USER65> i graduated from undergrad last week so i'm just starting to devote more time to my startup for the last year or so. <http://skribit.com>

</comment><comment><USER66> Just playing around with iPhone development.

</comment><comment><USER67> Clearing out some of my bug list.

</comment><comment><USER68> refactoring the 9 year old PHP code i've been recently assigned to maintain at work

</comment><comment><USER69> Gonna read more Feynman and Popper.</comment>


H.I.V. Arrived in the U.S. Long Before 'Patient Zero' - <AUTHOR> http://www.nytimes.com/2016/10/27/health/hiv-patient-zero-genetic-analysis.html <comment><AUTHOR> "Relying on previous genetic research and African colonial records, Dr. Pépin showed that H.I.V. was carried from Kinshasa to Haiti in the 1960s — most likely by one of the thousands of Haitian civil servants recruited by the United Nations to work in the former Belgian Congo after colonial rule collapsed."</comment>


Plastic-eating bacteria discovered - <AUTHOR> http://www.theverge.com/2016/3/10/11194150/plastic-eating-baterium-pet <comment><USER2> Damn it, i lost a bet against a friend. My money was on fungi. Well, we get it everywhere, everyone eats it, and that which eats it, gets it.

Next bet: Involuntary Uplift of all species integrated into civilisation: Badgers, Foxes, Pidgeons. I give it 5 years, whos is raising 100 $ gentleman. Make the apocalypso a win-win situation. GO!</comment>


USA Asked Norway to Arrest Edward Snowden - <AUTHOR> http://www.nrk.no/fordypning/usa-asked-norway-to-arrest-edward-snowden-1.12521802

<comment><USER2> Relevant now because:

 _In a little over a week, Snowden is to be awarded the prestigious Bjørnson Prize[1] by the Bjørnstjerne Bjørnson Academy.

He receives the award for his disclosures of the threat to free speech constituted by the electronic surveillance that he has revealed.

Snowden is invited to Norway to receive the prize. But no one can give a clear answer on what will happen to him, should he land at Oslo Airport._

[1]: [http://blogg.bjornsonakademiet.no/uncategorized/a-prize- for-...](http://blogg.bjornsonakademiet.no/uncategorized/a-prize-for-edward- snowden-but-will-he-be-able-to-travel-to-norway/)

</comment><comment><USER3> The guy did grab a bunch of documents and flee the country. He may have been doing the right thing but I cannot find fault in US authorities trying to get him back in the immediate aftermath of the leak. It is not for law enforcement or junior diplomats to decide these matters. Someone running with documents is always to be stopped. Pardoning is a matter for the executive rather than agencies or the diplomatic corps.

<comment><USER4> He discovered evidence of unconstitutional (illegal) actions by those in government, with the potential to lead to an Orwellian society. He took on significant personal risk and made a huge sacrifice in order to inform the public of this government wrongdoing.

He fled because there is no chance of a fair trial. (You can Google the specifics, but he wouldn't have been able to present his case at trial -- not that he should be facing a trial in the first place, since he is a whistleblower, not a spy.)

He turned over the data to responsible journalists to make sure it was vetted properly and the public could be safely informed without jeopardizing national security.

He's a patriot and a hero. The fact that he is still living in Russia and being treated like a criminal by the U.S. government, instead of receiving a medal in the USA, is a strong indictment of our government and clear evidence of our ongoing loss of freedom.</comment></comment>


Connexion: Swagger-First Python REST Framework with Validation and OAuth - <AUTHOR> https://github.com/zalando/connexion <comment><AUTHOR> Example "pet store" application using Connexion: [https://github.com/hjacobs/connexion- example](https://github.com/hjacobs/connexion-example)

</comment><comment><USER2> This library makes it really easy to bootstrap a simple RESTful service with practically no effort. Really nice for prototyping your services.</comment>


Long-Term Consequences of Coronavirus - <AUTHOR> http://peterturchin.com/cliodynamica/long-term-consequences-of-coronavirus/ <comment><AUTHOR> For context, about the author:

> Peter Turchin is a Russian-American scientist, specializing in cultural > evolution and cliodynamics — mathematical modeling and statistical analysis > of the dynamics of historical societies.

> He is a professor at the University of Connecticut in the Department of > Ecology and Evolutionary Biology as well as in the Department of > Anthropology and in the Department of Mathematics.

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

\---

Introduction to his latest book, published 2017:

Ages of Discord: A Structural-Demographic Analysis of American Society

[http://peterturchin.com/ages-of-discord/](http://peterturchin.com/ages-of- discord/)</comment>


How a 19th Century Math Genius Taught Us the Best Way to Hold a Pizza Slice - <AUTHOR> http://www.wired.com/2014/09/curvature-and-strength-empzeal/?mbid=social_fb <comment><USER2> Current discussion: [https://news.ycombinator.com/item?id=8274529](https://news.ycombinator.com/item?id=8274529) (137 points, 19 hours ago, 31 comments).</comment>


How to Regulate Pornography - <AUTHOR> https://www.firstthings.com/article/2019/11/how-to-regulate-pornography <comment><USER2> Regulation is just code for Censorship. Neither sex, nor depictions of such, are a danger to anyone. Regressive ideologies are highlighted here as if they were acting for the benefit of anyone but themselves. What the literal fuck. This article is less factual, and more offensive than even the most vile porn.</comment>


Ask HN: Best Password Manager for SME/Startups? - <AUTHOR>

What secure password manager (e.g. LastPass, KeePassX, Password Genie) would HN readers recommend that incorporates the following features (non-free is fine):<p>-Centrally stored and synced password file<p>-Individual user passwords (fine-grained control a +)<p>-Master password<p>-Mobile support<p>-Auto-filling out forms in browser a + <comment><USER2> LastPass wins based on features (like sharing passwords with a set of employees) and devices/browsers supported, but it seriously lacks good usability & polish. Users in our company aren't keen on it (the word "hate" is already coming up a lot...), but I don't see better options yet.

KeePass via Dropbox (I've also used this setup) is less likely to fail randomly but is too complicated to set up for non-technical users -- the application is also fairly ugly and has bad usability.

I wish there were better options out there, but haven't found them yet. There's a promising option at mitro.co which for now is Chrome-only. The Chrome experience is far better than LastPass, but yeah, Chrome-only.

</comment><comment><USER3> When you say centrally stored, who do you want to store it? I use LastPass, and the LastPass company stores backups. I previously used KeePass but had to manage the backups myself (Dropbox in my case).</comment>


Emirates aims for high flyers with private Airbus A319 jet - <AUTHOR> http://www.cnn.com/2013/08/07/travel/emirates-executive-airbus-private-jet/index.html?sr=fb080713airbusjet4p

<comment><USER2> This stuff should not be legal. One flight, one (or a few) person using for himself more energy than poor people have access to in a lifetime.</comment>


Useful ORM for .Net implementing a full LINQ Provider - <AUTHOR> http://www.signumframework.com/

<comment><USER2> Seems interesting but where is the "why is this better than/different from LINQ to SQL" etc. FAQ section?

Also interesting that they are using StackOverflow as their support base.

</comment><comment><USER3> You right! I've started the page to do it <http://www.signumframework.com/FAQ.ashx> I'll finish this tonight.</comment>


Ask HN: Steve Jobs a product of nature or nurture? - <AUTHOR>

The most incredible thing that I find about Steve Jobs is his score in terms of building shit people not only want--but LOVE. He seemed to rarely get it wrong, at least in the past decade.
It often gets me wondering if his taste and sense of market demand was something he was born with OR something he mainly developed through the years.
I honestly don't know where I stand on this. Where does the rest of HN stand on this? <comment><USER2> I wonder if Jobs' main gift wasn't so much figuring out what people want/love (obviously everyone would love unicorn rainbows and time travel using their phone), but figuring out what was just beyond the possible at a given point in that direction, and then pushing his team until they achieved that "next leap."</comment>


Google CIO's IT advice: Let users pick their own hardware and software - <AUTHOR> http://www.zdnet.com/google-cios-it-advice-let-users-pick-their-own-hardware-and-software-7000005192/ <comment><USER2> This will never work. It reduces incentives for all mid- to upper-level IT managers. They can no longer revel in the pain they cause users, nor can they enjoy the feeling of tightly controlling everything.

Also, no more discreet rounds of Bikini Golf in the Bahamas with 20-something sales staff of large software vendors.

Like I said, this will never work.</comment>


Companies supporting SOPA: their web address, Twitter, contact email and phone - <AUTHOR> https://docs.google.com/spreadsheet/pub?key=0AmGJz_37ojoqdFZhYlBhN2hQOGRoN2R0ZGh3VDZlblE&output=html

<comment><USER2> OK, both Visa and MasterCard are on the list. What other choices do I have for generic electronic payments in the EU? Not that I was harboring any love for these companies at all.

Secondly, how does a company get on this list? I'd believe they have to put their money behind the lobbyists rooting for SOPA. Then, how does a company get removed from the list? Does the lobbyist give their money back? Off course they don't. So staying on the list it is.

</comment><comment><USER3> Most (all?) of the law firms that had been on the original list have been removed. I see you mark them as needing confirmation. Here's confirmation for Davis Wright Tremaine LLP:

<http://twitter.com/#!/DWTLaw/status/150019649130606592>

<comment><AUTHOR> > _I see you mark them as needing confirmation._

It is a crowdsourced list I found on Slashdot: [http://yro.slashdot.org/story/11/12/24/0035250/crowdsourced-...](http://yro.slashdot.org/story/11/12/24/0035250/crowdsourced- list-of-sopa-supporters) I didn't take part on compiling it.

I think all this info is public and available elsewhere, but people compiled it and put it together in a Google spreadsheet.

</comment></comment><comment><USER4> I was surprised to the Fraternal Order of Police, and other such police organizations on the list. What are they afraid of, that someone will clone a cop? Or are the supporting this bill because, hey, more laws means more cops for law enforcement, right?

<comment><USER5>
      You wouldn't steal a car
      you wouldn't steal a handbag
      you wouldn't steal a television,
      you wouldn't steal a movie.

Online piracy is a crime, m'cay?

<comment><USER6> If we made laws that protected the uniqueness of first names to artificially boost the name creating industry, stealing names would become a crime as well. Name theft in the sense of the law would be theft but it wouldn't be like stealing a car, because stealing a car would have negative repercussions even if it were legal.

Enforcing everyone has unique names might have a high enforcement cost, which is why it may not be worth cost to society. Likewise enforcing copyright for consumer use has become harder and harder as well and at some point it won't be worth it either. Enforcing property laws however is cheap because it's hard for everyone to mass-steal cars and protect their own property.

<comment><USER5> Apparently my sarcasm wasn't totally obvious. Well that's Poe's law for me I guess.

<comment><USER6> Oh sorry, at least we collectively will catch everybody.

</comment></comment></comment></comment></comment><comment><USER7> And at the bottom:

Xerox.

I find this to be ironic.

<comment><USER8> I laughed :) Maybe they want to be Gods? Now they have the power to destroy their creation for once.

</comment></comment><comment><USER9> Zippo? Weird.

<comment><USER10> Seems like a whole bunch of big name brands were told by the chamber of commerce that they were signing on to oppose the sale of counterfeit merchandise online. Which you know they aren't unless they're planning to SOPA shutdown eBay.

<comment><USER2> They will be more careful next time. Also, there are interests behind many of these. One rich group could spawn dozen of various "alliances" and "associations", just to hide behind diversity. The money flying here are billions, so how much does them cost to run 20 agencies each with 2 or 3 people employed?

</comment></comment></comment><comment><USER8> just when i wanted to get a new pair of Oakley's ;(

</comment><comment><USER11> I have not been convinced SOPA is a bad thing. I read the bill and all the chicken little posts around the web and even asked someone to show me the basis of their fear. I have never received any response beyond the chicken little screams of terror.

I admit I may be missing something. I've explained my point of view from what I've read. All I hear in response ranges from the whole internet will crash down upon our heads to every site in existence today will be taken down and sued to everybody's going to die cause they can't get their Canadian medicine.

Such fantastic psychotic episodes only lead to my cynicism.

<comment><USER12> Perhaps you've not read any of the well written posts about the bill. Here is a start:

<http://www.stanfordlawreview.org/online/dont-break-internet>

And not that it's a means to basis your entire belief on, but look at the people opposing this bill, and what they have to say:

[http://dq99alanzv66m.cloudfront.net/sopa/img/12-14-letter.pd...](http://dq99alanzv66m.cloudfront.net/sopa/img/12-14-letter.pdf)

<comment><USER13> The second paragraph of the stanfordlawreview.org link is pretty succinct:

"To begin with, the bills represent an unprecedented, legally sanctioned assault on the Internet's critical technical infrastructure. Based upon nothing more than an application by a federal prosecutor alleging that a foreign website is "dedicated to infringing activities," Protect IP authorizes courts to order all U.S. Internet service providers, domain name registries, domain name registrars, and operators of domain name servers—a category that includes hundreds of thousands of small and medium-sized businesses, colleges, universities, nonprofit organizations, and the like—to take steps to prevent the offending site's domain name from translating to the correct Internet protocol address. These orders can be issued even when the domains in question are located outside of the United States and registered in top-level domains (e.g., .fr, .de, or .jp) whose operators are themselves located outside the United States; indeed, some of the bills' remedial provisions are directed solely at such domains."</comment></comment></comment>


Typestates in Rust (2018) - <AUTHOR> https://yoric.github.io/post/rust-typestate/ <comment><USER2> When const generics are fully implemented (they are partially usable on nightly rust now) this will enable an even stronger version of this pattern, allowing you the full power of enums to represent the state.

      enum SenderState {
        ReadyToSendHello,
        HasSentHello,
        HasSentNumber,
        HasReceivedNumber
      }

      Sender<const S: SenderState> {
        ...
      }

      impl Sender<{SenderState::ReadyToSendHello}>{
        ...
      }

One can then give the individual states extra parameters:

      HasSentNumber {
        number: u32
      }

(Note that in this case that doesn't make much sense, the number that is sent is more associated data then an actual type parameter. There is no real difference, at the type level, between HasSentNumber { number: 3 } and HasSentNumber { number: 6 }, and the compiler generating two types for this would be unnecessary. It is only an example of the syntax.)

<comment><USER3> You can do session types already in stable Rust without const generics. Each "enum variant" can be its own separate type, and such types can only be instantiated by a method on the type representing the previous state, which also consumes that previous state.

We've used them in our Bulletproofs MPC (multi-party computation) where cryptographic requirement is not to replay the protocol from the mid-point. Since the user is supposed to perform these transitions within their application on top of network messages, such strongly-typed API guarantees that, if their program has compiled successfully, then:

1) Steps are performed in correct order. 2) The protocol cannot be replayed from the intermediate state.

We have wrote about it here: [https://medium.com/interstellar/bulletproofs- pre-release-fcb...](https://medium.com/interstellar/bulletproofs-pre-release- fcb1feb36d4b) \- scroll to "strongly-typed multiparty computation".

<comment><USER3> Here is updated link to the original article on MPC by Cathie Yun: [https://medium.com/@cathieyun/bulletproof-multi-party- comput...](https://medium.com/@cathieyun/bulletproof-multi-party-computation- in-rust-with-session-types-b3da6e928d5d)

</comment></comment></comment><comment><USER4> A good sign in a type system for me is that the types are accurately modeling behavior that I find in day to day code. To the point where moving back to a language that lacks this feature feels weirdly unsafe or not expressive enough. Going back to C APIs, with their states that need to be read via bit masks or through special integer return values, is just painful after using discriminated unions. Likewise being able to have multiple owners to a value is a little weird after using Rust.

Also what's the deal with the fi ligature in the code? It throws off the kerning and holds no purpose.

<comment><USER5> > _Also what 's the deal with the fi ligature in the code? It throws off the > kerning and holds no purpose._

I'm not seeing a ligature there, or at least not an obvious one. What browser/platform are you using?

<comment><USER4> Interesting. The CSS is using `-moz-font-feature-settings: "liga" on` for some reason. I'm using Firefox on macOS. I assume you're not?

<comment><USER5> Firefox on Windows. Do you have a screenshot? Maybe I'm just blind.

<comment><USER4> Here you go: [https://gfycat.com/angrycanineboa](https://gfycat.com/angrycanineboa)

Click the gear if it's too small for you.

<comment><USER5> Font-Family for me is "SFMono-Regular","Liberation Mono","Roboto Mono",Menlo,Monaco,Consolas,"Courier New",Courier,monospace

Looks like I'm falling all the way back to consolas. I'm pretty sure SFMono comes with macOS, which explains the platform differences between us.

That might explain why the fi ligature has been a common complaint lately, as more people start using San Francisco in their sites.

<comment><USER6> > I'm pretty sure SFMono comes with macOS, which explains the platform > differences between us.

Not in a way that would be relevant here. I'd expect this font stack to fall back to Menlo on macOS.

<comment><USER5> And does Menlo have this ligature? I don't have a mac to test with.

<comment><USER6> It does, but it only works in Safari if I add font-feature-settings: "liga" on.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> We do something like this to encode our Redux states at compile-time (using TypeScript, obviously). Previously, using regular JS, the Redux devtools made tracking down incorrectly implemented reducers/state transition reasonably straightforward -- but you still had to trigger a bug before you knew you had to track it down, and implement tests etc.

This kind of design pattern measurably saves us time; it reduces the volume of unit tests we need to write/update when we make changes (we still test, just... with less fear), and it prevents newer developers from making mistakes. I haven't played with Rust (beyond a couple of toy projects) yet, and articles like this remind me I'm looking forward to sinking my teeth in over the Christmas break.

<comment><USER8> Cool! Are you referring to the phantom types technique? I am interested in how you implement this in typescript. Do you have a blog post about it you can refer me to? Or even just a gist?

<comment><USER7> I'll have to read up on that. We just leverage enums and Typescript's slightly more strict type checking to state that the store can be in only certain states, and use the excellent typesafe-actions library. I'll write up a blog post. There are probably flaws in our methodology but when we took some new grads on recently, it helped a lot :).

</comment></comment></comment><comment><USER9> This is one of my favorite patterns from Haskell, which I've known as "type- level programming". One of the most common examples is a "sized vector"[1] which allows compile-time bounds checking. This is achieved by annotating each vector type with a phantom type variable representing its size.

Nice to see something like this in Rust! One thing that's a bit of a bummer, and I'm sure there are very good reasons for this, is that we HAVE to use every type argument of struct in its definition. If this restriction were to be relaxed, we wouldn't need the "state" field in the struct at all, and we could make the state type variable truly "phantom".

[1] [https://www.schoolofhaskell.com/user/konn/prove-your- haskell...](https://www.schoolofhaskell.com/user/konn/prove-your-haskell-for- great-safety/dependent-types-in-haskell)

EDIT: Typos.

<comment><USER10> Does the PhantomData type in Rust do what you want? Or are you talking about something slightly different?

[https://doc.rust-lang.org/nomicon/phantom-data.html](https://doc.rust- lang.org/nomicon/phantom-data.html)

[https://doc.rust- lang.org/std/marker/struct.PhantomData.html](https://doc.rust- lang.org/std/marker/struct.PhantomData.html)

So

      struct Sender<S> {
        /// Actual implementation of network I/O.
        inner: SenderImpl;
        /// 0-sized field, doesn't exist at runtime.
        state: S;
      }

I believe could become

      struct Sender<S> {
        /// Actual implementation of network I/O.
        inner: SenderImpl;
        /// 0-sized field, doesn't exist at runtime.
        _marker: PhantomData<S>;
      }

I've never used this PhantomData personally, so this might be wrong. Cheers!

<comment><USER9> It does! But you still have to actually "use" it, meaning that it appears as a field in the definition, and you have pass a PhantomData value whenever you create new instances of your data type.

In Haskell, you can omit these fields entirely, and achieve the same thing just by annotating the function.

For example, in Haskell, we can have

      data Const a b = Const a

whereas in Rust, it would be:

      struct Const<A, B> {
          konst: A,
          // does not exist at run-time
          discard: PhantomData<B>
      }

<comment><USER11> The reason for this requirement is lifetime subtyping: [https://doc.rust- lang.org/nomicon/subtyping.html](https://doc.rust- lang.org/nomicon/subtyping.html)

Type parameter variance is inferred from usage (e.g. covariant for normal fields, contravariant for function arguments) and without a usage there's no way to infer it.

</comment></comment></comment></comment><comment><USER12> I wrote something similar in C++, completely compile time that disappears at runtime: [https://www.fluentcpp.com/2019/09/24/expressive-code-for- sta...](https://www.fluentcpp.com/2019/09/24/expressive-code-for-state- machines-in-cpp/)

Although the language itself doesn't guarantee that the value is not used again after a move, good static analyzers will provide a warning in that case, so it can still be safely used.

<comment><USER13> > Although the language itself doesn't guarantee that the value is not used > again after a move, good static analyzers will provide a warning in that > case, so it can still be safely used.

Not soundly. Such static analysis can be trivially defeated using e.g. virtual methods.

<comment><USER12> True, it's not bulletproof. However, with a bit of discipline it's possible to use it safely. And anyway, it's already an improvement over just documentation like "don't call this until you called that"

</comment></comment></comment><comment><USER14> Basically, they are using Rust to encode a state machine using types. This is brilliant! The nice thing is that the transitions are determined at compile time so there can be performance benefit as well as compile time correctness testing.

Really neat techniques!

<comment><USER15> [https://hoverbear.org/blog/rust-state-machine- pattern/](https://hoverbear.org/blog/rust-state-machine-pattern/)

Here another article, but with a more classical state machine impl.

</comment></comment><comment><USER5> Another example, implementing IMAP with Rust's affine types.

[https://insanitybit.github.io/2016/05/30/beyond-memory- safet...](https://insanitybit.github.io/2016/05/30/beyond-memory-safety-with- types)

<comment><USER16> Hey, I wrote that article. There's now an actual, functional IMAP library that uses these techniques here:

[https://github.com/jonhoo/rust-imap](https://github.com/jonhoo/rust-imap)

I did not contribute to that library, but it's nice to see a practical implementation. They use the same approach, essentially, as I describe in my blog.

</comment></comment><comment><USER17> Maybe not everyone will know this but Typestate was one of the original 'headline features' of Rust when Graydon Hoare started it. It was based on the Strom/Yemeni paper[0] for the NIL language. There's a mention of in this SO answer from 2010[1] and in the LtU discussion[2]. I'm not sure why it was de- emphasised, I think it didn't work as well as anticipated in the 'real world'

[0]: [http://www.cs.cmu.edu/~aldrich/papers/classic/tse12-typestat...](http://www.cs.cmu.edu/~aldrich/papers/classic/tse12-typestate.pdf)

[1]: [https://stackoverflow.com/questions/3210025/what-is- typestat...](https://stackoverflow.com/questions/3210025/what-is-typestate)

[2]: [http://lambda-the-ultimate.org/node/4009](http://lambda-the- ultimate.org/node/4009)

</comment><comment><USER18> Scala/Haskell has the same thing, and it's an amazing feature. The proper type is that of

        trait IndexedStateT[A, B, C]

Which signifies a typelevel state machine moving from state A to state B emitting a value of type C.

I can only speak for scala, but i'm assuming haskell has singleton and literal types as well. Meaning that code like this works great.

        object DoorOpen
        object DoorClosed

        class Door {
          def open: IndexedState[DoorClosed.type, DoorOpen.type, Unit]
          def close: IndexedState[DoorOpen.type, DoorClosed.type, Unit]
        }

       val d = Door()
       for {
          _ <- d.open() //works
          _ <- d.close() // works
          // _ <- d.close() //compile error
       }

By my understanding of the article, it uses the borrow/move state to implement the state transistion. Is this generalizable to arbitrary state machines, or only a simple 2-state one?

<comment><USER11> It generalizes to arbitrary state machines- check out the reference near the end to session types.

Each state is a type, methods consume their receiver (the "move state") and return the new state. You can't accidentally keep around a copy of the old state.

</comment></comment><comment><USER19> This is a really useful pattern when you want to have rigidly defined/enforced state transitions to ensure that the data is never in an invalid state for a given operation.

It's pretty awful to deal with when you're unsure of what the state machine should look like, or if there needs to be a lot more flexibility in how the data is accessed. Maintainability nightmare.

An example of this I ran into is a data processing pipeline architecture where each vertex of the processing graph had a processing function called in a loop on its own dedicated thread. Using the type state pattern helped clearly define the "life cycle" of each vertex and enforce it, which provided for some powerful synchronization guarantees (e.g. we could provide _some_ elements of memory safety even when loading things through shared libraries). If you dug into it you could break things, but that would be more work than just following the pattern.

</comment><comment><USER20> Are there other languages that can do the trick done with "close()" on the file there? A type with a method that can make the type compile time unusable after being called!

that is pretty neat.

<comment><USER21> Any dependently typed language worth its salt will be able to model a state machine in its type system.

Haskell can do it with some effort, maybe for simple stuff phantom types and GADTs are enough. With linear types the explicit "consumption" can be modeled.

</comment></comment><comment><USER22> > 2\. we have seeked in a file that was already closed.

> The second error, however, is much harder to catch. Most programming > languages support the necessary features to make this error hard, typically > by closing the file upon destruction or at the end of a higher-order > function call, but the only non-academic language that I know of that can > actually entirely prevent that error is Rust.

Why not simply add an `is_closed` flag and throw an error if it is?

<comment><USER23> > Why not simply add an `is_closed` flag and throw an error if it is?

That's a way of doing it at runtime. The article describes catching the error at compile time.

<comment><USER22> I see, thanks.

</comment></comment></comment><comment><USER24> This is one my favorite features of the language and I believe to be fairly unique. It can make for some slick and safe state machine like code.

I do wish that we had reliable RVO so that this could come at zero cost.

</comment><comment><USER25> [https://github.com/Munksgaard/session- types](https://github.com/Munksgaard/session-types)

</comment><comment><USER26> This line caught my eye.

my_file.open(); // Error: this may fail.

1) If this can fail, then it should be a compile error to not test the result code.

2) IMHO it would be nice if there was something like Python's with statement to correctly close a file.

        with open(filename, 'r') as f:
            f.read()
        # f.close() invoked automatically here

This prevents trying to close a file that is not opened.

The idea of encoding a state machine into the types seems interesting.

<comment><USER27> You should probably have read the rest of the blog post, because in Rust it _is_ a compiler error to not test the result, and the post specifically calls this out. Specifically, look for this section:

        let mut my_file = MyFile::open(path)?;
        // Note the `?` above. It's a simple operator that asks
        // the compiler to check whether the operation succeeded.
        // The *only* way to obtain a `MyFile` object is to
        // have a successful `MyFile::open`.

        // At this line, `my_file` is a `MyFile`, which means
        // that we may use it.

<comment><USER28> Is it though? Does the compiler not compile when you don't check / use the error result?

<comment><USER29> If you don't use the result, how would you be able to get the handle that represents the open file?

<comment><USER30> You wouldn't. In this case a more likely example would be writing to the file. You don't have to check the return value (in C or Rust) to do something useful, but you should. In Rust you'll get a warning (or error depending on how your workspace is setup). In C, you won't get anything. It's also worth noting that the Result enum can be and is used for things beyond file I/O.

</comment></comment></comment></comment></comment><comment> caleb-allen Feels similar to Kotlin's sealed classes

<comment> james-mcelwain They are similar to Kotlin's sealed classes, except there's no concept in Kotlin of an object "consuming" itself, which is necessary for maintaining safety in the API.

For example, in Kotlin, if a method on state A returns state B, there's no way to invalidate all existing references to state A. Normally this invariant would be enforced on the caller's side, or perhaps by throwing an IllegalStateException if state A is called after producing state B.

<comment><USER31> Adding to this, I see two other elements that make this tough to replicate in Kotlin:

1\. Type erasure

2\. Using sealed classes requires instantiation, while the Rust version is zero overhead.

<comment><USER32> > 1\. Type erasure

There is no need to access type information at runtime here.</comment></comment></comment></comment>


Bonobo and chimpanzee gestures overlap extensively in meaning - <AUTHOR> http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.2004825 <comment><USER2> The idea that bonobos and chimpanzees can speak the same language is absolutely thrilling. Even though bonobos are chimps, I always saw the two species as very distinct; this discovery really resets my worldview on multiple levels.

<comment><USER3> I'm not an expert by far, but aren't many animal "gestures" shared by multiple species: lying down to surrender, standing on hind legs to threaten, showing teeth, etc...?

<comment><USER4> Also not an expert, but I suppose at some point there can be a distinction made between body language and sign language?

</comment></comment></comment><comment><USER5> Kind of funny how much of their vocabulary consists of various ways of saying "get over here, you sexy beast.."

<comment><AUTHOR> Even more interesting, If staying bipedal means 'lets make sex' for bonobos, I wonder if human observers could change the behaviour of studied bonobos increasing the sexual encounters (just because we are standing there shouting 'lets make sex' with our bodies all the time). Wouldn't be crazy if we repeat the research with robots and remote cameras to find that they are not so promiscuous as we thought?

We must be a particularly foul-mouthed species for them. And we share also the 'stop what you were doing' grab/slap.

</comment></comment><comment><USER6> It's quite possible that human language started as body/gesture language and then migrated to primarily voice.

<comment><USER7> IMO it's still primarily a body/gesture language. Oh, sure, it has some abstract symbolic representation stuff built on top of more primal human communication channels. However, when the new stuff conflicts with body language and paralinguistic signals, it typically gets disregarded.

<comment><USER8> > IMO it's still primarily a body/gesture language.

Nonsense.

The vast majority of what we communicate nowadays cannot be represented adequately or at all by your "more primal human communication channels".

<comment><USER9> I believe a single emoji — ponder or similar — is genuinely an appropriate response here, however they are automatically stripped. A policy I agree with, but they are surprisingly capable despite their simplicity and (in many cases) direct mapping onto body states.

<comment><USER8> Now try expressing the concepts of "automatically stripped", or "policy I agree with", or "surprisingly capable" in emoji or body language.

<comment><USER10> emoji don't help you express precise rational statements. they add something that text lacks: the subtext that people normally express with tone and body language. emoji aren't a _replacement_ for your day to day unicode symbols, they are something you can _add_ to make your messages more expressive.

 _technically_ you can express all of the same things without emoji, but there's a limit to how subtle you can be. by adding an emotional cue using an emoji i can completely change the meaning of a statement by adding contextual subtext.

<comment><USER8> That's a very different thing than the claim that human language is "still primarily a body/gesture language", which is what I was arguing against.

<comment><USER9> There are many interesting things which cannot be expressed by body language, one of which is _what is meant_ by "primarily".

Maslow's hierarchy? Body language is primary, it comes first.

By number of bits required to describe the typical change to synaptic weights? No idea.

By number of raw bits? If I had to bet, I'd give 10:1 that body language beats words with reasonable compression for both audio and video streams, much stronger certainty for uncompressed.</comment></comment></comment></comment></comment></comment></comment></comment>


OnionShare 2 adds anonymous dropboxes - <AUTHOR> https://micahflee.com/2019/02/onionshare-2/ <comment><USER2> For those looking to do this programmatically, it is so easy these days. This project uses the Python library Stem [0] and I wrote one for Go called Bine [1]. Firing up a website on an onion service from your home computer is really easy, and busts NAT by its nature.

0 - [https://stem.torproject.org/](https://stem.torproject.org/) 1 - [https://github.com/cretz/bine](https://github.com/cretz/bine)

<comment><USER3> I wonder if you could use this to make an OnionSync. Like Syncthing but perhaps simpler to use because of global addressing and no need to configure between nodes. (Though I've only briefly looked at Syncthing.

<comment><USER4> If you control both sides of the connection, ZeroTier is probably a more efficient "NAT-busting E2E-encrypted overlay network" solution than anything Tor-based.

<comment><USER5> Being able to embed the Tor daemon right into my program, and still using an existing Tor daemon if available, is pretty pretty compelling.

</comment></comment></comment></comment><comment><USER6> This is awesome, however, if you're looking for plausible deniability this can cause some concern.

Tor traffic is pretty visible and detectable. If you're firewalled somewhere, it's pretty obvious to anyone in the middle that you're using Tor. Tools like these clearly don't work against nation states like China, or even some corporate environments.

Transferring secrets in a plausibly deniable format is still a hard problem.

<comment><USER7> You are probably talking about detecting Tor relay nodes IP addresses that the sender connects to or patterns in the traffic.

So you could use a VPN, or a chain of VPNs to hide the IP.

And to escape traffic analysis you could switch the entry VPN automatically (that would require quite a few VPNs for large files or many receivers).

Still, connecting to unknown IPs from a corporate network can be detected.

Then you could use some public service that stores data like Github (repos / gists / ...) and somehow communicate between your computer and a relay server through Github.

Still not foolproof, there could be timing attacks to detect when data is transmitted when the receiver requests the file, so introducing delays along the nodes would help.

<comment><USER4> Systemic solution to this problem: NNTP (Usenet). I can't recall the specific newsgroup, but there are Usenet "numbers stations" groups for the upload of anonymous encrypted binaries. They get store-and-forward-ed like anything else, at arbitrary times.

Alice dumps an encrypted document into the NNTP network on one side of the world; Bob later downloads the entire newsgroup's contents (not just the stuff he wants—because there's no metadata to even determine that!) from his local NNTP server, and then attempts to decrypt everything he downloaded until he hits on something that works.

<comment><USER8> But wouldn't that have the same problem that GP mentioned, that this traffic would be easily identifiable as NNTP? If you were the only person using NNTP, then whammo...

<comment><USER4> One part of this scheme that I forgot about, which the link in the sibling reply mentions, is MixMaster ([http://mixmaster.sourceforge.net/faq.shtml#1.2](http://mixmaster.sourceforge.net/faq.shtml#1.2)), a self-hostable service for "mixing" SMTP traffic (including SMTP>NNTP gateway traffic) around. Many people host these, even today. It's a bit like Mailinator with all its alias domains, but for the other end of the connection, and distributed.

So, to get all the security features at the same time:

1\. _Using_ Tor to hide your IP,

2\. _Connect_ to a MixMaster node (using TLS), and

3\. _Send_ an encrypted NNTP message through it,

4\. _To_ an SMTP>NNTP gateway,

5\. With the embedded NNTP message's _Recipient_ being alt.messages.anonymous.

Kinda complicated, but you could wrap all that up into a nice GUI program if you wanted.

Oh wait, they already did: [http://aamdirect.sourceforge.net](http://aamdirect.sourceforge.net)

——

MixMaster doesn't do the Tor part for you, though. My suggestion would be to run AAM Direct in a [https://tails.boum.org](https://tails.boum.org) session, which will automatically force the connection through Tor without any configuration needed.

An additional boost to security would be for there to be .onion MixMaster nodes, so that the traffic doesn't have to traverse the public internet (and thus probably force you to rely on the only-kind-of-secure SMTP STARTTLS extension for security between the Tor exit node and the MixMaster node.)

</comment></comment></comment></comment></comment><comment><USER9> I wonder, does this support threaded transfer? It really bugs me that so many tools don't, and therefore just leave users waiting around with unused internet bandwidth.

Of course, I suppose the design of TCP is part of this. It seems that there ought to be some more control of how aggressive it is about dropping connection rate. I keep hearing about multiplexed connections in newer protocols (QUIC etc.); would that translate into saturation of network connections?

<comment><USER10> TCP often fails to saturate network links because it treats packet loss as congestion. TCP-BBR tries to model the network more accurately, treating _latency_ as congestion: [https://cloud.google.com/blog/products/gcp/tcp-bbr- congestio...](https://cloud.google.com/blog/products/gcp/tcp-bbr-congestion- control-comes-to-gcp-your-internet-just-got-faster)

Tor adds additional complexities, since intermediate nodes are even more likely to be congested than the average backbone router. I don't know if BBR improves things there.

<comment><USER9> Hmm, interesting thought. This explains why google drive, youtube, etc. can download so quickly with a single connection (especially compared with other services). Thanks for the link.

</comment></comment></comment><comment><USER11> As an aside, please guys, consider using Tor for more of your day to day browsing. The anonymity of the Tor network crucially depends on more users and more traffic to defeat global adversaries or timing attacks (or at least make it more difficult).

<comment><USER12> Is there any way to use it without it being painfully slow?

<comment><USER11> In my experience, it is slow only on very media heavy sites like Facebook, Youtube etc. That's not going to improve unless there are many more exit nodes and relays. But for most browsing its not painfully slow, although the slight delay is noticeable when compared to a non-Tor browser. However I guess the best way to fight public perception that Tor is a den of illegal activities, as well as foil timing attacks is for more of us to use it for regular browsing.

<comment><USER13> For Facebook, you can use its onion service to get improved speeds (the traffic doesn't leave the Tor network, which itself is quite fast, it is only the exits to the Internet which are slow): [https://facebookcorewwwi.onion/](https://facebookcorewwwi.onion/)

</comment></comment></comment></comment><comment><USER14> I'm a fan of tor and the work they do, but doesn't this sound like security through obscurity? Anyone with the address can upload files without logging in.

I know Onion addresses are huge and the chance of someone scanning to upload is tiny, but I remember saying the same thing about IPv4. "There's 256^4 addresses, of course I can run an unsecured FTP. What could go wrong?"

I'd like to see some simple one-time-use password option. It doesn't even have to be enabled by default, just having it there would be a big step. HTTPS would be great, but I understand the difficulty of that hurdle.

(If Let's Encrypt is out there - .onion isn't a dirty word!)

<comment><USER15> I wonder if scrambled distributed chunks over torrent would be useful.

Btw who works on tor replacement or improvement ?

<comment><USER16> Related work; on the deniable side: shadowsocks, a proxy designed to look like https traffic, wireguard may fulfill the same kind of goal (using generic session protocols like the noise framework might help deniability); on the generic p2p internet/web: gnunet (large project, quite experimental, has naming, routing/transport, some application protocols).

<comment><USER15> many thanks

</comment></comment></comment></comment><comment><USER17> See also Firefox Send - [https://send.firefox.com/](https://send.firefox.com/)

Files are encrypted and then uploaded to Mozilla servers. Links automatically expire after some time.

<comment><USER13> This is not metadata analysis resistant, so Mozilla could still technically see who is sending files to who (unless you use Firefox Send in Tor Browser - not sure how well that works).

That's not to say this service isn't useful, but it's not a drop-in alternative to OnionShare.

</comment></comment><comment><USER18> Similar sharing, but not onion routed.

[https://github.com/datproject/dat](https://github.com/datproject/dat)

<comment><USER19> I think it's actually more similar to magic-wormhole, [https://github.com/warner/magic-wormhole](https://github.com/warner/magic- wormhole)

</comment></comment><comment><USER20> Really like the ephemeral links, don't love the fact that the receiving party needs to use a tor browser....

<comment><USER21> Firefox is apparently working towards integrating Tor into a private browsing mode type of thing, so perhaps someday soon that won't be necessary [0].

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

<comment><USER22> Brave browser now has a Private Browsing mode with Tor.

</comment></comment></comment><comment><USER23> > .. is to use an encrypted messaging app like Signal Desktop, Wire, Keybase, > or iMessage.

Solid selection by authors, not familiar with Keybase though

<comment><USER24> Keybase is basically a communication platform that's secure, but allows the users to verify that they are who they say they are. It's basically like "I am foo, and I identify myself like this, and you are bar, and you identify yourself like that, we now know that we are who we say we are, and now we're having an e2e encrypted conversation.

It's supposedly a way to put a stop to imitation, but unless adoption gets huge I'm not sure it'll work that way.

It generates a string, you store it on, for example, your twitter, facebook, github, HN account, almost anything with an editable profile. That way when 2 users are talking, one can be assured that the other is who they claim to be (either that or they have access to all of said person's accounts). It's kind of cool but it's impractical in a way that usage is pretty low (at least among people I know. Maybe it's got a big underground following I don't know about).

I have a keybase account and literally no one else I know does, so I've never used it.

<comment><USER25> I love Keybase (it has some awesome features, like chat (similar to slack), encrypted file storage, encrypted git repos etc. But you're right you have to have other people using it for it to have any value. I've gotten work colleagues to adopt it so now it's also a great way to stay in touch after somebody leaves the company.

If you want to look me up on Keybase I'm freedomben, and I'll be your friend :-)

</comment></comment></comment><comment><USER26> Sorry for asking the obvious question, but this website seems like a play on words for McAfee.com

<comment><USER27> The domain is the author's name (see the sidebar on the right).

</comment></comment><comment><USER28> Url changed from [https://blog.torproject.org/new-release- onionshare-2](https://blog.torproject.org/new-release-onionshare-2), which points to this.

</comment><comment><USER29> Honest question: do tools like this even matter? We're all a few INNER JOINs away from having our entire lives known by data brokers. This seems to indicate that unless one changes their name and lives with the mole people, privacy is an illusion.

<comment><USER30> To name a few professional that need to talk work with each others: journalists, lawyers, medical personal, security, and government. If just a small amount of the sensitive information that get transported through data brokers like facebook and google get moved to more secure end-to-end then I see a major win for projects like this. Take for example a psychologist seeking a second opinion on a recorded video of a patient, which as I understand is a rather standard practice. If I was the patient then I wish they used tools like this rather than a password protected google drive, which for practical reasons I assume many non-technical psychologist use.

</comment></comment><comment><USER31> Someone should release a version of Tor where users set the _private_ key of their hidden service to something human readable (with the necessary mapping and padding).

Then someone wanting to access the hidden addy types that same private key in the url bar of a correspondingly twisted Tor Browser which would generate the hidden service pubkey and request the service at that addy.

Who wants to surf fwodjslkf...sdfjs.onion when you _could_ be surfing amazon.onion?

It's also more democratic because if you don't like what you find there you can just publish your own amazon.onion.

<comment><USER32> You can't do that because that's not the way encryption works.

The reason onion addresses are random looking is because they are a function of the hidden service's public key.

If you could generate a "private key" _from_ the public key, anyone could use your "domain name". The reason tor doesn't require centralised domain name services is because we can trust that whoever owns the private key to the public key which we identify with the onion address, owns the onion address.

<comment><USER33> The closest you could get to OP's idea is to have a human-readable, non- configurable (but minable) mnemonic that maps to a public key.

<comment><USER2> This has been tried quite a bit ranging from proquint to random 32-bit phrases [0]. I just don't think we as humans are going to be able to make something both memorable and with enough size to hold, say, ed25519 keys (i.e. Tor v3 keys). KDFs leave a lot to be desired too, we're going to have to find a better way. Until then, obtuse names and lack of easy discovery will plague decentralized setups.

0 - [https://blog.asana.com/2011/09/6-sad-squid-snuggle- softly/](https://blog.asana.com/2011/09/6-sad-squid-snuggle-softly/)</comment></comment></comment></comment>


British nukes were only protected by bike locks - <AUTHOR> http://www.bbc.co.uk/pressoffice/pressreleases/stories/2007/11_november/15/newsnight.shtml

<comment><USER2> It's been known widely for some time that on every British nuclear-armed sub, there's a safe, and in that safe another safe, and in that second safe a note from the Prime Minister commanding the sub on what to do in the event that the motherland should be wiped out in an attack while they were away.

That would mean it is impossible that they need some sort of special code, as if they did, that code would have to be accessible to them already, and then what is the point?

<comment><USER3> The thing that people don't seem to grasp here is that a single Trident missile is capable of carrying 10 warheads and is capable of striking 13,000 km away. This means that with a full compliment of missiles, a Vanguard submarine surfacing in Anchorage Alaska would be capable of striking any location in the US (and I believe possibly even Puerto Rico).

A false launch would essentially be capable of ending the world. It was estimated that a small-scale nuclear war of ~50 'Little Boy' air-bursts would have serious global complications. Being that a single warhead on the Trident can detonate at 500KT (25 times a 'little boy'), a single missile launch is equivalent to 5 megatons, all of which could be ground-burst and force more dust into the atmosphere. At 160 warheads and 80 megatons of destruction, the world is essentially over (as we know it) long before a retaliation has ever been launched.

People's response to this never grabs the situation. It always seems to be that people think a false launch could destroy a city like New York, when in reality a false launch from a ballistic missile submarine could easily end the world.

I realize the risks inherent in a lack of safeguards in the Trident program. However, being from the UK and knowing full well that in the event of a nuclear war, my entire homeland will be a nuclear wasteland (too many primary targets in a small area, I know for a fact I lived in between 3 primaries when I was growing up: major harbor, major RAF base, Army training base). So the UK has little chance to approve a nuclear launch _after_ the attack, unless the authorization can be approved by a UK overseas base, fail-safes are just failures in the face of an attack. Fail-safes are intended to prevent unauthorized launches, however for the UK they're also going to prevent authorized launches.

I'm unsure what troubles me more, a poor ability to safeguard the system or the inability for justice if some psycho warlord decides to destroy my homeland.

The UK isn't in the US's situation where a nuclear launch can mean authorization can be granted by a chief of staff or high ranking general before everyone has been obliterated. The US would take potentially hours for a complete destruction, the UK on the other hand can easily be nuked into non- existence inside of a half-hour. A surprise attack doesn't leave much reaction time for the UK like it does the US.

<comment><USER4> _A false launch would essentially be capable of ending the world._

The more I think about it, the more I think that the whole Nuclear Winter thing is probably Global Warming 1.0. "Trust us, we're scientists."

<comment><AUTHOR> You're one of my favorite HN regulars but...

It's not "trust us, we're scientists", it's "trust us, we've published extensive peer-reviewed evidence backing up what we're saying, so if you don't believe us you can pick an informed argument".

Nuclear winter is one of the more testable scenarios in global climate, since we have small-scale approximations whenever a big volcano erupts. There's been some good recent research at <http://www.agu.org/pubs/crossref/2007/2006JD008235.shtml>

I am not a climate scientist, but I've been driven crazy enough by people's vague arguments to track down foundational papers around some of these issues. Please, all I want is some decent research links for any skeptical stuff, no more cheap shots.

</comment></comment></comment></comment><comment><USER5> Summary: British submarines can launch missiles.

From the article: "..nuclear bombs were armed by turning a bicycle lock key. There was no other security on the bomb itself."

By the way, it's a freaking submarine.

Perspective: I lock a gun's trigger with a bike lock, and then place it in a safe. The safe is inside a bank vault.

If I do manage to steal the gun, then I can pick the lock and use it. If I do manage to steal the arming key, then I can convince the crew to launch the missile.

Would you like to play a game?

edit: Grammar

<comment><USER6> Yawn.

The W177's were secured with bike locks ... inside a reinforced concrete bunker surrounded by razor wire and patrolled by armed guards with orders to use lethal force to stop anyone trying to gain access to them without proper authorization.

Just like the USSR's land-based ICBMs didn't have PAL codes -- instead they were guarded by a platoon of KGB troops who didn't know how to launch the missile, but sure knew how to stop the strategic rocket forces' crew from launching the missile without orders.

Folks on HN are predisposed to thinking about automating security procedurally, but seem to miss the point that military organizations have been automating security through process carried out by human bodies for centuries, if not millenia; all they need is enough obedient soldiers with guns and orders not to allow [X] to happen without authorization [Y] or their ass is on the line to ensure that the bombs are _de facto_ secure.

<comment><USER7> Well, not necessarily. A rogue commander could probably persuade his subordinates that he was authorized to use the bicycle key. If someone in a position of apparent authority claims that they will accept responsibility, subordinates will usually go along with that.

<comment><USER6> The WE.177 (<http://en.wikipedia.org/wiki/WE.177> \-- note corrected designation) was a free-fall H-bomb, carried on Vulcan and then Tornado bombers, and retired by 1998; you can see details of the 'bike lock' security on that wikipedia page. As such, it was stored on RAF bases and there are extensive procedures in place to ensure that a rogue officer _can't_ order a deployment without it coming down the chain of command. (See also "Dr Strangelove".)

The WE.177 was _not_ a sub-launched missile. The Royal Navy's Trident D5s (which come from the same maintenance pool as the US Navy's missiles) are; they do not, as far as I know, use bike locks: if they do, _so do the USN's D5s_.

</comment></comment></comment></comment><comment><USER8> > However, the Royal Navy argued that its officers could be trusted and: "It > would be invidious to suggest... that senior Service officers may, in > difficult circumstances, act in defiance of their clear orders."

Even by the standards of a world gone mad, these people are #@!%ing lunatics.

</comment><comment><USER9> Comments here [http://www.schneier.com/blog/archives/2007/11/british_nuclea...](http://www.schneier.com/blog/archives/2007/11/british_nuclear.html) suggest the US just used 111111 as their code. (citation needed)

<comment><USER10> And on this blog is the thoughtful reply

"It shouldn't be hard to arm a nuke. It should be hard to get access to it.

If you stole one any competant EE could rewire the whole thing to do what he needs anyway. Those inclined to steal a nuke would have this know-how; they wouldn't be your average bank robber or shoe-bomber terrorist.

Posted by: Savik at November 21, 2007 2:34 PM"

Maybe back in the day a competent EE could rewire, but the modern arming mechanisms are ultra-sophisticated.

<comment><USER11> ultr-sophisticated, but still any locking mechanism on nuke can be overcomed by sufficiently motivated adversary. And anyone who can steal the nuke is sufficiently motivated, no matter how ultra-sophisticated your lock is.

Edit: and overcoming any kind of locking mechanism on nuke is certainly cheaper than building one yourself. What most people seem to forget is that problem with building nuclear weapons lies with logistics, not technical expertise.

<comment><USER10> Agreed. All the locking mechanisms and codes are to prevent accidental and non-authorized triggering. After that you have to depend on guys with guns for security.

</comment></comment></comment></comment><comment><USER12> For anyone interested in this kind of stuff I can recommend this book:

[http://www.amazon.co.uk/Secret-State-Whitehall-Cold- War/dp/0...](http://www.amazon.co.uk/Secret-State-Whitehall-Cold- War/dp/0141008350)

The story of how the government planned to communicate with the V bomber fleet is wonderful...

</comment><comment><USER13> Wow, that's really interesting. I think that Britain is firmly in the wrong on this one. That places a lot of trust in a lot of individuals hands, which I don't necessarily have a problem with because of a number of psychological factors related to their employment in the army, but that doesn't discount someone infiltrating the systems and activating the missiles.

<comment><USER14> I imagine that someone can go crazy when living in a sub for a long period of time.

<comment><USER15> Especially if they do not have a friendly port to return to anymore.

</comment></comment></comment><comment><USER16> That's nothing. In the US, we fly nuclear warheads across states. <http://www.msnbc.msn.com/id/20427730/>

<comment><USER17> That's fine, as long as the warheads could not be detonated it does not matter where they go.

The point is that you can arm a British nuke in 98 with a bicycle lock key and no tamper-proof mechanism was there. So if you got a warhead detonation was easy. In the US having a warhead is pointless, you need the codes or the bomb is worthless.

<comment><USER16> You're 100% correct. According to the news reports at the time the transport was characterized as being a "mistake", i.e. human error. I don't know the intricacy of warhead arming etc., but another article on CNN talks about codes being handled insecurely: <http://www.cnn.com/2008/US/07/24/missile.error/></comment></comment></comment>


Show HN: A path to what people want - <AUTHOR>

Hi, could I get some constructive feedback on an idea please?
This is one of those ideas that might be too disturbing socially to be taken seriously. The most surprising thing I observed is not that people can't say they do this - it's that they don't want to hear that they are susceptible to it already under various disguises (notably: employment).
Thanks to a couple of wise people who said most ideas are crazy  and encouraged us to build this. If you were to change just one thing, what would that be?
Thanks in advance, I'll be happy to return the favor, I promise! http://lookapinky.com <comment><USER2> The one thing that is missing is the "why" or "because". This makes it easier to get to the heart of the matter and why I should even help the person.

<comment><AUTHOR> I'll try adding a "because". Thanks for the suggestion, I'll be happy to help back in any way I can.

<comment><USER2> just checked and saw that you added "because" has this changed the user behavior in any way? No worries about helping me back. Just keep creating and doing awesome things. The more people that do that the better for everyone else.

<comment><AUTHOR> It seems to have exposed weak reasons for asking for favors.</comment></comment></comment></comment>


Hints on programming language design (C.A.R Hoare) - <AUTHOR> http://www.eecs.berkeley.edu/~necula/cs263/handouts/hoarehints.pdf

<comment><USER2> I disagree that the paper is obsolete. References and pointers abound in nearly every popular modern programming language [C, C++, Java, C#, PHP, Python, Ruby, EcmaScript, etc.] and in fact are the defining feature of all OO languages. Operator overloading is only possible in a small fraction of popular modern programming languages. Fast compilation is not even a focus of most popular modern programming languages. Type inference and automatic coercion, declaration, and defaults are in vogue in most programming languages. Also, programming languages are increasingly large and complex. Compiler optimization is likewise a hot-spot topic, as are gotos/jumping and global and out of block variable definitions.

It would seem to me that if his hints and assumptions are correct that language designers may have inhibited the growth of programming; though a programmer that knows her/his language of choice can and does take advantage of all of the inefficiencies described in this paper.

I'm really beginning to realize that the functional languages probably have it right: single value assignment; recursive function execution; compact, readable code; monads; guards; readable case statements; and narrow interfaces seem to satisfy a lot of what he recommends. Most OO languages definitely do not, although I love the expressiveness I have learned to achieve by exploiting their nuances.

</comment><comment><USER3> This paper is mostly obsolete but contains this wonderful and famous comment on Algol 60: Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors.

<comment><USER4> Of all the languages at the time only LISP was better, Algol 60 was probebly more practical. (John McCarthy was working on Algol too)

</comment></comment><comment><USER5> Previously, 2 points...

<http://news.ycombinator.com/item?id=3207255>

<comment><USER6> That's all to do with the headline. Purely psychologically, I wouldn't care about a CS paper from 1973 ( _decades_ before I was even born) regardless of its quality or pertinence. On the other hand, something written by a famous computer scientist attracted my attention immediately.</comment></comment>


Show HN: Free screen recording Mac app that uploads while you record - <AUTHOR> http://recordit.co It's meant to be lite and fast. Hope you like it <comment><USER3> This is very useful and nicely put together. Well done! An easy iframe embed link on the playback page would be nice (pro feature?). Also, being able to target a window using the spacebar (like the native screenshot app) would be useful, as would full screen recording (at the moment if I go to the top left of the screen with the intention of dragging the selection box over the whole screen, the menubar gets in the way). Finally, I noticed that the progress percentage goes backwards sometimes (41% ... 42% ... 43% ... 41% ... 44%)

<comment><AUTHOR> Thanks pastylegs. Love this feedback.

%: yes, we gotta fix that

menu bar overlap: that too - thanks for pointing it out.

iframe embed: a few people asked for that. we'll definitely consider it.

</comment></comment><comment><USER4> please add option to output as animated gif. I will pay money

<comment><AUTHOR> we're going to add that this coming week.

<comment><USER5> Is it possible to upload via sftp for example? Or is it only usable with your hosted service?

<comment><AUTHOR> that's a cool idea - maybe we'll add that for the pro version - <USER2> suggestion. i know i'd prefer that myself.

<comment><USER5> There are a few free alternatives that has this feature, for example MonoSnap and Skitch (I think).

I use MonoSnap myself.

</comment></comment></comment></comment></comment><comment><USER6> Great focus on doing one thing and doing it well. Excellent work!

<comment><AUTHOR> Thank you :)

</comment></comment><comment><USER7> Know a few of these features already been mentioned, but after trying it out...

The upload proximitor gets stuck, so it's not possible to start another recording unless you restart recordit.

The player doesn't scale it to fit on screen, unless you use full screen.

The possibility to delete what you have uploaded would be great. And possibly password protect it.

<comment><AUTHOR> Great feedback. Thank you.

</comment></comment><comment><USER8> Did you come at this from the perspective of software like OBS and xSplit? Or from an alternative point of view?

<comment><AUTHOR> my point view: i want to show somebody something that has a sequence and don't want it to take a long time. that was really it.

</comment></comment><comment><USER9> Why would anyone even want this? The most important part of recording is the ability to have multiple takes, which is hindered if every take is to be uploaded at the same time. All other use cases can be covered by streaming your desktop.

<comment><USER10> how do you stream your desktop?

<comment><USER5> Use OBS [http://obsproject.com/](http://obsproject.com/) (Open Broadcaster Software) and stream to a website like justin.tv/twitch.tv.

It's also possible to save to a file, so it's easy to do screen capture for anything else too.

</comment></comment></comment><comment><USER11> Live uploading is cool. Are you sending the frames as they are being recorded & recompress on the server or do you just reserve the url upfront & upload once everything's done?

</comment><comment><USER12> nice! I usually use Quicktime for this, but even some of my most technical friends don't realize its possible, I think this is a great idea!

Best of luck!

<comment><USER13> thanks for Quicktime tip!

<comment><USER12> glad to help! :)

</comment></comment></comment><comment><USER14> Kinda bothers me that the demo video wasn't recorded using the software.

</comment><comment><USER15> Is there any way to delete a video once I upload it?

<comment><AUTHOR> We're adding that next week

</comment></comment><comment><USER16> Can you enable for iOS?

</comment><comment><USER17> USP over Quickcast?</comment>