Hacker News new | past | comments | ask | show | jobs | submit | tswicegood's comments login

@grhmc -- that's really cool. I wish I'd had something like this a number of times. "Now, which one of the 10 boxes labeled "kitchen" has the peeler in it?" :-)


Thank you! Yeah, it was pretty easy to build and use. A real joy. Yesterday, I was hunting for my vertical mouse and trackball. Sure enough, box #2 :)


FWIW, I was a paying customer. I know others who were as well. Most everyone I know, including myself as of two weeks ago, has stopped paying for the service. It had gone downhill to the point of being unusable.

There is a demand for this type of service. Real-time chat is in extremely high demand still. Chat was the number one requested feature a "build-you-own" social network startup I worked at a handful of years ago even before Facebook added their chat.


I'm not doubting what you say, but I'm interested in how the service went downhill?


Eye based window/input focus. I've been wanting this for years.


Some things are so obvious it's worth wondering why we don't have them yet. I mean, multitouch is the best we can do?


ob Hitch-Hikers quote

For years radios had been operated by means of pressing buttons and turning dials; then as the technology became more sophisticated the controls were made touch-sensitive--you merely had to brush the panels with your fingers; now all you had to do was wave your hand in the general direction of the components and hope.

It saved a lot of muscular expenditure, of course, but meant that you had to sit infuriatingly still if you wanted to keep listening to the same program.


this would be super useful on mobile devices. zoom on focus


FWIW, re-replaying the stack trace to figure out what was imported and re-implementing it is a horrible idea. There are much better ways to do this type of import voodoo, specifically the import hooks that Python ships with. Here's an example of their use inside a small side project of mine: https://github.com/tswicegood/maxixe/blob/master/maxixe/__in...

All that said, this is horribly un-Pythonic. A much better route to so is something like envoy[1] which simply wraps `subprocess` in a sane API.

[1]: https://github.com/kennethreitz/envoy


Just to clarify. I applaud this type of development for people trying to learn various parts of Python like playing with the stack, but the idea of this being used in the wild scares me a bit.


It's like operator overloading for novel syntax in C++. It worked all right for iostream, but if you've ever seen boost::spirit you can see that even very smart people can make very weird things happen by trying to kludge features into new syntax.


envoy looks a lot more verbose than this though . . . if you're really trying to replace shell scripting, having envoy.run(foo) on every line is going to get annoying.

Also, it's not clear on what basis you make this assertion:

> FWIW, re-replaying the stack trace to figure out what was imported and re-implementing it is a horrible idea.

Does it not work?


"Does it… work?" is not the standard by which good Python code is measured. Django went through this process years ago. It's convenient to be able to call `from myapp.models import *` and have an `Articles` model magically added to your module even though you never defined. They realized years ago that writing clever code for the sake of being clever was a bad idea. How are you going to get someone else to be able to maintain it? Not only do they have to know the logic of what you're doing, they have to know how you hacked things together.

Line 17 of PEP-20 sums up my thoughts on this code as more than an intellectual exercise.

> If the implementation is hard to explain, it's a bad idea.

Regarding using Python as a replacement for shell scripting: if you have to rewire the language to do what you want, why are you using a different tool for the job?


> If the implementation is hard to explain, it's a bad idea.

I don't think this principle is universal in software, and I don't think you need to embrace it as a prerequisite for writing or distributing Python code. My personal preference would be for a statement more like this, "If the implementation is more complicated than it needs to be to do what you want, it's probably a bad idea."

> Regarding using Python as a replacement for shell scripting: if you have to rewire the language to do what you want, why are you using a different tool for the job?

Well that's easy to answer. It's cleaner and more readable than bash, has some nice features that shell scripts lack, can be used to call into python libraries, allows a single unified codebase if you're already writing python code . . . I could go on.


As long as you can `import os`, you can be dangerous in Python. :-)


I would be curious to see an example of such dangers. It would certainly take a lot of effort to do something stupid in such a way that your program won't necessarily crash with an exception (I'm thinking things like segfaults, heap corruption, etc). I don't doubt such a thing exists, nor do I doubt there's an idiot out there who can exploit it, but I think the vast majority of newbies out there are going to be more fascinated by other parts of the standard library. Did you know you can make HTTP requests using urllib2? Or that you can open a web browser using webbrowser? Or have you seen Django's automatic admin interface? How cool is that?!


