skysight-inc/HackerNews huggingface dataset:
As a developer, in addition to retraining yourself, you also may need to change jobs fairly often. Often it's the only way to utilize and develop newly acquired skills if you want to stay relevant and make the skill acquisition worth it.

However, I think it's easy to get caught into the rat race and overlook what it means to be "irrelevant". If I look back at my coworkers who stayed behind (in terms of training and advancement), most of them have very fulfilling lives with more work/life balance and stability. They just made certain compromises in terms of having jobs thrown at them all the time or in having higher salaries.

I'm still trying to find my own personal balance here, especially as I've grown older and had my family responsibilities increase.
Are you serious? Do you have any doubt modern machinery is faster and cheaper?

40 hours/week * 50 week/year * 20 years * 10 $/hour= = 400000$
Sorry to say this.I find owncloud very buggy.
> Supercell attacks the $ 7-10 billion mobile games market,

So does every other mobile game company. Why this one is better than others doesn't open to me by reading this blog post.
Looks like a useful site. I would consider left aligning the title, writer, director and cast fields. It would help with readability when scanning the list.
The 1990s tech bubble was all about those "non-traditional" metrics like page views and "eyeballs". Turns out they are a horrible predictor of the intrinsic value of a company. So investors went back to the boring, old metrics that, regardless of industry, seem to be able to provide some true indication of the health and value of a company.

I will agree that Google and Apple aren't the right companies to compare FB with. But FB is having mobile problems, and Apple and Google do seem to have reasonable mobile strategies, so I can understand why analysts do that.
> The fact is, outside the US public transportation was never part of the Google Maps app.

What are you talking about? Of course it was.
This is a case where having a defined development process and good sharp tools can be very helpful. Here are the steps I'd use to tackle this problem code (though it's based on what you wrote above and might need to be adapted as you learn more.

1) Study how the software is actually used and design the "ideal architecture" (this may be a moving target).

2) Get the software into a version control system.

3) When a section of the code needs work, first write tests that pass for the current functionality of the module but fail for the behavior you're trying to fix.

4) As you repair code in step 3, also migrate the code "towards" your preferred architecture ... this is going to be a very gradual process so don't try to complete it in one step and use your tests to verify you haven't broken the system. This is also a good time to start inserting patterns like MVC/MVP as it will help. - http://c2.com/cgi/wiki?TestEveryRefactoring

5) When you've found "reams of copy+paste code", refactor that code into utility classes (files, whatever). - http://martinfowler.com/refactoring/

6) Establish processes for migrating the database both forwards and backwards between versions (you'll need a rollback someday).

7) Treat the database schema as source code and refactor it as you work. It sounds like you're a long way from being able to use an ORM, but have a plan for migrating the database towards the day you can. - http://martinfowler.com/articles/evodb.html

8) Get the PHP code out of the database ... that's going to be painful but worthwhile.

9) Get some help! I've used the Sonar source code quality analysis tools on Java projects for years. There's a PHP plugin for it here (http://docs.codehaus.org/display/SONAR/PHP+Plugin) and it will help you determine what areas might be worth targeting. It also helps by establishing style and practice rules that will help get a team coordinated.

One of the hallmarks of a project like this is that coding styles changed dramatically during the project's existence - Establishing a style guide (including patterns and forbidding anti-patterns) can be very helpful.

So in short ... don't "run screaming" but rather sit and think when you feel overwhelmed. If you can solve a complex problem when writing source code, you can also solve systemic problems.

Good luck!
After several "fast startups" I'm with you on this. We're doing it slow this time - no VCs, bootstrapped - and it is making a huge difference. Focus is on building a service that people will pay for so we can keep building the service instead of wasting tons of time doing the "VC money dance." It has helped tremendously in almost everything - more time with family - more time working on the product than on VC stroking - more focus on the customer.

I'm on the slow startup train and I'm never going back.
I'm surprised more people aren't just using Groovy. The performance of Groovy 2.0 on JVM 7 is greatly improved to the point where its a non-issue in 95% of situations (and you can just drop to java for those portions with no penalties).
You'll have to know the industry you're jumping into very well so you can zero in on that one process that drives all the value, or find a small opening in the moat that is the barrier to entry by knowing the industry inside and out. Also remember a startup has to have at it's core innovation, what are you going to do that the big guys can't? Maybe go make on demand ultra custom which makes their huge manufacturign investment a problem not a solution.
Right, that's a better wat to put what I intended to convey implicitly.
In fact, I just realised that I really like Ubuntu and would happily make a monthly donation to support it (and can afford to) but I've never seen anything that suggested I do so.

I can't find any hints on ubuntu.com on how to donate (though they have a shop, I don't want any "swag").

