You have three options: do nothing, settle, fight.
It sounds like you only got an infringement letter. These are normally sent out in bulk by patent trolls to any and all people they think they can extort money from. There is no legal burden to this letter. You don't have to talk to them (and you shouldn't). Don't respond to the letter. Don't take their phone calls. Refuse to talk to them. Regardless of whether you hire a lawyer or not, at this point, there is nothing to be gained by approaching them.
Eventually, they will call you. They have armies of hourly workers who go through the database of people they sent out the letters to and try to get an easy settlement from you. Don't sweat these calls. They'll ratchet up the threats via voicemail (since you are not talking to them). And eventually they'll have to make a decision. Patent trolls are in the business of making money. Lawsuits are expensive. If the cost of a lawsuit is greater than the amount of money they think they can get out of you, they won't sue you. It would be bad business. From your description, I'm guessing it would be a bad idea for them to sue you because you don't really have a lot to offer them. Even if your app makes a couple hundred thousand dollars, they won't bring a suit against you. It's a waste of their time. (They'd happily take a settlement check from you though).
If you thought there was a good chance they were going to sue you (which I don't), and you were located in the US (which you are not), and it looked like they were going to bring suit in that horrible district in Eastern Texas, you could decide to file suit against them first in another venue to avoid having your suit take place there. It doesn't look like Canada has this same issue (patent troll friendly district where most cases go for the patent trolls).
In essence, at this point, if you go to a lawyer and have them draw up a defense that says your tech doesn't infringe, you'll end up spending between $5,000 and $10,000. I don't think it's really worth it right now. My advice would be to wait until you get some sort of actual legal notification of a suit. Before that point, it's all just posturing and bluffing. Plus, you can still settle at that point (you might have to pay a bit more though to cover the added costs they've spent).
However, in the case where you think the other party is bluffing, I would not hire a lawyer right away. The other party's only enforcement option is suing you. If they sue you, then hire a lawyer.
The big issue is whether to respond. If you don't respond, they will stop contacting you after a certain number of attempts. If you do respond, you will get their attention. That can be good if you think you have a strong defense like mistaken identity or something. If I were you, I would ignore them and see if they sue.
Edit: I looked up Lemer & Company and they are personal injury lawyers, not patent attorneys. They were probably hired only to write scary letters, which is more reason to ignore them until if or when they refer the case to patent counsel for litigation.
If it was me, I'd reply with a certified letter explaining your situation as a developer, how much revenue the app has made to date in downloads and ads. Then nicely explain that you would never knowling violate anyone IP rights, and having reviewed their patent do not believe you are practicing any of the steps laid out in their patents. You are, simply using information published via publicly available Nextbus API.
Lawsuits cost money - no contingency in Canada, so by demonstrating poverty, it's really not worth suing you... period. If they come back with a real legal filing, you can always just shut down the app, or find a lawyer to help you fight.
However, I'm not a lawyer, just saying what I'd do... you situation may be different - and getting a lawyer never hurts (except the pocketbook).
My situation; inventor, lived in Canada for years... now in the US. Your app doesn't appear to be infringing (it's not doing all the stuff laid out in the claims, but the API provider most likely would be, which is why they settled)... however...
1. Canada doesn't do contingency for legal stuff, you will need to find a lawyer and need to pay up front. Get a lawyer (if you want a suggestion ping me at firstname.lastname@example.org)
2. I'd talk to NextBus about their API and license. I'd also look carefully at whatever agreement you have with NextBus about the use of their API (free/paid). If anything, Nextbus may be infringing on their license by publishing the data. Alternatively, there may be language in the contract indemnifying you. Look at all the contracts, period.
3. Look carefully at the document you were sent. It will have valuable clues; have they actually filed anything, etc.
If you're using their public XML feed/API, here's the agreement: http://www.nextbus.com/xmlFeedDocs/NextBusXMLFeed.pdf.
Tell him Joey deVilla sent you.
Call the city, talk to a city lawyer, find out what is going on here.
Firstly, don't let them strong arm you - most patent trolls blast complaints like this to many parties at once and hope a percent of them cave without the need for court.
If this did go to court, I strongly doubt you would be found guilty of infringing on these patents. Based on your statement, it sounds like you simply made an app that converts third party API data to a UI, which wouldn't come close to either patents as they are related to the actual process of tracking vehicles, which the API provider partakes in, not you.
I would simply contact them and let them know that you don't track them yourself, you use another company. Most lawyers don't understand software, so they might be assuming you are tracking vehicles on your own. If they continue to press you past that, you might be forced to take it to court.
Best of luck and please keep us informed.
I'd venture to guess that they also received a notice ...
Seriously though - you should consult with a lawyer but ultimately the decision will be yours.
Personally, I'd probably ignore them too - but I'd double-check with a lawyer first!
Since you are using their api, surely your app is covered by NextBus' licenses? I would get legal opinion on this though because even though this would be logical and expected, the fact that such trivial forms of telemetry can be patented shows that the system is certainly not logical or expected.
This type of thing is seriously depressing. Good luck.
... but IANAL so I'm not even sure if I'm reading that right.
Real lawyers feel free to tell me I am giving horrible advice.
Contact a lawyer.
I had an amicable divorce, without lawyers. Not paying lawyers meant there was more pie to go around and helped both parties behave generously. I also have a compromised immune system. Staying healthy and off medication has a strong component of managing social stuff. For example, I generally do not shake hands. So finding ways to get people to accept my choices is a big part of staying well.
It would install Chrome and/or Chrome Bar depending on what user already had.
I use Chrome on Ubuntu so do not use Adobe Flash. I have had no issues with my wifes Windows system, which only has IE and does have Adobe Flash installed.
Otherwise, I'm wondering if a Sunday morning wasn't a great time to post this. If anyone has any feedback on how I could have done this better I'd really appreciate itâ€"I naively thought that an offer of free no-strings work would be quite popular in SF but it looks like I'll need another approach. Ideas very welcome!
2. BE confident. Clearly and politely state what you want. Be prepared for rejection -- in fact seek rejection out to condition you to not care. Learn to call people by their name. It is music to their ears and they will enjoy your company more.
3. Do something that you feel is risky (but safe), like sky diving or entering a boxing tournament. Hopefully you will survive and you can draw strength in the future from this experience.
One of the "secrets" of life is we can pretend to be anything, and the longer we pretend, the more we actually change. Society will reflect back to you what you put out. Look at people and smile, they will start saying "hi" in return.
On top of what the other commenters said!
I find it the most difficult but at the same time the most efficient solution for low esteem issue.
These stickers also doubled for tracking electrical safety checkings (mandatory 1year-period for food-stuff, 2-year for ITC stuff).
The number of man-hours that are dedicated to the fancy stuff you read about on HN is a very small percentage of the work that's being done. And, unless you are brought in for your very specific expertise (which doesn't sound like it's the case), you won't be getting to do the fancy stuff anyway; though, you'll probably get an opportunity to learn from those who are.
Get a lot of sleep, make sure you keep in mind that they are looking for someone who can work within a distributed code base and practice explaining your thinking related to why you decided to do one thing over another. If you do that, you'll be fine.
Might be a good time to mention Rubber Duck Debuggging. http://en.wikipedia.org/wiki/Rubber_duck_debugging
I am reminded of an long-in-the-tooth sysadmin of my acquaintance who logged in everywhere as root. His theory - "they are my boxes. I screw it up, I fix it." I eventually realised that typing sudo every time he touched a box was no defence against doing the wrong thing.
An awful lot of sites at 1.2m views would have outsourced the running and development of the whole thing - there are entreprenuers who say its not even worth our time to code up the MVP. I find this approach sensible from a business point of view, but still it does not sit right with me.
I am supposed to have a nice website with lots of good content to attract inbound marketing - so I tried getting someone on textbroker to write an article for me. It read like a High School essay - no life, no anime. And so I will probably write my own CMS and my own content.
And pg sits there and writes his site in his own language, with his own moderation tools. Apart from the hilarious idea he could find a ten person ruby shop to outsource to, its nice to see someone taking the time to play again. Its why I like to see jgc on here too.
I am not entirely sure those thoughts are joined up (I am procrasting like crazy) but if they come to mean anything its we are playing in pg's sandbox. If the sand leaks it's his sand, and the only company this is mission critical to is YC.
* Don't manually modify database without a well-tested procedure and another pair of eyes
* Don't leave persistent problems (e.g. memory problems) uninvestigated so that you miss new problems with similar symptoms
* Don't push new code to production while operational problem is ongoing (unless it addresses the operational problem)
I'm pretty sure I've repeated this exact same sequence before with similar results...
In any case I am thankful for the detailed explanation.
Credit to PG, RTM and the rest of the team for keeping the sites uptime as high at it is.
I've always found it's a good idea to not deviate. Whether it be running, parking or anything else once you deviate from some regular behavior you run into potential problems that you hadn't anticipated.
"For some reason I didn't check the comments after the surgery to see if they were in the right place. "
More or less my point. If this wasn't a deviation from normal behavior you would have "checked the comments after the surgery" because it would have either become habit or the shear number of times you tried a fix resulting in an error would have made that more likely to occur.
No good deed goes unpunished!
People sometimes reply as sibling because they too impatient wait for the built-in delay on child comments.
Thanks for keeping the experiment going.
That would really make situations like this easier to debug. First, it can pinpoint exactly when something started happening, which in this situation might have helped you realize the problem was caused by your change. Secondly, in this specific situation it probably would have been easier to differentiate a situation where you are running low on memory vs this completely different situation.
As somebody who spent a lot of time professionally debugging large software systems when they were misbehaving (as a Google SRE), I can tell you that looking at graphs of many key metrics (disk IO, CPU, memory, then application specific things) was always the place to start when debugging a situation, because you can learn so many things right away. When did it start? Was it a slow buildup or an immediate thing? What is the general problem (Memory?, Disk IO?, CPU?, none of the above?)? Has a similar pattern happened in the past?
Then you can start to get fancy and plot things like "messages/minute" or something and then it becomes easy to see when issues are affecting the site performance and when they aren't.
If reverting code didn't fix it, reverting server didn't fix it, incorrect data is the most likely culprit(I am not claiming this should have outright occurred to you; just thinking out loud). I take it you introduced non terminating recursion by making a thread its own parent, and you made the change on disk.
But this analysis is the last thing that comes to mind when you already have introduced 2 new variables the same day - new code, new server. And an old, recurring variable(GCing too much) is in play as well.
It sounds like everything was done to fix the problem except try to figure out what the problem actually was. Why not use tools to see what the program is doing, form a hypothesis, gather data to confirm or reject the hypothesis, repeat until cause found, and then take corrective action that by this point you have high confidence will work?
I realize HN is more of a side project than a production service, but the goal is the same in both cases: to restore service quickly so you can move on to other things. It feels like a more rigorous approach would allow restoring service much faster than randomly guessing about what could be wrong and applying (costly) corrective action to see if it helps.
Besides that, in many cases (including this one), you cannot randomly guess the appropriate corrective action without finding the root cause.
I have two assumptions: 1. HN has a low priority in the overall scheme of things, 2. Self-confidence overflow :)
I was troubleshooting an intermittent problem in a piece of equipment. It had several boards full of mostly LS TTL logic chips (yes, them chips). It was the kind of problem that only happened once every other day or two. Nobody knew. So, I had all kinds of instruments attached to this thing and was watching it like a hawk waiting for a failure. It had probes attached to every point in the circuit where I suspected I could see something and learn about the source of the problem. I also tested for thermal issues with heat guns and freeze sprays, familiar troubleshooting techniques to anyone who's done this kind of thing.
Anyhow, every so often the thing would go nuts. The three scopes I had connected to it showed things I simply didn't understand. I'd analyze but couldn't make any sense out of it. Still, again, every so many days it would happen again. Changed power supplies and the usual suspects. No difference.
Well, finally, two weeks later, the other engineers in the office took pity on me and told me what was going on: They had connected a VARIAC to the power strip I was using to power the UUT (unit under test). The scopes and other test instruments remained on clean power. Every so often they'd reach into this drawer where the VARIAC was hidden and lower my power strip's voltage just enough for the power supplies to fall out of regulation and everything start beeping and sputtering. Those friggin SOB's. They had me going for days! I was pissed beyond recognition. Of course, after a while I was laughing my ass off alongside them. Good joke. Cruel, but good.
My revenge: A CO2 fire extinguisher rigged to go off into his crotch when my buddy sat down to work.
Fun place to work. We did this kind of stuff all the time. Today I'd be afraid of getting sued. People have really thin skins these days.
I liberally sprinkle my code with assertions (CS theory calls them pre-conditions and post-conditions, iirc) to crash early if the system is an invalid state.
One my pet peeves is that few programmers seem to love assertions like I do. Would love to see to comments on this.
Ah, the online forum equivalent of going back in time to kill your grandfather.
"Hacker News was down all last night."
With the internet there is no "last night" ;-) Europe - and more so Asia I assume - had to live for many working hours without HN.
Please forgive me. I know you folks tend to hate jokes on here. Don't waste your time if you're immune to corny humor. "I'm My Own Grandpa- Ray Stevens" ( with family tree diagram) http://www.youtube.com/watch?v=eYlJH81dSiw
It's also why I like to read pg's articles so much. They're so in-depth and detailed and it doesn't feel you left thinking something was left out for the sake of being hidden.
I guess the lesson is to have code that alerts you about comment loops without going into an infinite loop.
Also another lesson would be to figure out a way to have better clarity into which requests are causing a timeout on the server.
If I went to Google's cached copy, I could see threads, and then click on them. But the front page was down. But I could see individual threads.
When I tried to edit mine, it simply said "Thanks, scotthtaylor"
So, are we back on the new server? Or was this too much for one transition :)
is the note about surgical instruments left inside. It seems just like a coincidence that this happened so close to the switch to the new server, but I wonder if it's something deeper in the subconscious mind; the change to the new server is quite a big change (I know I feel that way when I have purchased a new computer (it feels different - even if it's running the same linux as before)) and could have upset the normal checks one has in place when tweaking things.
True hacker spirit.
Have you considered avoiding dipping into the repl to do these kind of fixes? You don't owe any of us any sort of uptime guarantee, and you're a much better programmer than I, but it strikes me as odd that you would hack against the live server instead of create some tool that would make it so you couldn't take down the whole site when making this kind of fix...
So far, it has been working great.
Now that it's back. I realized that it's finally time to create an account :)
Just wondering as to why HN isn't hosted in the cloud? (e.g. on AWS, Rackspace etc.). How do you backup all the data?
I agree with the other comments regarding breaking projects into small chunks. I have found success just finding the most recommended resources and then organizing it in order of beginner to advanced. Build your own curriculum with all of the resources you have gathered.
Structure is important even if it needs to be self imposed.
Don't be too concerned with being super efficient in what you learn because resources will overlap in content, some more than others. The overlapped content is usually fundamental and never a bad thing to go over more than once with a different perspective.
You seem to be very driven and kudos for attacking your personal development full steam.
Focus: don't try and learn about every topic
Patience: it seems you simply do not stick to one subject long enough to build some product you are proud of. Remember that learning takes time and practice.
Meta-learning: get an idea of how you learn the easiest. As you said there is tons of information. You'll have to figure out what helps you most: Real life courses? Practice? Video courses? Short tutorials? Books? Peer programming?
So, once you have your focus, decided to be patient and know how you learn the easiest, go and find out what is available on your topic of interest.
This depends per topic (for iOS, for example, there are loads of pretty useful videos available for registered developers). Often you can find nice lists of 'where to start', for instance on StackOverflow.
1. Decide on what to build2. Break the project down into small chunks (i.e. add dropdown)3. When you get stuck, stop reading as soon as you find an answer that works and get back to developing
You can always go back and make it better later. Just make sure you're moving forward with your projects.
if you're "lost within tons of information about it", it sounds like you are trying to gather everything you can. learn how to evaluate sources and pick a small handful to focus on, learn how to figure out what minimal info you need to to learn, and go from there. focus on the minimum viable info needed to accomplish your task, and go from there. minimize your inputs to what you need to have something to show.
I've used it and recommend it to my parents and friends. Also, I'm an employee...so forgive the shameless plug.
Ended up writing my own system- securely store the cc info yourself, get subscribers' consent, resubmit on a monthly cronjob.
It does require more maintenance (keeping a fixed monthly fee is very straightforward and well-supported by a number of providers) but it does work all right.
W.B. Yeats, "Pardon, old fathers", the prefatory poem to the book Responsibilities. (I think.)
If you can make one heap of all your winnings And risk it on one turn of pitch-and-toss,And lose, and start again at your beginnings And never breathe a word about your loss;
Discussed on HN here: https://news.ycombinator.com/item?id=3531160
The original author took a break from the web but it's now being maintained by a couple a loyal fans
In the circumstances you describe, the odds of your business throwing off fuck you money are about the same as if you were in Silicon Valley - almost zero. Yes, being in the valley improves your odds some, but the vast majority of startups still go bust.
The only way to lower your odds is to do nothing. Then you will never have the experience gained from having failed on your first, second and third forays into entrepreneurship. Standing still, it is impossible to change direction.
Make something and see what happens because what happens might be good fortune.
VC backing is nice but not a bliss on all sides. In your situation, without VC funding, you'd keep your freedom, you'd not be distracted by money, you can't run out of money and your strongest asset can't go anywhere, cause that is yourself.
With respect to the latter, this means that it is wise to foster this one asset: improve your tech skills, market knowledge, business skills and your network (and networking skills). If you're someone dreaming of your company you'll find this fun to work on.
Having a fulltime job that helps you improve relevant skills is a plus, as is a job / boss where you could reduce working hours (and salary of course) in small steps.
There's a few ways to go from here. You could work per hour. The cool part is that this would enable you to free yourself from your daytime job bit by bit. The downside is that it requires work. As you describe it, this is limited in your area, but perhaps you should do a more in depth market analysis to be sure? Also, you could work for people remotely via the internet, there are many websites that bring work and workers together. Whether this can help you will depend a bit on what country you live in, and how your monthly wage is compared to that in other countries.
The other option is to bootstrap your own product. Read Tim Ferris' 4 hour workweek for inspiration. This depends on a good idea, a bit of luck, how you execute it and your patience. You can balance your webdesign skills a bit by using tools like 'Bootstrap'. Don't worry too much about this part if you are building your own product, look at Reddit, Amazon, Hackers News: the relation between use and looks is pretty noisy!
It is not impossible and bootstrapping has been preferred by many over VC money. Given your personal situation, you do need a lot of patience and put in a lot of time and effort. But as long as you learn from it, and enjoy it, it is all worth it.
If you don't have time, skills, freedom or money for a startup, can't make someone else to do the hard work for you otherwise, then you can't really start up a programming something business.
Solutions would be to decrease your liabilities, for example get rid of the mortgaged house and/or get a less time consuming job. Your family might have something against that, though...
Other than that, start a business around a website. Maybe something around bitcoins. Maybe a game. In this type of thing time to completion doesn't matter, user support or sales almost doesn't matter... Of course, lack of skills does matter a lot there...
If you have time to spend on the product then you also have time to spend on the research, the marketing, the promotion, and the interaction with your customers.
A business isn't purely about the product - there is so much more you have to do to make it successful.
In some ways, Google is fairly bad about following standards. On normalmail servers, if you send to a non-existent address, the server willreply to let you know about your mistake. Google doesn't do this. Thereason they don't has something to do with their spam handling, and thecosts of spam handling, but it's still against the conventions of emailto not let people know that the address they used doesn't exist.
If you are really lucky, the wrong address your Mom used does notexist, and the message she sent was never saved or seen.
The only way you could test if the account exists is to try registeringthe mistaken address.
Well, I've possibly lied a little bit; Google supposedly saveseverything, including spam, so even if the email could not be deliveredsince the address doesn't exist, google may still have a copy of themessage sitting somewhere.
If the mistaken address is actually real, then attempting to track downand contact its owner might be helpful. The odds of success are bad, butit can sometimes work. Call me overly optimistic, but I like to believemost people are good and would help you out.
If you are really concerned you should research the recovery process for affected customers when companies are hacked and lose massive and broad sets of customer information.
You should not bombard them with scams and spam to get your mom's old email blacklisted, that is an overreaction and most likely you will just cause the other person inconvenience.
Also, go ahead and get set up with an identity theft monitoring service. You'll know the instant a new credit line or address change is made.
Like others have said, the vast majority of people have no interest in identity theft. You realize that as a manager I have access to hundreds of applicant's passports, driver's licenses, etc.? You know how many people see your social when you apply for a mortgage? Ever considered how many average restaurant servers could steal your credit card number?
Anecdotally, I sold my car to a dealership which years later I realized had my social security card and birth certificate in an obscure compartment in the car. Probably the worst documents to lose. Nothing came of it.
Even if you manage to reach Google and they somehow delete that one email from that guy's inbox, how can you know that he hasn't already saved the information? So, instead of trying to solve this from the gmail side, why don't you look at the other one? Contact your bank, let them know and have your card numbers and passwords changed, start the process of getting a new passport maybe and in general "protect" yourself by making the information that guy has useless.
But I agree on the "relax" part too, I mean, how many of us would take such an email seriously? Chances are he/she thinks "Oh, those Nigerian Princes are advancing their techniques..", laughs at it and marks it as spam.
If it reaches someone, that is - and it's quite possible it doesn't.
But, yeah, my advice would be to let everyone know and eventually make all that information useless.
Good luck and let us know if something happens! :)
(In case this is the question you were asking: there's no reliable way to hack into any of the major e-mail providers that I know of. Getting access to another's account is highly unethical, not to mention illegal; it's unlikely to reduce the number of problems you have, especially if the risk is less "caught for being a foreign spy" and more "identity theft".)
E.g. You've been selected as our daily winner. You will be rewarded a brand new Apple Phone 5!! Visit here to claim: <insert fishy URL>
Maybe they'll notice all the others from the same account and mass delete them all without opening the rest.
but i agree with other comments here, and wouldnt worry 'too' much.
maybe you can send a kind mail informing of what happened, and request to delete the same.
No advice here, just letting you know what I would have done if I were the recipient.
Word it nicely but firmly.
I am NOT a lawyer, ...
Basically, browsers support SVG.
And frankly if you are in a disagreement you need to have constructive suggestions rather than abstract disagreements like "you don't have the passion". And yes a statement like "This could be a million dollar company" is wonderful, but it doesn't mean much if you run out of runway. If you're running out of runway is there any revenue coming in? Are there areas you can cut back on? Are there better ways of investing the resources you have left? Maybe the CEO shouldn't be doing the pitching at this point â€" maybe that's gig goes to another person?
he thinks the best path is an acquisition so that he can take the team and start a new company
Most acquisitions are for the team, so if the company gets acquired, its unlikely that he can take the team to start a new company.
Also, if you really are growing like crazy, why are you having trouble raising money?