I know Travis and yes he knows those things.

What he means by "being dangerous" are things like os.remove(), os.removedirs(), os.chmod(), etc. He wasn't talking about crashing your own Python code, but being able to do dangerous things to the OS you're running it on.


Why is that anymore dangerous than knowing how rm, rmdir, and chmod work on the commandline?

Python's os module is not exempt from permissions - it's obviously "dangerous" if you run the interpeter as root then start doing silly things like passing GET parameters to os.remove() directly... But that, IMHO, is no longer dangerous - that's just stupidity.

Really, there's nothing remotely dangerous about Python - in terms of using import os (excluding the above example which I consider idiocy), it's no more dangerous than elevating to root!?

[EDIT] I would argue that not knowing how something works is more dangerous, but that typically falls under the banner of ignorance.


"Why is that anymore dangerous than knowing how rm, rmdir, and chmod work on the commandline?"

To screw up is human. To screw up a million times per second takes a computer.

In absolute terms, the two are equivalent. But the capacity for your Python program using os.whatever to unpleasantly surprise you is much greater.


There's nothing like that sinking feeling you get when you do a DELETE FROM and forget the WHERE.


That's exactly why begin transaction is awesome.


None of that is _dangerous_ though because you've got a backup of all your data and your code is all versioned ... unless you're practicing your python on life-support systems or something?


Frank's response covers it for me. There's plenty of dangerous things you can do in os. Same goes for sys, etc. None of them are going to launch missiles at someone or cause elevators to stop working, but you could blow away a day's work, drop a directory by accident, or some such.


It looks like this is something that the developer is already thinking about. https://twitter.com/twolivesleft/status/129304975623995395


Oh no I am speaking of licensing the graphics engine underneath to devs so they can distribute their own standalone games in the app store, without users having to download this app.


It seems like it'd be pretty easy to have do "something" on a server, and then just mail you the package you need to submit to Apple, given a few extra bits of data.

To the point where I've been thinking about doing it for a long while, but clearly someone was way ahead of me. :)


Is there a particular reason why you think this won't happen at some point in the future, too?


Any particular reason? I'm not working on this particular project, I have no idea what the dev has planned. I like imagination, but I don't like speculation. So I'm just not in the mood to speculate on it.


1) I think an aggressive personality is common in many successful---not the correct word, but it'll do---people. Look at any "team" sport where one player tends to take the spotlight. With the Tour de France on, I can't help but recall all of the prima donnas of Tours gone by. Actually, it's so rare to have a down-to-earth, genuinely thoughtful and nice person rise to the top in that sport that it's always called out when it happens.

2) I think being a jerk online and lack of in-person social skills aren't correlated. For whatever reason, when it's a computer screen in front of you, people tend to be more aggressive about their point of view. Unchecked, that can turn into "jerkiness," but I don't think it's a one to one. Don't get me wrong, I know plenty of people who are jerks online and the same offline. I also know plenty of people who are jerks online and the kind of person you hope passes you on the highway when you've got a flat or run out of gas---it's a given they're stopping and helping in any way they can.

3) I'm a little disturbed by the implication that a stunted career is what motivates people to contribute to open-source software, but I assume it wasn't meant quite that way. This illustrates an interesting point. Given that I don't know the context of where your fourth paragraph is coming from, I'm assuming the best and that you didn't mean it as I took it during my first reading.

That type of small misunderstanding could have resulted in me (or someone else) firing off a quick response calling you out on it, or even less hostilely taking issue with it and trying to rebute it. That in turn could have made you feel more defensive, so your next post might have been preemptively aggressive, and so on. This quickly deteriorates into a cycle where we're making each other more aggressive without meaning to and give rise to this mentality.

Subtly is lost online. It's ashamed, but the way it seems to be.

All that said, I do think those who the community looks up to are the ones that set the tone, for sure. I can point to many a project mailing list that have been rendered useless because some of the biggest (or perceived, historically, or actual) contributors take it over with their overly curt style of responses. :-/