Shuttleworth has always said he wants to make it a viable business; perhaps he's worried people would donate instead of having their business buy support (or whatever). Hrm.

EDIT: I searched their site and found the donate page. It doesn't seem to be linked from anywhere; only discoverable by using search.

http://www.ubuntu.com/community/get-involved/donate
WTF hackernews?
please explain:
This: https://news.ycombinator.com/item?id=4548305
and this: https://news.ycombinator.com/item?id=4548829
When it become not acceptable to charge money for a software service. Tonido is a mature offering and works. Customers are ready to pay money for its worth. I would rather choose a software that will charge money for it rather than a free one.
Has FB sold enough stock for IOs to get a double-digit percentage? Zuck alone is controlling over 50%, thanks to Andreeson. A more interesting question is, of the stock that's been made publicly available, what percentage was purchased by IOs?

(FWIW, I wouldn't touch FB right now, either. There are a couple of high risk issues I think they have to deal with, and I'm not sure they will come through unscathed.)
Exactly. The "truth" is relative.
Heh I'd be very hesitant to visit iphone4settlement.com had I not just read the article. Something about that screams malware to me..

But I guess Apple probably knew that when they bought the domain.
Gawd. Unity, and now this garbage. Should be interesting to see how Mint does...
This is heavy handed, as is the client using this type of negotiation tactic. It's not healthy to respond this way.

Possibly I'm getting less mellow with age :-) My responses used to be more like yours, now I tend to be a bit more direct.

The ones who are approaching it purely as a negotiation tactic don't care or mind - they understand what the issues are and appreciate cutting to the chase.

The ones who really don't value my time I don't actually really want as clients...

However you approach it - and your approach is completely reasonable - the key realisation is that this isn't a question of the client not having the money to pay $dayrate. This is most likely a pure negotiation tactic to get a drop in the quoted rate.
Facebook and Twitter were funded under the assumption that they would be unregulated monopolies, so regulating them amounts to stealing from their investors.

Instead of another service that will essentially turn into DNS, I would propose just using DNS for naming. So if you're Tyler Durden you register tyler.durden.name and put an A record pointing to your DiSo server. Now you can switch providers while retaining your identity by just changing the A record.
LOL... Gittip.org is down, the URL you have in your post should be "gittip.com".
This is the beauty of the web- the transition to a sane architecture can be done page by page- without any visibility to the user. Every time you have to make a change- fix an old feature or add a new one, you replace it with the new architecture. Even if it's not a whole page- you can load in a partial with javascript. The challenge is holding back from going too deep on the refactoring all at once. Functional tests around the system have to be added to keep your sanity as part of the change process.
Just about everywhere you can store money without much risk today has very low yields. In general, if getting an entra 0.5% yield on your cash is really meaningful, you should have millions of dollars laying around.

I know of a regional credit union offers 1% interest on business checking accounts with over $1mm which is pretty good compared to rolling T-Bills.
100 years of turbulence // the role of patent pooling in the 20th century
Human brain gene map shows striking similarities
If you haven't done anything like this for the past I would say that as much as it is a pain in the ass you probably can also learn a lot from it and you will get out of the job with a lot of experience in refactoring, testing, bugfixing and deploying. You could also see it as a chance to establish a long lasting relationship and a boost in confidence and salary if you do it right.
The first thing I would do, before doing any work, would be to sit down with the client/your boss and explain just how bad the situation is, that drastic solutions are in order, and that it will take years to get this under control (with 1m LOC and 150 clients presumably all running customised software, this would take years to sort out even with a large team working on it). Unless they understand that from the beginning you will never get the backing you need to sort this out.

This might be one of the few occasions where a complete rewrite is justified (if you can keep scope limited to reproducing what you have). You've said the code is incredibly complex, and if the problem domain is incredibly complex too, you're probably stuck refactoring. If the problem domain is pretty simple (a CRM without too many extra features might be), you may be better starting with your smallest client who uses the product the least, asking for all the pain points, and things they love, about the current software, and writing a simple CRM to cover their needs which replicates the features of the current product, then gradually porting other clients over to the new system and adding new features to it, while keeping the old code-base in maintenance mode and fixing serious bugs only. If you do a rewrite you'd have to port the 150 clients over 1 by 1, and leave the other code in maintenance mode - your primary client may not be at all happy with that.

If that's not possible, you'll have to refactor it slowly while keeping the code in place, so the first step is to get it into version control, sort out a sane deployment strategy with testing servers, then try improving some small isolated areas of the code for one of the clients in isolation. Good luck!
The content continuum & why I worry about social media
(although it does leave out Otto Lilienthal)
Hmm, that's a valid point. I just have the idea of Linux distributions as being completely free and non-profit oriented. Also I'm used to the OS having no ads by itself, only on webpages. Guess I overreacted.
I also use flocking algorithm for a visualization of words on my homepage http://shuw.github.com/. I ported the algorithm to D3 here https://github.com/shuw/flock if anyone wants to reuse it
I tend to agree with you, but Groovy 2 is still pretty new. In my experience, most of the hardcode Java shops and devs that rejected Groovy (primarily?) because of speed are generally slow-adopters, and wouldn't be using Groovy 2 just because it was released a few months ago.

As to speed, I've not benchmarked it on JDK7, so I'm not sure what effect the InvokeDynamic stuff has yet, but @CompileStatic annotation helps a lot.

My fibonacci stuff at https://github.com/mgkimsal/newgroovy2 (did a presentation on groovy2 last week) showed:

fibonacci run of 30:

* pure java (not in the github) - 12ms

* groovy2 compilestatic - 18ms

* groovy2 dynamic with typedefs - 30ms

* groovy2 no typedefs - 500ms

So yes, while @CompileStatic groovy2 is technically approx 40-50% 'slower' in these tests, the noticeable diff for a lot of projects (especially considering file and db access will be constants regardless) will be likely negligible.
That's very similar to many other distros except you don't need to run the command.
IOS 6 Maps might be hazardous to your health
There are two type of knowledge: timeless, and changing specifics.

API, libraries, and platform are specifics. It's something you learn and throw away (eventually).

Continuous deployment, unit testing, debugging, basic programming knowledge, are timeless.

One thing to keep in mind: Even timeless knowledge will be subjected to decay if you don't practice it.
> Why does he get 65 days off a year?

Because it's easier to multiply by 300 than by any 340
what does inherit mean here ? You were most likely not hired to refactor 700KLOC, because they would not have been in that position if they had a decent engineering process in the first place. Obviously, do not rewrite from scratch: it is a 700 KLOC piece of code so even at a completely unrealistic rate of 500 LOC / day, it would take you a 5-10 man years to do it, and I doubt the system is well specified.

First, I would focus on doing something visible for the client: show that you can deliver, and do it as quickly as possible. This means: do not try to understand everything, do not try to get a mental model of the whole thing. Once you get some buy-in from your customer and people within your client, you will have more flexibility to negotiate things, and be able to use most of the technical advices you were given.

If the customer is not willing to enter this kind of discussions after you showed you could deliver, I would just walk away if you can.
My thoughts are in line with this. Are you (honestly) being hired or promoted to fix this mess, or to keep things running?

If the former, has the incredible scale and scope of this been properly identified, addressed, and acknowledged? Are you guaranteed anything near the resources to (try to) accomplish this (including your own time, without traipsing far into overtime)? Is the current state documented sufficiently to obviate any and all future attempts to blame you?

If the latter (more likely, I suspect), well... I guess the simplest question is, do you have an agenda and an exit strategy that leaves your career intact? (And your health...)

Maybe, given the particulars, this is a real opportunity for you. But that's not spelled out at all, nor obviously implied, in your post. And given that this situation was allowed to develop to this extent in the first place, and that you have angry clients to deal with, right off the bat, it doesn't sound promising.

Do you like playing the role of unacknowledged hero who falls on his sword and is cursed by his clueless fellows, while some other protagonist goes on to get the girl?

There is a lot of downside, here. What's the upside? Do the organization's goals and commitments match your personal ones?
My tips:

Raise your rates. If you just took the gig, you'll have to wait a bit. But you should price your work such that whether they say yes or no, you have no regrets.

Expose the problem. Start inventorying the issues. Track them in the same way that you track other work. As you do things that the client has requested, track real vs actual time. E.g., "This change took 12 hours; if the code base were clean, it would have taken 1."

Estimate the size of the problem. Talk in terms of technical debt. E.g., "Module X needs 120 hours of work to bring the code to commonly accepted standards of code quality." The clients are thinking, "We have a system we paid $1m for, so it's an asset worth $1m." Expose the debt and they will have a better idea of the true value of the code base.

Look for opportunities to declare tactical bankruptcy. Once you have numbers, you can show that some portions of the code base will be cheaper to rewrite than to clean up. Help your clients make good financial decisions about when to just toss and rewrite particular parts of the code.

Don't let them make you crazy. I'd recommend something like a kanban board to track work and strictly limit work in process. This system is probably a mess because the client is insane. Develop some very clear, very firm boundaries that keep them from driving you crazy as well. If you are lucky, they will, over time, learn from you to behave rationally about software.
This sounds like a decent candidate for being put into maintenance-only mode while you gameplan a new product. It's pretty impressive the kind of distance you can get with a modern framework these days. You've got the other application there to refer to, so it shouldn't be too hard to port over the more core logic into a service layer that you can actually test.

What I like about the "start from scratch" approach, though most people argue against it, is that it gives you an opportunity to shape the entire development process and architectural philosophy of the product. Sometimes the tree of good software must be refreshed with the blood of bad projects.
Thank you, I had never heard that before.
How to stop hospitals from killing us
Couldn't agree more - let the entrepreneurs define and live the term "startup" - not the VCs.

(PS: After sleeping over pg's essay, I found it much less convincing the next day - implicitly, he's mixing up price with value, ignoring the temporal nature of markets and of opportunities - Google couldn't have been a startup in 1989 and Ford was a startup in the 1910s - and disregarding multi-product and B2B startups (premium Tibetan to Hungarian services) altogether. The clincher from yesterday - weekly growth of 7% - sounds like utter BS today.)

EDIT: Not sure why I'm being downvoted. I'm just pointing out that this article only and only defines a startup in terms of its worthiness to investors. It's as misleading as any other single-formula characterization of a complex multi-agent system. Startups != Growth, period.
It's a really good post that speaks to good style. What bleaks me out about an industry in which syntax permeates everything, is how much we tank at basic grammar, spelling and vocabulary. And then there're the hipster buzzwords that makes many cringe -

Friend me/text me. On premise. Ping me. Your very clever. That effects me.

Practical advise is out there.

http://www.wittenburg.co.uk/Blog.aspx?id=4b6816fd-ca1d-4e46-...

http://www.plainenglish.co.uk/free-guides.html
The whole Unity search thing is based around searching -everything-, not just programs, in a manner akin to Spotlight or Android's search. This isn't a radical shift on the UI end.
Um, of course Mitt Romney wants to buy something unavailable at any price: The Presidency.
I read that article before and totally agree with the point.

But that situation is different from the one we discuss here.

I do not know more information about ohmygord's project, but I basically want to point out to consider non-technical side of it. For example, people in the same team may not technical, and/or think maintaining existing solution is simple.
I was in similar situation before, I was lucky to happen to select right strategy to deal with the situation.
Mint user here.

Mint used to set Firefox's default search engine a customized (read: craptastic) version of Google that's designed to rake in the ad revenue. I wouldn't have a problem with it if it wasn't utterly useless and ugly as sin. (It looked like the Google site search for webmasters.)

Now the default search engine is DuckDuckGo. I have no idea if they have a revshare agreement with them.
The problem you will face is that you have no way to verify that you haven't broken something unrelated when you make a change, because the current behavior of the system is unknowable; you can't write comprehensive tests for a codebase that large and that bad because you don't even know what it's supposed to be doing. The chickenshit nature of PHP and the lack of a sensible type system and refactoring tools will make things even more difficult.

So, run. Seriously. You're doomed.
Illustrated over nearly 75 years of growth for Hewlett-Packard here: http://www.youtube.com/watch?v=FCOt03Y_0SM.
The culture of HN seems to be drifting slowly away from technical subjects and towards more "5 easy ways to make your shit smell like roses" Business-Insider-type posts. This has been going on for a long time. It's one of the biggest sources of friction in the HN community in my opinion.

I'm not saying that these posts are bad per se, but I would bet that most HN users like either one type of post or the other and not both. I would also bet that the Techcrunch-types outnumber the LtU-types, so trying to move the discussion towards more technical topics is a losing battle in the long run.

So here's what I'm suggesting:

1. Let submitters add tags to their posts along with their titles.

2. Let people whitelist the tags that show up on their homepage.

3. Using data from 2, it should be possible to cluster tags together, and make ad-hoc subreddits. I'm not entirely confident that subreddits are a good idea, but having the tag co-occurrance matrix would indicate whether it is or not.

Adding tags this way is much less drastic than diving straight in to subreddits, and it has a path to end up at subreddits in the end if that ends up making sense. And if subreddits don't make sense, it should at least make search work better.
I noticed this a few weeks ago and like the idea. I hope it catches on. I think Gittip could really benefit from Bitcoin integration, since it would lower the cost of micropayments to almost nothing.

EDIT: ANd yes, to be clear, Gittip is not down -- it's hosted by github if I'm not mistaken. The actual address is: http://www.gittip.com