Gah... Silly multiple domains: http://news.ycombinator.com/item?id=2709301


I would really be interested in some use-cases. The examples they give are fairly limited.


Classification (e.g. spam detection) and document categorization, as well as clustering similar documents.

You can do all these tasks in the original document space, instead of in the latent space, but the advantage of the latent space is that it can capture patterns across the entire corpus. This is called unsupervised learning.

In particular, if I have only 100 training examples (e.g. 10 examples of spam and 90 examples of ham), I will learn a better classifier if I first use LSM and then train my classifier, than if I train my classifier over the original documents. In the former case, unsupervised learning detects patterns over the entire corpus, which I use to discriminate between spam and ham. In the latter case, I can only use features from the 100 labeled documents, so it is more difficult to generalize.

More examples:

* What language is this document?

* Is this document about sports?

* Is this news article similar to 50 news articles that I previously marked as "highly interesting" ?


Well, for example, how about sorting out a lot of pdf documents I have in a folder called papers/ ? I do use Mendeley now but there are some leftovers from before that I really don't want to sit and sort through (not to mention the fact that I probably may have multiple copies of some of them.)


Curriculum review comittees could reduce redundancy and fill gaps by reviewing course documents.


+1 to the attitude. It's all about getting the service back up and making it better. We (collectively) tend to spend too much time trying to figure out who to blame instead of just doing the cool shit that needs to be done. Kudos!


Sadly, I simply cannot agree. I absolutely understand Marco's desire to focus on developing Instapaper, but there's quite a bit more at stake here, and his willingness to move on without even a bit of protest is concerning.

He claims that there's nothing that can be done, but there are definitely legal actions one can take in this scenario. Sure, they might not ever fully compensate him, nor convince the skeptics, but it will at least reveal the details behind the seizure, and it will send a message to both the FBI and to others like DigitalOne that could prevent further "seize first and ask questions later" style operations.


So for a one-man software shop, given the choice between:

a) Spend money and time on legal action against the FBI for holding onto his servers for a couple of days while in the process of an investigation, in order to hopefully try and make a larger point.

and

b) Spending his time and no money by actually improving his bottom line by enhancing the features of his software,

you expect any rational person to choose (a) ?


Sorry, but the suggestion that fighting for justice is somehow the thing only "irrational people" would choose totally pisses me off.

I totally understand someone making a rational decision in favor of other priorities. It's what most people would do. But thank god for people who take the road less traveled. It's to them we owe the rights and freedom the rest of us take for granted. There's nothing "irrational" about that.


A major thrust of what I'm saying is in the fact that Marco is a single indie developer. Not a large company with more resources.

Fighting against the federal government over this seems like picking the wrong battle. He got is server back in a couple of days. Obviously its likely that the feds have already cloned it but its not like they kept it indefinitely or wiped it clean.

Does it suck? Yes. Is this something he should be fighting over? Not in my book.


The road less traveled is starting and running Instapaper. Chasing the FBI is a waste of time. If you really care about the problem, start a "company" meant to provoke the FBI into accidentally procuring its servers.


This would seem the perfect situation for the EFF. At some point someone needs to choose (a) or else it will keep happening.


Perhaps. But a one-man team probably shouldn't be the one choosing that option.


Depends on the market you're in. I'd say overall, Steve Jackson Games gained enough publicity to make it worth their lawsuit in a different illegal-search-and-seizure case, especially when you add the $300k they got ($500k in today's money) from winning it. They had a stronger case, though, since the raid was directly targeted at them, and fairly carelessly executed.


I was more severely affected than marco and I'm certainly going to pursue this matter to find out what happened. I imagine the Curbed team might share my curiosity.


We were significantly harder hit than either you or Marco, looks like. Our entire stack of 3 servers - app server and db master/slave - disappeared and remains offline to this point.

I'm curious about what happened, but ultimately I put this down to an unfortunate side effect of using blades.


Great to hear that! As a customer from pinboard I really appreciated your communication during this.


Agreed on this point. You have to choose your battles, and this is a lose-lose battle. Even if he would fight, win and receive some type of compensation, that's unlikely to be greater than what you had to give up in the fight.


I wish more people thought the way you do. You, sir, are an inspiration.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: