Hello, World – Zerodha, India's largest stock broker - <AUTHOR> https://zerodha.tech/blog/hello-world/ <comment><USER3> There is some reports that they sell your contact information to shady investment marketing companies. Many people have observed a sudden influx of calls from small, unheard of investment companies calling them up with investment offers, after they have signed up with Zerodha.

Also there have been much publcised issues with futures trading on their platform, with a court ordering them to refund a large sum to an invester.

There also have been issues with outages:

"Unfortunately, the steep increase in client base and consequent surge in orders has led to several bottlenecks because Zerodha's infrastructure has not kept pace.

The system conks off often and it is common to find traders expressing their angst against Zerodha, especially on days of high volatility.

Yesterday was a textbook example of this.

The news about hostilities between India and Pakistan led to a sudden surge in volatility.

Traders scrambled to take new positions or cover their existing ones.

However, Kite, Zerodha's flagship trading system, was down and out.

It stopped taking orders, which is an unthinkable eventuality given the mayhem that was being witnessed in the markets at that time."

From [https://rakesh-jhunjhunwala.in/zerodha-held-liable-to- compen...](https://rakesh-jhunjhunwala.in/zerodha-held-liable-to-compensate- traders-for-loss-due-to-network-failure/)

<comment><USER4> I've talked about the technical issues in a couple other responses on this post.

About spam, we've been working with the capital markets regulators, cyber crime units (Police), and TRAI (telecom regulator). It is a nasty issue that plagues all capital markets institutions in India. I'd gone into some detail on the data leaks on this Reddit AMA last year: [https://www.reddit.com/r/IndiaInvestments/comments/bhv18e/we...](https://www.reddit.com/r/IndiaInvestments/comments/bhv18e/we_are_zerodha_indias_largest_retail_stock_broker/elw2gsx/)

<comment><USER3> Ah..Ok, so contact information may have been leaked at various stages of the regulatory process or even at the Telco..

Good that you are taking action on the spam callers and hopefully other improvements have reduced the service interruptions. The regulatory environment possibily does not look with kind eyes on new entrants in the financial services industry. So I think you might have had many struggles to reach where you are.

I really didn't intend to shower negative sentiment about the service, only to highlight a few complaints I have heard, but later I saw it had become the topmost comment.

</comment></comment></comment><comment><USER5> _All of our performance-critical, high throughput services are written in Go. We have not received any unsolicited advice asking us to rewrite everything in Rust or Nim (yet)._

HN post is going to change that real soon..

<comment><USER6> Look forward to their 2021 tech post "How we migrated 344,245,587 lines of Go in 343,454,346 of rust and increased performance by 1.000034454%! /s

</comment></comment><comment><USER7> I like the varsity website: [https://zerodha.com/varsity/](https://zerodha.com/varsity/). It has very good educational content on Stocks, Currencies, Commodities Markets, and Investing. I really like the last chapter, Innerworth: [https://zerodha.com/varsity/module/innerworth/](https://zerodha.com/varsity/module/innerworth/)

<comment><USER8> Thanks for sharing this.

</comment></comment><comment><USER9> Kailash Nadh, zerodha's co-founder, is an active investor as well through the rainmatter startup incubator [0]. There's been quite a boom in the fintech space in India for quite some time now, but zerodha is one of the first generation companies that survived through thick and thin. Indian fintech and edtech companies invite a tonne of interest from YC, in particular, and so, dare I say, the going has got a bit easier in the post-Jio, post-UPI world.

That said, I don't get the attractiveness of active-passive stock brokering. Indexed funds (mutual funds) remain a better investment vehicle for the casual passive investor [1] (though some doubt that [2]), as this famous bet [3] and this famous pre-IPO advice to googlers remind us [4].

Don't have a horse in the race, but in India, apart from coin.zerodha; groww.in and smallcase.com are two of the many new-age mutual / indexed fund companies.

[0] [https://rainmatter.com/](https://rainmatter.com/)

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

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

[3] [http://longbets.org/362/](http://longbets.org/362/)

[4] [https://web.archive.org/web/20070417031443/http://www.sanfra...](https://web.archive.org/web/20070417031443/http://www.sanfran.com/content_areas/home/view_printable.php?story_id=1507)

<comment><USER10> I'm not an expert in trading, but I thought that you could only invest in the indexed/mutual funds available in your country?

I'm not sure your average Indian can, say, start putting money in any Vanguard fund available to Americans.

<comment><USER11> You can directly invest in NASDAQ and NYSE via [https://greentiger.co/](https://greentiger.co/)

It's a YC funded company too.

<comment><USER10> Lol thanks. Love how their design is so heavily "inspired" by RobinHood :-)

</comment></comment></comment></comment><comment><USER12> This was an amazing read. Thanks for the post. While leading a really small tech team for a fast paced and ever-morphing world of Esports in India, this was a really helpful (It looks like your team plays a lot of CS:CZ. SoStronk is our product #ShamelessPlug). This point of yours caught my attention.

>Be extremely wary of technical debt. Know when to scrap and rewrite systems. We have scrapped and rewritten the majority of our stack, including our critical trading platforms, multiple times, improving them significantly with each iteration. These are tough decisions; extremely important trade-offs. Of course, non-interference from non-technical management is incredible luck.

This is what i have always struggled with. I fear the day someone asks me the version of a few web frontend libraries we use. Being debt free from day 1 is a bit farfetched for our industry. So the balance between "work on that tech debt" vs "build new features" always tips towards the latter. The philosophy till now has been to get it working and don't change what ain't broke. But make sure good engineering practices are always in place as much as possible. Still figuring out where and how do i invent time to fix tech debts and/or rewrite something

<comment><USER13> If you have a small team, don't spend too much time reading what a company with 1000 employees does. Decision making and risk calculus doesn't match. At all.

With small teams your job is to keep the factory lights on as long as possible, till the cash starts flowing predictably. If you have survived long enough for that, then you can think about tech debt.

<comment><USER14> Spot on.

If yours is a small team and if many things are keeping your team busy - <USER2> address a technical debt head on until you can afford the luxury or until the business demands warrant for it. Most engineering team focus too much on technical elegance and go overboard. Rewrite culture can become nasty if unchecked.

</comment></comment></comment><comment><USER15> Was able to a full remote account opening on the platform without a single phone call or courier of any documents

Customer onboarding + KYC is a big deal in India and this just surprised me as to how seamless it has become. My earlier "demat" account had simply so many hoops to jump through. Neatly done

I loved this ```Neither large teams for the sake of "growth", nor 10x ninja developers, are meaningful. What matters is that a group of good developers, no matter how small, are able to work well together.``` As a software developer myself , couldn't agree more. Team members who can put of fires of each other , build really resilient organizations! , in your case it shows

<comment><USER4> Thanks :) The online on-boarding is the result of a multi-year effort of convincing the regulators of the advances in tech.

</comment></comment><comment><USER16> I am just amazed a 30 member team pulled of such an engineering feat. Great job , I am happy to see such strong engineering teams coming from India.

<comment><USER17> Agreed. I am mighty impressed.

</comment></comment><comment><USER18> > Minimal "AI/ML" for image and document recognition as an aid to operations.

Thank you, for not overhyping an ML deployment, and instead accurately describing the scope and purpose. Also seems like a very good fit for the problem space.

Too many times you'll see that section morphed into some weird marketing technobabble.

</comment><comment><USER19> I literally highlighted every paragraph of this post. So many things to agree with.

I'm really looking forward to the breakdown of much of what has been teased here.

Top of mind: Is Postal the self-hosted transactional mail server ([https://github.com/postalhq/postal](https://github.com/postalhq/postal))? Been looking at using this for an idea, and wanted to know if there are any obvious gotchas to look out for.

<comment><USER20> Postal is an amazing project. It just works out of the box. No much config required apart from the DNS. You can set the postal worker/thread count on the Postal config and Mysql connection count based on your machine and that would do. Finding the right numbers based on the CPU/RAM would be trial and error. We were able to achieve over 100 mails/sec on a 36 core system.

Their github issue tracker is pretty active: [https://github.com/postalhq/postal/issues/](https://github.com/postalhq/postal/issues/)

This was a discussion we had regarding scaling of postal: [https://github.com/postalhq/postal/issues/697](https://github.com/postalhq/postal/issues/697)

On the same line, you should checkout [https://listmonk.app/](https://listmonk.app/) by @knadh and we use it internally for sending email to our over two million users.

</comment></comment><comment><USER21> I hope all the positive replies here are from those who actually used Zerodha themselves over a period of time. When I tried it last year, the website was buggy and even saw HTML errors in response. I moved away to a traditional broker as a result of that.

<comment><USER4> As I mentioned in another response, sorry about that. We've had three incidents (intermittent degradation of service over the last two months that lasted 7 and 30 mins respectively). There were two similar incidents last year.

Not sure what you mean by "HTML errors", but apart from these unfortunate incidents stemming from legacy infra dependencies, there are no issues, and we cleared a billion trades last year.

Not sure if you noticed, the volatility over the last two months caused all top five traditional mega-brokers to go down for hours multiple times over several days. Of course, none of this should matter to end users, but I just wanted to say that a lot of these issues in the industry are because of the ageing underlying infra. Thanks.

</comment></comment><comment><USER22> I have been closely following the progress of Zerodha in such a complex market and also an early customer (not now) for them from the time of its launch. With some of the best competitions around like Sharekhan, 5paisa, and Karvy it was nice to see how they started with zero brokerage concepts like Robin. I did not know it is now the largest stockbroker in India. And really nice to see the tech blog starting. I thought it would be a larger team and using a different tech stack and never expected this. And yes, like-minded developers really add more value to the product

</comment><comment><USER23> Recently came across Zerodha and had to set it up for a friend. Really good UX, and they've done a good job maintaining with the rapid tech progression.

Also, thanks for the ERPNext.org suggestion - sometimes I wonder how many open source gems I have yet to see. (No, please don't link me to one more awesome-X list :P)

<comment><USER4> ERPNext is an amazing piece of FOSS tech that deserves a lot more visibility.

</comment></comment><comment><USER24> There is also a high-tech stock broker for Chinese/HK/US markets - FUTU[1]. No tech blog yet. They have an open[2] Python API though.

[1] [https://www.futunn.com/](https://www.futunn.com/)

[2] [https://github.com/FutunnOpen](https://github.com/FutunnOpen)

</comment><comment><USER25> A lot of good tips in there. Thank you for sharing. One thing grabbed my attention...

> Hybrid infra. Physical racks where numerous exchange leased lines terminate > + AWS. Sometimes, these leased lines go down when the civic body in Mumbai > digs up roads.

Isn't it better to fully rely on Cloud and Infra providers in order to completely avoid such instances?

<comment><USER26> My guess is that the leased lines are a requirement to connect to their partners.

<comment><USER4> That is correct. Have to have physical racks at approved data centres to terminate exchange leased lines. System audit regulations means that exchange approved auditors walk into the data centres and look at the racks and verify compliance :)

</comment></comment></comment><comment><USER27> It would be great to see a discussion about using Flutter vs everything else they tried. Same wrt to Vue.

<comment><USER4> The first version of our web trading platform was written in Angular. It quickly got out of hand in complexity (and we felt Angular had a learning curve that was unwarranted for a frontend lib). The bundle sizes were also big. Then the Angular version fiasco happened. Vue turned out to be far easier to understand and work with, was faster in our benchmarks, and smaller in size.

With Flutter, we initially had a native Android app and a React Native iOS app. Managing two codebases was obviously painful, and React Native had significant performance issues, and we also struggled with the lack of stable libs, and the breaking changes between releases. Flutter came along and we were able to share 90% of the codebase across Android and iOS apps, and were quite happy with 60FPS rendering of native UI.

<comment><USER28> How did you find writing your apps in Dart when using Flutter? That was one language I haven't been in a rush to learn but the performance metrics you talk about can be quite persuasive.

I've heard a number of people having issues with React Native. I'm curious if that is just an immaturity thing or something more fundamental.

<comment><USER4> Dart is alright. For being able to use Flutter, it's a fair trade-off.

React Native, it was both. Fundamentally, it uses a JS engine that acts as a bridge, and that can be a performance bottleneck depending on the usecase.

<comment><USER29> Thanks for the response!

Flutter sounds like a good compromise between Native code (Swift/Kotlin) and React Native then.

If you need high performance but no code sharing - use Native code (Swift/Kotlin)

If you code sharing but okays performance - use React Native

If you need both high performance but code sharing - use Flutter

</comment></comment></comment></comment></comment><comment><USER30> If anyone from Zerodha tech team is here, I wonder what's the reasoning behind Zerodha's weird 2FA setup? A static password + a static pin is not really 2FA IMO. What's the problem with supporting standard hardware or app based 2FA that requires an OTP?

<comment><USER4> Hey, you can turn on biometric 2FA on your smartphone, or use TOTP (Kite web -> My profile -> Password and security).

The static PIN is a legacy hole that has to be plugged. Coincidentally, we wrote to the regulator about this exact same matter recently. We'll hopefully see a regulatory announcement mandating "real" 2FA for everyone.

<comment><USER31> "The static PIN is a legacy hole that has to be plugged. "

...and probably never will be.

</comment></comment></comment><comment><USER32> Bootstrapped, 10 years old and their tech looks great (from a customer UX perspective). Cool that they're launching a tech blog. I've learned a lot from business engineering blogs over the past decade

<comment><USER33> New graduate here. Can you share some blogs which could help me ?

</comment></comment><comment><USER34> Very interesting. I haven't used this but it sounds very impressive. Cool takeaways. Nothing useful to share except that I enjoyed the write-up.

Interestingly, I've learned a lot about Indian operations from your comments regarding this (like telecom operators stealing and selling customer data, etc.). Fascinating!

</comment><comment><USER35> Fantastic read and very elaborative.

</comment><comment><USER36> Can you stop using third party trackers like google? I have network wide advt and tracker blocking with PI hole and the events links in the app doesn't load because googletagmanager domain is blocked.

</comment><comment><USER37> They screw their customers atleast once every month with technical glitches resulting in huge loss for the day traders,who are their major customers..and they are never sorry about it.

<comment><USER4> Hey, sorry about that. And we're always sorry about technical issues when they happen, and 9/10 times, they stem from systems outside of our control.

The underlying infrastructure in the Indian capital markets is very constrained and was not really built for the kind of scale we're operating at in 2020. The next biggest broker processes only a fraction of our daily volumes. So it really is a matter of scale, industry wide.

To give you an example, the leased lines NSE (National Stock Exchange) offers to brokers to send orders take up to four months to commission, and each line has a max capacity of 1000 messages / second. We've been processing close to 8 million trades a day. So you can imagine how painful things can be.

We've been working hard over the years to reduce legacy market infrastructure dependencies and have been making significant progress.

<comment><USER38> Wait, so what's the problem here?

You're processing an average of 1.33 million trades/hour. Let's double that and round up for peak traffic, that's 3 million trades/hour or 833.33 trades/second.

Unless I'm missing something, you only need 1 line. What's the problem here?

<comment><USER4> That makes it sound like the only thing involved in stock broking setup is pushing messages through a line :) Market volatility can cause several hours worth of orders to come through in a single burst. What goes on inside a stock broker is actually incredibly complex. I guess that warrants a long blog post.

<comment><USER39> You bet, it does. With a case study would be interesting to read. At least that is worth for all the loses on that 1/10 because of your technical issues.

</comment></comment></comment></comment></comment><comment><USER40> Are there any good resources for illustrating the technical components of a brokerage? I haven't seen many.

</comment><comment><USER41> Zerodha.com seems to be banned in Tunisia. Is that because of spam or due to some regulations in India?

</comment><comment><USER42> Pretty modern tech stack for a ten-year old company. Did they do many rewrites?

<comment><USER4> We did indeed. The most critical components have been rewritten and refactored multiple times as we have grown.

</comment></comment><comment><USER43> Do you guys provide bug bounty?

<comment><USER39> Yes they do provide bug bounty and I am still waiting for API credits from past 3 years for finding a bug in API, where anyone can use it for free.

It is great that they fixed it immediately after I sent them the details. Thanks to Nikhil Aralimatti (Business Analyst), who promised that the credits will be there in my account EOD. I should have asked if they live near a blackhole, because it looks like their EOD has not yet come for 3 years.

<comment><USER4> Apologies. This definitely would've been a genuine case of human error or oversight. There is no logical reason to not issue API credits that were promised. If you are still interested, please write to me and I will get the credits added.

<comment><USER39> Surely interested, if it's lifetime credits. Because, that's what I saved zerodha from everyone else using your service for free. Unless it is lifetime credits, I don't want to take pain migrating my integration to zerodha for few months of free credits.

I am sending you an email with more details.</comment></comment></comment></comment>


HiveWay: A fork of Mastodon with BlockChain slapped on top - <AUTHOR> https://github.com/hiveway/hiveway/blob/master/COPYRIGHT <comment><USER2> Fucking fucks! Stealing, rewriting Git history to make it less obvious and breaking the agpl rules. Dickheads!

<comment><USER3> True, basically another crypto-bullshit project based on stolen code. This, besides, violating the GPL license.

</comment></comment><comment><USER4> Good overview: [https://medium.com/we-distribute/hiveway-io-shamelessly- rips...](https://medium.com/we-distribute/hiveway-io-shamelessly-rips-off-of- mastodon-and-slaps-a-blockchain-on-top-for-some-reason-57b7aba3e84f)</comment>


[INFRA-7524] migrate Apache Subversion project over to the git repo - <AUTHOR> https://issues.apache.org/jira/browse/INFRA-7524 <comment><USER2> Well, despite the initial "haha" reaction, I feel bad for the Subversion project team for all of the attention/politics they're going to get from this.

As you can see on the ticket, they'll already getting the usual Apache internal politics of "that's not how we did it in the 90s!" reaction to any infrastructure/tool changes.

And, with showing up on HN, they'll likely have everyone snickering at how Subversion is so obviously inferior to git that even their own dev team doesn't use it anymore.

When really they're just trying to do their job, with the tools that work best for their situation. (I assume, I have no internal knowledge of their decision, I'm just assuming good intentions.)

<comment><USER3> This is an April Fools joke.

<comment><USER4> No, it isn't.

<comment><USER5> Yes it is.

See, discussing is fun.

<comment><USER2> If it is, it's incredibly well played by Greg Stein. He's riffing off the oft- lambasted git/svn politics, private lists, etc. bureaucracy of Apache, which, to me, made the ticket seem really believable.

...will have to wait until 4/2 to see whether I'm a sucker or not. Although perhaps that means that I am either way. :-)

<comment><USER5> It seems you are a sucker. (With the utmost respect, of course)

[https://issues.apache.org/jira/browse/INFRA-7524?focusedComm...](https://issues.apache.org/jira/browse/INFRA-7524?focusedCommentId=13957226&page=com.atlassian.jira.plugin.system.issuetabpanels:comment- tabpanel#comment-13957226)

<comment><USER4> Damn it. I was _so_ sure, which is what makes this so clever, I guess. Well done to Greg, Jim et al

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Obviously Subversion is important from a historical perspective, there are so many repositories out there will need to be supported for some time, but it does seem like a flawed enterprise to keep actively developing Subversion. Wouldn't that time be better spent on a platform that's viable, like git, Mercurial, or some other experimental platform that might make a big breakthrough?

Everyone's bailing on that project, including Subversion itself. Isn't that a sign you should, you know, move on?

<comment> TD-Linux We still use subversion for binary file tracking - specifically Altium files and the like. In thus case, we heavily use the locking feature. Git does not fit well when merging changes is nearly impossible. In addition, the local copy size for Git would be way too large.

<comment><USER7> Would git-annex be a good fit for your use case?

<comment> TD-Linux I'd somehow missed this! Looks awesome. We already have started using git for some side projects that are public. Again, no central locking database, though I suppose we could use something out-of-band.

</comment></comment></comment></comment><comment><USER8> As a terminally gullible person, even I have doubts the Apache bureaucracy could really be this incredibly stupid.

April fools?

<comment><USER4> I have doubts anyone could be so incredibly stupid as to raise an issue in the INFRA JIRA as a joke. Note that requests are made to the ASF infrastructure team by creating issues in this project, such as provisioning and maintenance. Obviously @jimjag is taking a dim view of the request, but that's for different reasons; the (perceived) lack of transparency by the PMC when making this decision. However I think getting the infrastructure team to migrate a repository just for the LOLz would be seen even less favourably.

<comment><USER4> Or not...

</comment></comment></comment><comment><USER9> This is an example of a pretty good april fools joke - Enough to cause an emotional reaction, but not so far out there that it is obviously fake.

</comment><comment><USER10> Can't tell if April fools joke or serious.

</comment><comment><USER11> April fools joke, obviously.

</comment><comment><USER12> I hope it's an April Fools still, but here it is on Github:

[https://github.com/apache/subversion](https://github.com/apache/subversion)

<comment><USER13> The mirror to git exists since quite some time. It's a read-only mirror though.

</comment></comment><comment><USER14> April fools! Take a quick look on the history tab:

>> Tony Stevenson made changes - Today 16: Comment [ Pfft! Happy April's fool!

>> For immediate release: Apache Subversion votes to rename itself Apache Irony, creates a black hole and disappears. ]

</comment><comment><USER15> It's now official: "April Fools: migrate Apache Subversion project over to the git repo" \- best tech April Fools yet. Pure genius.

</comment><comment><USER16> Is this an April fool's joke? The discussion seems odd.

I LOLed

<comment><USER16> Seriously? Downvoting? Did you actually read the discussion?

"I would like to point out that the new community dynamic for git-based projects is different in many salient ways from a traditional subversion project. Voting in private, or even decisions by fiat of the chair, are most welcome in the new regime. It is good to see the subversion project embrace this new mode of project development in their smart exodus from the chains of the past." Joe Schaefer</comment></comment>


How Google Builds Its Maps—and What It Means for the Future of Everything - <AUTHOR> http://www.theatlantic.com/technology/print/2012/09/how-google-builds-its-maps-and-what-it-means-for-the-future-of-everything/261913/ <comment><USER2> I think this has been posted already. How does the duplicate detection work?

Good article nonetheless.</comment>


Ask HN: Lessons learned from building internal tool team? - <AUTHOR> I am in the process of pitching building an internal tools department at my company which is has been investment free since it's inception 17 years ago. I've been with the company for roughly a year now, and one of the areas I've noticed we've struggle in is coordination. At a certain point the company grew 5x over a short period of time, and then had to quickly scale back their staff to weather the economic crisis. During this period of growth, there was some efforts made to build tools internally, but there wasn't any particular objective or goal in mind, so most of the tools were very difficult to maintain. I've gotten buy in from my boss on the idea of taking our build out of internal tools seriously again, and I want to make sure I don't set ourselves up for failure again.<p>Really long winded way of asking, if you were tasked with rebuilding your internal tools from scratch, what would you do differently, or what do you wish you knew today that was impossible to know 3 years ago? <comment><AUTHOR> My personal thought is to start with a small project that has a high value but low risk of failure. I've convinced my boss the need for an intern, and he's going to work to make it happen. When I was hired, I was tasked with what has somehow been an impossible task to finish(I'm the 3rd person that got close to finishing but got put on products before I could rationally finish it). And after much soul searching on why I personally couldn't finish it before I was asked to help out on our products, I believe the root cause stems from the perception that our internal tools are secondary to our success. In this logic, we're increasing the amount of manual labor it requires to get our products shipped out, increases the stress of many people in the process by it being wildly inefficient, and it reduces our ability to focus on generating more value from our product.

So I have a solid plan for the project, I've got the core system written so that on day one the intern can get in and familiarize themselves with the company and problem they're going to solve. I have a rough road map splitting the project into two 6 week cycles, where they'll be asked to demo something daily in the first few weeks to ensure they're not getting stuck and frustrated. I've got buy in from all individuals the system impacts to provide insight when they can.

Does this sound reasonable? This is my first foray into having a leadership role, so it's exciting and scary at the same time.</comment>


What if fats actually dont make us fat - <AUTHOR> http://www.nytimes.com/2002/07/07/magazine/what-if-it-s-all-been-a-big-fat-lie.html

<comment><USER2> Single page version: [http://www.nytimes.com/2002/07/07/magazine/what-if-it-s- all-...](http://www.nytimes.com/2002/07/07/magazine/what-if-it-s-all-been-a- big-fat-lie.html?pagewanted=all&src=pm)</comment>


Pi, Newton and people - <AUTHOR> https://www.pipipi.co/blog-pi-newton-and-people <comment><AUTHOR> Developer here</comment>


Everybody please calm down regarding WikiLeaks and Julian Assange - <AUTHOR> http://jacquesmattheij.com/Everybody+please+calm+down+regarding+WikiLeaks+and+Julian+Assange <comment><USER2> I concur with the post, but may i say no? (to calm down).

is a coup illegal? (rhetoric)

imho, we are approaching an intersection of journalism revolution. Nelson Mandella was in prison 27 years. Let's say there was an outcry of similar kind(and occurred frequently); wouldn't there be discussions about the rights/wrongs of Mandella now?

A story from the past: <http://www.guardian.co.uk/world/2006/oct/07/theobserver> : about Anna Politkovskaya who was shot dead. Let's say there was a retaliation as what we see now- we would have see a little rift? wouldn't we?

I say keep up the pressure, but in (possibly)ethical ways.

</comment><comment><USER3> "The problem that we have at the moment is a complicated one, and what the story really is hinges on the fact that we do not _actually_ have proof that something more than a stupid move by a stupid Swedish prosecutor without a case is actually happening."

Why would you need proof that it is something more than a stupid move by a prosecutor. That's the wrong way round.

Assange is innocent until proven guilty. The onus of proof is on the prosecution here to prove their case.

The fact the case was dropped based on the evidence by the head of the prosecutor's office in the primary jurisdiction and picked up by an activist prosecutor in another jurisdiction is a pretty strong indication that the evidence doesn't support the charges.

It is now up to the new prosecutor to prove that there is a case to answer and that Assange is being pursued for an actual real crime, not for who he is and the work he is involved with.</comment>


Ask HN: Software Engineering,Money and Overcoming Guilt of Being Paid Too Much? - <AUTHOR> Recently I Completed my first Intern at a big-N ,it paid well rather paid more than what the work was worth.
Anyways I was at a conference recently in eastern europe and there were folks of my age(22) serving at the restaurant doing jobs like waitressing,doing the dishes etc. even at the airport I saw folks my age working more hours in the cargo loading department. At the hotel it felt wrong when the housekeeper(21 ish) came to do the sheets for me,or when at the restaurant the busboy(65 something) came to clear the dishes.
Suddenly the guilt of being paid too much hit me. It has been bothering me ever since. I noticed most of the people in central easter europe(cech rep) had simple smart phones etc.
Its just that i dont get why am i or anyone being paid so much for sitting in a air conditioned office,eating free stuff and writing bunch of things on a computer. Manual labor takes more toll on ones body.Pilots etc are paid well because the sleep depravation and physical toll their bodies take but sitting in a office.Idk at one point even communism/socialism(as someone who absolutely hated it at one point) made sense to me. <comment><USER4> If you feel guilty, that's probably a _good_ thing. It means you have compassion and empathy. Use that to your advantage.

Instead of lamenting your good fortune, spread it around. Tip well. Patronize local businesses even if it costs a bit more. Use your privilege to take time off and fight for better resources for those less fortunate. Donate your time. Hire people to do stuff for you.

Help however you can by slowly redistributing your own wealth.

</comment><comment><USER5> Yes, you can feel a bit guilty. But there are definitely some other factors.

I did the jobs you described part time while I was studying. Yes the jobs you listed are more physical, but you gain a flexible schedule and the chance to combine it with different things, art, writing studying etc.

I remember a conversation with a barber. I told her I was a programmer, she immediately reacted with, "I would never be able to do that, I need to do something more creative and social". That was a bit shortsighted from her side. But it also gave me a bit of insight that not everyone wants to sit in an office all day. People are really different, some might do it because they cannot do anything else. Other probably talk about you as you are talking about them right now.

Finally, remember that not all countries have the same social/tax system. I'm not sure where you are from, but when your coin is very strong versus the country you are visiting, it is already very skewed. Next to that countries like the US you get allot more "liquid" money. Money you can easily spend. Some countries actually tax more, giving you a more stable foundation, but it will mean you have less money after taxes.

Just treat everyone like they are human.

<comment><USER6> > "I would never be able to do that, I need to do something more creative and > social"

Why do you think this is short sighted? Genuine question.

I'm a about 2/3 of the way through my CS degree and I'm having second thoughts. I did lots of programming as a teenager, and I'm fairly confident in my software engineering ability and ability to learn.

The thing is... I don't find it creative. I don't get to socialise as much as I'd like, and fellow CS students are often pretty elitist and try to "one-up" people around them. I know this is a generalisation, but (anecdotally) I've experienced this much less in other fields.

I've really enjoyed pursuing entrepreneurship and hanging out with business, creative arts and philosophy students instead. I'm thinking that maybe I should've done a business degree and just developed my CS skills on the side.

I'm _very_ much an extroverted "people person" and I feel that side of me is neglected in this field. I've had an internship and although I definitely talked to my team, it's not the same.

Am I wrong? I've barely worked in industry. I'm a bit worried about my career path.

(Not saying that any of the above is _bad_ , just maybe not suited to me)

<comment><USER5> >> Why do you think this is short sighted?

Because I do think my job is creative and social, and she just decided that my job wasn't, without trying to understand what I was really doing.

>> The thing is... I don't find it creative.

Well, the weird thing, is that I do not have a CS background, I have an Art background of all things, I choose to change careers. Perhaps from that perspective I definitely see all the creative decisions I have to make. Thinking about maintainability, solving technical puzzles, understand really what the customer wants challenging and supporting the product owner. I think creativity is more than deciding something needs to be red. Don't underestimate the amount of systems and process in "creative" design work. The "real" creative jobs are very rare. I was freelancing and at one point I was making a pack of rice dance for a fortune 500 company, I hated it.

Sure, I understand there are Elitists CS students, but I don't think companies will enjoy working with them. If they stay that way I really think they get a rude awakening at the end of the day, perhaps they can hide in their dynamic programming at Facebook.

I know this is N of 1, but a recent CS grad just left the company I was working for. He fled back the the academic CS world, not able to function that well in a company that also required engineers to understand and communicate with other people.

>> I'm very much an extroverted "people person"

There are plenty of places where extraverted engineers have a place. Perhaps go to a few technical meetups to get a different view of the work-field.

</comment></comment></comment><comment><USER7> Invest. Now is not the time to give back, you don't know your future. Live a good life, and once you are in a position to donate and help other people, do so. But for that you have to have your life figured out first. You don't want to get generous now and have nothing in three months after unemployment.

Plan it accordingly and you can have a good life and give back to many, many people.

<comment><USER8> The problem with that approach is answering the question of when you have enough to start giving back. People get used to the money. They increase their lifestyle. They save up more to make sure they'll never have to simplify. Then they save for retirement. And their kids college. And maybe more so their kids have a a nest egg. And they gotta take care of their parents when they get old, too. But they won't fit into the wealthy lifestyle, so they save money to afford the best care providers... And then one day they find themselves at 60, retired, with the perfect life, but forgot to actually stop and give back. But they tell themselves that is OK because that was just a silly thought they had when they were 22.

Or, you can choose a percentage to give back, from the first day of your career. It won't be big to start. But it will grow with your success. And if your life takes unexpected turns, and you don't end up old and wealthy, you still gave back throughout your whole life.

</comment></comment><comment><USER9> If it helps: The salaries paid to early career engineers are mostly option value for mid-career engineers rather than being a direct attempt to compensate for your year 1 productivity. You might have a good bead on what your year 1 productivity is likely to be; you may be surprised how quickly you climb the skill curve and how valuable your labor becomes, at which point your employer will be saying "Phew! Good thing we don't have to get this geek from the market; that would cost [a substantial premium to the largest number you can think of being paid as of today]."

Not sure I have anything to offer regarding the disparity between your income and that of anyone else in the economy, other than to say decreasing your income does not make any of them better off. Tip much more generously than society expects you to. If you have the opportunity to, join a company which broadly impacts economic opportunity.

<comment><AUTHOR> Yes,i have been tipping more lately.Now this was my first time in europe,i was shocked to see people were doing stuff outside of tech,young people having arts stuff(dancing etc) as a career,folks were working in bars and cafes. There's just so much more outside of tech. Eastern europe made me feel as if i had way more money.

<comment><USER10> > Now this was my first time in europe,i was shocked to see people were doing > stuff outside of tech

I don't know where you're from but regardless, there are young folks working jobs outside of tech literally everywhere. Unless you work, sleep and spend your spare time in Google's HQ or something. How is this shocking?

<comment><AUTHOR> All the people I know friends,family members, acquaintances all work in tech or have worked in tech at some point (my mom) . I literally didn't interact with people outside of tech that are of my age up until last month or so as I simple did not know them.

I think the culture shock also hit me, coming form a Developing nation I expected people in Europe or developed countries to be more oriented towards stem not just as a career but also as a general thing,being more scientific. Prioratizing education etc. I interacted with young folks and a lot of them thought all this computers and stem was a thing smart people do. Most had not even heard of certain stuff and were short sighted interma of career choices.

The housekeeping chick I talked to told me she had no idea about many stem based things and was studying art history and political science.

</comment></comment></comment></comment><comment><USER11> My view is shaped by the bible which teaches us to enjoy what we have, not covet what others have and to remember the poor.

If you can master these three things I believe you will have more peace in your own mind and will help others along the way.

I have helped provide food for the hungry in Africa and worked alongside the homeless in South America. My thoughts are not just thoughts.

I have encountered those with much less than yourself who I daresay are happier and more content. That's the wonder of the teaching above, it applies to all.

</comment><comment><USER12> Its simple supply and demand. I am in eastern Europe (Romania to be precise). Software Engineers are paid 5-8x above median. Cost of living is low, so life is pretty good.

No guilt here. The industry is screaming for people. There are lots of companies here which hire you with little to no experience and pay you a median wage. Study/learn for a year and you're making 2x the median wage.

Don't feel guilty. They can make the same amount of money if they wanted to.

</comment><comment><USER13> You're paid more because you are expected to provide a lot of value and are also hard to replace. Society is simply giving you back some of the value that you're creating for it. A housekeeper can only change so many people's sheets per day, while features you engineer at Google can impact a billion+ people. BTW, if you don't feel like you contribute a lot yet, give it some time - <USER2> 5-10 years, this should change.

<comment><USER14> > You're paid more because you are expected to provide a lot of value and are > also hard to replace. Society is simply giving you back some of the value > that you're creating for it

well, perhaps. your employer is giving you some of the value you are helping your employer generate/extract/appropriate.

depending on what your job or project is exactly, the net result of what you and your employer do may in fact be destroying a lot of value for society, but extracting a lot of wealth from others and reallocating it to your employer.

there is a lot of money to be made pushing profits onto owners of the business now and spreading costs over a large number of people in the future, in a way that's a net loss for society. if you can help a business owner optimise this process, there may be a good business case for the business owner to give you a cut of the spoils... but you're kidding yourself framing this in the language of "generating value". it depends on the details

</comment></comment><comment><USER15> In the words of Steve Miller, "go on, take the money and run". Everyone wants programming/apps/computers in the workplace for every industry hence our current situation (which has really been steady since before I was even a thought in my parent's eye's).

If you feel guilty about it, I'm sure that's normal, especially for your age. If you want to do something about it, then why don't you mentor those who might want to break into the workforce. "Knowing a guy/gal" still goes a long way.

Unfortunately, people will make choices. Some of those choices are better than others. A series of choices can make or break you. Those choices can put someone like you in your position, or put someone "working more hours in the cargo loading department". Take your knowledge, maybe even some of your extra money, and try to help those who you think might benefit from moving into a programming/testing/general tech industry, because eventually recruiters will start asking if you know people, and entry level jobs will come up.

</comment><comment><USER16> I was going to say that you won't feel bad if you ever "go without" for a while. I was going to say that if you spend a month or so on the streets, barely getting enough to survive each day, that you'd feel less guilt about earning so much. Then I remembered that I still personally feel bad when I see other people working so hard and barely scraping by, and I get to sit at a desk in my apartment, basically solving problems that are fun and I make 5X as much as they do.

I still feel the guilt even though I've been through some really hard times. I guess it's important to act on your guilt. If you feel like you can help someone that's struggling, then do so. Some people would encourage you to invest, and that's wise! But sometimes you have to do something that isn't wise to feel "complete".

Go with your gut. Life is too short. If you want to be rich, then do what makes you rich. If you don't want to feel guilt, then it seems like your priorities are in a different place. Life is an adventure for some people.

<comment><USER16> Oh and maybe consider reading "An Appeal to the Young" by Kropotkin (my favorite anarchist/commie). It will help turn your guilt into anger/motivation :D

[https://theanarchistlibrary.org/library/petr-kropotkin-an- ap...](https://theanarchistlibrary.org/library/petr-kropotkin-an-appeal-to- the-young)

</comment></comment><comment><USER17> Interesting, I have a similar problem - I'm bothered that many people around me are making a lot more than me. It feels wrong that so many people are able to buy $3M houses outright. I was browsing real estate section in a local newspaper and suddenly the guilt of not doing enough / not doing the right things hit me.

<comment><AUTHOR> i faced this aswell as everyone around me a the conference was making 2x of what i made each month + stocks and whatnot.

</comment></comment><comment><USER18> Don't worry. You'll realize how badly you're being exploited once you get a few years experience.

</comment><comment><USER19> Changing the inequality is work in progress. Rather than feeling guilty, perhaps you could volunteer to help disadvantaged groups. Another alternative is to donate generously to appropriate charities.

From what I have read the homeless epidemic in SanFran is extreme, people sleeping rough, in broken down cars, etc. I am sure that wherever you go you will find people having it very tough compared to you.

<comment><USER20> +1 But please be mindful to which charities you give you money to and do a bit of research.

There was a website which I cannot remember now that monitored how much of the donated money converted into actual help and was not used for salaries and events.

</comment></comment><comment><USER21> Money is a resource. It takes resources to help people. It might be helpful to consider using your money to help people. It might be informative to ask yourself how you could most effectively use some of your money to help others (charity, investing, etc.). Consider budgeting 10% (or whatever you're comfortable with) to be spent on improving the lives of others. It could be as simple as paying the rent for a family member.

</comment><comment><USER22> Here, absolve yourself: [https://app.effectivealtruism.org/funds/global- development](https://app.effectivealtruism.org/funds/global-development)

Or check out [https://80000hours.org](https://80000hours.org), which has given me a new perspective on this sort of thing, even if I can't apply all the advice they have

</comment><comment><USER23> With capitalism the value of a product or service is equal to its value to the customer. Communism on the other hand is based on the notion that work is inherently valuable. Hence, with communism the value of a product or service isn't defined by its value to the customer but by the work put into it.

While communism might appear to be more just at face value it tends to create inefficiencies, false incentives and shortages.

If a busboy gets paid the same as software engineer there might not be enough of the latter to meet the demand. This leads to stagnation and less wealth, which in the end affects everyone, software engineers and busboys alike (even though admittedly it probably affects the software engineer's employer the most at first).

Is it even just if a highly qualified person with valuable expertise gets paid the same as someone whose skills have less value?

These aren't simple problems and questions. The modern welfare state has been an attempt to alleviate these issues while at the same time keeping capitalists incentives. It's not a perfect solution but for the most part it works.

To really solve these problems once and for all we probably have to arrive at a post-scarcity situation first, where products and services are available in abundance at little to no marginal cost.

A capitalist system - perhaps ironically - might be our best shot at getting there.

</comment><comment><USER24> at the same time good chefs are getting paid way more than engineers and traders have starting salary comparable to senior engineer and stupid rappers and hookers make more than all of the above combined - conclusion is life is not fair so get used to it and adapt.

</comment><comment><USER25> More generally, the world is simply not fair or just.

See: [https://en.wikipedia.org/wiki/Just- world_hypothesis](https://en.wikipedia.org/wiki/Just-world_hypothesis)

</comment><comment><USER26> I don't want to look rude in any way by saying this.. If you feel that you make a lot of money and feel guity for it, you could donate to entities that help those in need or even volunteer at those places.

</comment><comment><USER27> I'm in Europe and my salary is far from guilt-inducing.

</comment><comment><USER28> Not to worry you'll feel exploited soon enough lol

</comment><comment><USER29> If you really want to give, first premise is the government won't spend your taxes well.

So, how much to give?

The top part of the range that is taxed highly.

</comment><comment><USER30> I didn't expect a post to be like this on HN but I'm of the same opinion - <USER3> guilt is real and I feel unfair.

</comment><comment><USER31> What I'm discovering is simply: that's capitalism.

You're being paid a lot and unless you work for a lossy company, you must be contributing to a profit margin that amounts to more than what they're paying you.

Writing a bunch of things on a computer is a gross simplification of whatever skill-set you've accumulated and the ultimate value you produce for your employer.

Internships are a means to an end, so if your internship seemed trivial somehow, it may have been to some degree, but the company has an interest in figuring out if they could benefit from hiring you long-term.

At the end of the day, digital technology is at the forefront of innovation and innovation is (at least one hot spot) where profits come from. You're participating in the division of labor at the frontier, so you're well paid.

Capitalism spreads wealth asymmetrically, though, so it should come as no surprise that you witness that inequality when you find yourself using your wealth to pay for bourgeois luxuries (hotel rooms, conferences, restaurants) adjacent to service industries.

</comment><comment><USER32> It's an unfortunate down side to poverty to fee like you're being paid too much, but that's just how capitalism works. You shouldn't feel bad if you operate in an ethical manner, and help people with your wealth. Life is also funny in the sense that you can make a bunch of money one year, and then be broke the next, so save money and space for health care... It's not greed, it's survival.

If you weren't making the money, there's always a ton of people that would kill you to be in that place... What you do with the wealth is what will either bolster or hurt your confidence in life.

If you ever feel like you are being paid too much, you can always donate to those that are in need.

</comment><comment> a-saleh I am at peace with this.

One thing that helped me, was when I saw the ammount of taxes I pay :)

I am fairly capitalist, but I do hope one day we would achieve this weir socialist utopia where nobody would _need_ to be working.

I definitely would see a problem with 'work should be compensated accordingly to the toll it takes on the body' because in the long run, don't we want to automate these kinds of jobs away?

Apologies for my disjointed thoughts, I wish you luck in your search for meaning :)</comment>


Silicon Valley cartoon map (2000?) - <AUTHOR> http://fbweb.cityu.edu.hk/aseshk/ISCC/ChristyReport/SVmap.gif

<comment><AUTHOR> I'm a sucker for this sort of map. Bumped into a reduced version; then <http://tineye.com> found me the largest one linked here, in a 2002 post: [http://fbweb.cityu.edu.hk/aseshk/ISCC/ChristyReport/index.ht...](http://fbweb.cityu.edu.hk/aseshk/ISCC/ChristyReport/index.htm)

Updated version and/or source of this one appreciated ...</comment>


Sublime Text 3 Build 3124 - <AUTHOR> https://www.sublimetext.com/blog/articles/sublime-text-3-build-3124 <comment><USER2> > With these latest changes, Sublime Text 3 is almost

> ready to graduate out of beta, and into a 3.0 version.

Wow, Finally! I have been using ST3 for several years _(wow, years)_ and always wondered what is keeping the developer from labeling that version as stable. From all the issues reported here [1] I have never encountered one while using the editor for pretty much all my work. Those $70 are definitely worth every penny. Sometimes I cringe from videos featuring ST while using a non-registered license, this week it happened with a course from Google engineers via Udacity, Google engineers!!! As if they don't have miserable $70 to buy a license, I assumed they were in a rush and didn't have time to set the license which I hope they bought.

Anyway, thanks for all the hard work Jon, and recently Will.

[1] [https://github.com/SublimeTextIssues/Core/issues](https://github.com/SublimeTextIssues/Core/issues)

<comment><USER3> Sorry, I must disagree. For 70 bucks you get developers who hardly fix bugs, who don't listen to users (I posted a few feature requests in their site and was banned) and with a crazy architecture (try and change the highlight colour of brackets in BracketHighlighter and see what I mean). They are worse than Microsoft. Screw them.

It was great when it came out, but now Atom is better.

<comment><USER4> I share your sentiment about the buggy software and the unresponsive devs; I moved to Atom for the same reason.

However great Atom is though, it's unbelievably slow and nearly unusable because of that. Unfortunately, I haven't been able to find a better alternative since.

<comment><USER5> > However great Atom is though, it's unbelievably slow and nearly unusable > because of that. Unfortunately, I haven't been able to find a better > alternative since.

Have you given emacs a shot? While once upon a time it was derided as eight megabytes and constantly swapping, it's extremely fast after forty years of Moore's Law.

It's cross-platform: if you run an OS, odds are emacs runs on it. It runs in both the terminal (convenient for remote sessions) and in the X/Cocoa/Windows GUIs.

It has modes for just about every programming language in use, and then some.

It has a plethora of keybindings for dealing with code semantically, e.g. navigation by expressions or blocks. If you prefer, it also has vi keybindings.

It's extraordinarily extensible, so much so that web browsers (three that I can think of), mail readers, news readers, process browsers and shells have been implemented in it.

Indeed, for many people emacs can become more of an OS than their OS.

It's pretty awesome.

<comment><USER6> As a former Emacs fan, I think Atom is actually the best modern alternative to Emacs.

I just recently looked at my old .emacs file to discover that the majority of code in there was to get the features that come out of the box with Atom. Of course Emacs does allow you to configure and program way more than Atom, but the downside is that you have to do it because the defaults come from computer history museum - it's great fun though if you like to learn about the history of the field.

I've been pleasantly surprised just how easy it is to extend Atom. It invites you to configure it, with very approachable docs and built-in tooling, but it doesn't force you to.

</comment></comment></comment></comment></comment><comment><USER7> From the release notes [0]:

> Minor improvements to file load times

I didn't even realize there was room to squeeze out more performance here. Sublime Text is wicked-fast opening pretty much everything I throw at it.

[0]: [https://www.sublimetext.com/3](https://www.sublimetext.com/3)

<comment><USER8> I agree, but I'm also glad they're still working at it.

Sublime Text is my go to text editor for files over 10MB, and it can get a little slow loading anything over 1GB. It's awesome to know that it'll be a little faster when I get into work tomorrow.

<comment><USER9> Just curious, why would one want to open a 10MB (let alone a 1GB) file in a text editor? Isn't that something that could be better (that is, more efficiently) handled by the likes of grep, head, tail, sed or awk? It's like issuing a database query that returns a million rows when a more specific query would have been a better choice because it would result in substantially less data to look at.

<comment><USER10> The answer is going to sound terribly boring, but as someone who frequently deals with very large files of structured text: sometimes you just want to look at your data and quickly jump around. I want direct manipulation, not a data querying/manipulation DSL (whether that's grep, sed, SQL, etc)

<comment><USER11> I wholeheartedly agree that it doesn't sound like much, but sometimes all I'm doing is applying general, human intelligence to the very vague question of, Is there anything in here that I'm not aware of but should be? That's not an easy query to write in grep or SQL, but it's a _common_ query that often turns out to be important, so I handle it the old-fashioned way: I look it over with human eyes and see what I find.

</comment></comment></comment></comment></comment><comment><USER12> > a menu entry to install Package Control

If Sublime is going to acknowledge Package Control, why not just ship with it? I'm sure the Package Control folks would be glad to move their repo upstream.

<comment><USER13> I've been working for Jon since January.

Part of the reason is allowing it to have a different release cadence, but also to not default to making outbound network connections without a user opting in.

<comment><USER14> Definitely appreciate that, but couldn't it be a click-through prompt before making a connection? VLC does something similar on first install.

</comment></comment></comment><comment><USER15> I wish the Sublime Text people open sourced their code. I'd buy it from them in that event and I'd finally have a text editor to recommend. Atom, VS code, and anything else is completely blown out of the water by ST. There's a reason it's still around and it's because ST is the only thing that can even think of doing what sublime text can do.

Good work to the people behind it, it's an amazing feat no doubt. Just please consider making it free software for all of us who care about that just a bit. Amazing work none the less.

<comment><USER16> Interestingly, I would prefer that it were subscription-funded.

I would prefer to acknowledge on-going development costs and pay those for a continually-developed, high-quality editor.

<comment><USER17> Doesn't the developer basically abandon it for years at a time?

<comment><USER18> Looking back a few years at the dev log, it looks like it was one big update per year, then for 2016 we've seen an update every 2-3 months. So who knows anymore? I'm inclined to think these semi-rapid updates are to bring 3.0 out of beta, so I'm not so sure we should expect the same "speed" for too long.

</comment></comment></comment></comment><comment><USER19> Actually the only thing that keeps me from switching back to ST3 is Atoms first class support for `.gitignore` and excluding files from the quick open menu.

I know there's a package that claims to update the file ignore pattern to match the open project, but it really doesn't work well at all.

<comment><USER20> Create a Sublime project. You can have project settings to ignore file and folder patterns. I set this up at the same time I create a .gitignore file for a repo.

Whenever you re-open a project, it re-opens every tab you had when you closed the project, which is really nice. Even unsaved files are restored.

[https://www.sublimetext.com/docs/3/projects.html](https://www.sublimetext.com/docs/3/projects.html)

<comment><USER21> Just an FYI, Atom does these things too. Tracks all of your open windows, tabs, which tabs you were on, keeps unsaved changes, etc...

</comment></comment></comment><comment><USER22> I really, really wish it was open source. I understand why it isn't, but with its main competitors being Atom and VSCode, it's hard to warrant using a closed source text editor even if it's so much faster and I'm used to it.

<comment><USER23> I've never been more impressed by an editor than I am by Sublime. Literally everything about the editor is excellent[1].

My rule of thumb is:

        If I'm on a server via SSH, it's Vim. Otherwise, it's Sublime.

1\. Actually... [https://news.ycombinator.com/item?id=12553584](https://news.ycombinator.com/item?id=12553584) (sorry if you're a robot and just got stuck in recursion)

<comment><USER24> If I have ssh access, I use sshfs to edit remote files with my local copy of Sublime. I also set up a Sublime build system that calls the compiler remotely over ssh. After I set my ssh config to cache and reuse connections, it adds virtually no overhead. Builds are one keystroke, errors show up in the editor just like normal, and small builds can still be done in just a fraction of a second.

The only problem with this setup is that sshfs is bad at recovering from network errors. If someone made a version of sshfs that could automatically reconnect after an interruption then this setup would be practically indistinguishable from working locally, even on moderately high latency connections.

<comment><USER25> You likely have already tried this, but in case you haven't: sshfs has a mount option -o reconnect which tries to be a bit more resilient about this sort of thing.

<comment><USER24> I didn't know that, thanks!

</comment></comment></comment></comment></comment><comment><USER26> The only thing I really want from Sublime (or VSCode) is an API that lets me display an output panel/sidebar with an html engine embedded in it.

Atom provides this - it also provides arbitrary html in the editor itself which is cool but also what makes it slow.

I just want it for the supplementary panels that show build outputs, documentation or other contextual information.

That's enough to let me customize it for our team's usage.

<comment><USER27> We are working on it. [0]

[0]: [https://github.com/Microsoft/vscode/issues/12163](https://github.com/Microsoft/vscode/issues/12163)

</comment></comment><comment><USER28> When I first started using Sublime, I disliked the occasional popups, and thought I'd just keep using it without paying $70 for a text editor?!?!

But I HAD to buy the thing! Not because I wanted to avoid the annoying popup, but because of everything we know about Sublime today; performance, simplicity and intuitiveness of the UI, packaging system, etc.

The article mentions that they're coming out of beta in the near future! nice! and I just noticed they're already mentioning sublime text version 4 (under sales FAQ page).

</comment><comment><USER24> I'm surprised so many people here are using Sublime to edit >100 MB files. Yes, it handles them (as long as the lines aren't too long), but it always has to load the entire file before displaying the first line. Aren't there some editors that don't have to do that?

On a related note, large files are often binary. I appreciate that Sublime can display binary files but it's pretty bare bones, and there's no editing support. I'd love to see what Sublime HQ could do if they worked on binary editing support for a couple of milestones. For example, the ability to locate and edit strings in binary files would be cool, as would a basic hex editor.

<comment><USER29> > it always has to load the entire file before displaying the first line. > Aren't there some editors that don't have to do that?

[http://www.ultraedit.com/](http://www.ultraedit.com/)

ST is neat. UE is heavy duty.

<comment><USER30> Funny this doesn't come up more often when discussing St, as it is about the same price and an old name.

How is it to use?

<comment><USER29> > How is it to use?

Depends on how you configure it, it can be a lot of things. The UI is pretty amazing, but I don't have the knowledge or time to do it justice in the least, sorry :)

To be perfectly honest, the first time I finally tried it after hearing so much about it for so long, Sublime Text kind of disappointed me. You can't even print out of the box -- waitwhat? It does other cool things, true, and there is room for more than one text editor, text files are awesome that way. But still, I felt a bit like when everybody was going nuts over Firefox because they didn't know about Opera. I love Mozilla (a lot) and harbour no ill will towards Sublime Text, but god damnit, software isn't as tight as it used to be. I don't know anything about anything and even I can tell.

<comment><USER24> Printing isn't a task for a text editor. If you want to print something, open it in your word processor. I would be disappointed if the Sublime devs wasted a bunch of time developing 3-platform printing support when there are about a million more useful editing features they could be working on instead.

</comment></comment></comment></comment></comment><comment><USER31> > Also new in 3124 is Show Definition, which will show where a symbol is > defined when hovering over it with the mouse. This makes use of the new > on_hover API, and can be controlled via the show_definitions setting:

Is this just an API hook which a plugin can add a definition resolver to, or does this automatically find definitions for all builtin languages? If the latter, this is super cool!

If the former, I'm going to try and update [https://packagecontrol.io/packages/YcmdCompletion](https://packagecontrol.io/packages/YcmdCompletion) for this

\-----

Edit: omg works out of the box. Seems to be a simple grep-based thing (so it lists all definitions of the same name), but that's still quite useful!

<comment><USER32> It's similar to Goto Definition (F12). It's based on parsing according to the syntax definition (which only does line by line contextual parsing) so kinda like ctags. In practice it works better than the painfully slow "smart" and often non-existent* symbol navigation in IDEs (although QtCreator is very good in this regard).

* for large projects

<comment><USER33> I suspect like you only used C++ IDEs? It's pretty much instantaneous (and _always correct_ ) in common IDEs for languages like C#, Java and TypeScript.

<comment><USER32> Yes, I only meant C++ IDEs, I should've clarified that.

Although I'm not sure how IDEs for other languages deal with humongous projects (~ millions of LOC).

<comment><USER33> Remarkably well. Because there's no macros or templates and not a lot of type inference in languages like Java and C#, it is very easy to look up the type name of an identifier.

Then, because in e.g. Java the fully qualified name of a type is forced to have a direct relationship to the directory structure¹, the IDE can just look up the .class file in which the type was defined. If the .class file doesn't exist or is outdated, the IDE recompiles but it only needs to do this once and then it can cache it. This .class file itself is a small file of JVM bytecode that allows very fast lookup of all its methods and attributes and whatnot.

This means that it's not a search at all - it's only a lookup (look up name of identifier, determine file location, look up definition), and project size hardly matters.

I often wonder whether they realized how easy they were making things for IDE builders when the Java team invented this stuff 20 years ago. If not, it's a pretty lucky hit and it works great. .NET, even with the benefit of Java- hindsight, didn't do this as well. Assemblies are nice but they make lookup and recompilation a bit more messy.

¹) nitpickers will complain about .jar files and the classpath, but you can look up once which types are in which directory or .jar, cache that, and you're done.

</comment></comment></comment></comment></comment><comment><USER34> A number of people expressed the need to edit large files. For the development of my own editor[0] I would be interested to know what kind of usage patterns most often occur. What are the most important operations? Do you search for some (regex) pattern? Do you go to some specific line n? Do you copy/paste large portions of the file around? Do you often edit binary files? If so what types and what kind of changes do you perform?

[0] [https://github.com/martanne/vis](https://github.com/martanne/vis)

<comment><USER35> 1) Going to a specific location (e.g. a location that shows up in some error log about processing that data file) and eyeballing it. Being able to go to a _specific_ location is sometimes important (e.g. row 12873, character 233). Syntax highlight is important, it sometimes makes obvious something that's subtly malformed. Syntax highlight that doesn't take an eternity for large files is a hard issue.

2) regex search/replace - interactive grep/sed.

3) Very large edits - e.g., find a specific location and remove all data entries before that so that the problematic entry now would be the first one; essentially cutting away half of a very large file.

4) Do note that you might have very, very large lines - it's not that uncommon to have the whole file in a single line, e.g. non-pretty-printed json data. Some editors work well with large files but simply die if there's a line with a million characters.

<comment><USER34> Thanks for the feedback!

Yes syntax highlighting for large files is a hard issue. I'm not really aware of an accurate an high speed solution supporting editing operations in huge files.

In principle the underlying data structure used by vis supports all modifications with linear complexity in the number of editing operations since file load. This is independent of the file structure (i.e. single line files should be well supported). However the frontend code hasn't yet been optimized so in practice there might be some problems.

Unless one specifies the blackhole register when deleting large parts of a file this will create an in memory copy (to enable later pasting at a different location). Better would be to keep a reference to the existing immutable text region.

<comment><USER36> Another thing I sometimes do:

Open a medium sized file in some format (CSV for example)

Select all

Change the selection to individual selections, one per line.

Edit in parallel, doing the same edit to all lines.

When the file is not that big, this sequence of actions is amazingly fast in ST.

</comment></comment></comment></comment><comment><USER23> I have one single complaint about Sublime Text:

In order to truly clear your history (files open, last searches, etc.), I have to maintain a script with the following:

        find ~ -name *.sublime-workspace -delete
        rm ~/Library/Application\ Support/Sublime\ Text\ 3/Local/Session.sublime_session

Other than that, see [https://news.ycombinator.com/item?id=12553515](https://news.ycombinator.com/item?id=12553515)

<comment><USER37> My complaint is actually not with ST3, but with Package Control. I have to maintain my user preferences in git because PC rewrites them and resets the theme every time it updates. (I run the Material Design theme)

<comment><USER13> When you say "reset" do you mean it doesn't re-enable the Material theme once the upgrade is complete?

<comment><USER37> Yes. This used to be a problem every time. In the last month or so this has happened to me only twice.

<comment><USER13> Please do open an issue in the future – I hadn't heard of the issue happening.

<comment><USER37> Acknowledged. I'll do that if it happens again.

</comment></comment></comment></comment></comment></comment><comment><USER38> sublime is by far my favorite editor. fast and lots of plugins. specially if you work with big files. i sometimes need to work with files larger than 150MB and it takes few seconds to open. atom crushes and can't even open the files.

<comment><USER39> Been using it for a long time and that's the main reason i do, so good at looking at those huge log files.

</comment></comment><comment><USER40> I'm an UltraEdit user. I have tried Sublime Text because of all the nice comments, but I don't see it. Can somebody that also uses or used to use UE tell me what I'm missing?

</comment><comment><USER41> Here comes a piece of history. I replied this to my Sublime Text 2 purchase confirmation email I got from Jon Skinner on 2011/08/30:

> hi jon, > > my salary was reduced by 30% just yesterday, but when i woke up > today, > they 1st thing i did was purchasing sublime. it's _that_ fucking > awesome! > i wish it would be open source, so people could learn from it... > > but, hey, i doubt many open source developers could contribute quality > > code to it.. :) > > if u could implement the elastic tab stop feature (which > has some reference > implementation on the > nickgravgaard.com/elastictabstops/ site), then i > would be happy to pay > another 60bucks for it. > actually, u could sell separate license for the > version which has this > feature... > i know it would be quite elitist, but > it worked well with the black macbooks > back then...

</comment><comment><USER42> On Mac I use TextWrangler for quick editing and VS Code as the IDE. I never need to open super large files so after reading this discussion I tried to open a 177MB text file in TextWrangler and it opened quickly and was editable. Searching within the file was also super fast.

</comment><comment><USER43> The Official Sublime Rust package supports this update: [https://github.com/rust-lang/sublime-rust/pull/87](https://github.com/rust- lang/sublime-rust/pull/87)

</comment><comment><USER44> Awesome! I'm especially liking the Phantoms API - there's a _ton_ of potential there for richer plugins and graphical inlining.

I've moved between maybe half a dozen editors over the past half-decade, but I always end up coming back to Sublime.

</comment><comment><USER45> The addition of Phantoms [1] is the killer feature in this release for me. This will allow embedding custom HTML [2] inline in the editor, which is something I've been dreaming of - the power of Atom's nice plugin UIs with no compromise in speed!

[1] [https://www.sublimetext.com/docs/3/api_reference.html#sublim...](https://www.sublimetext.com/docs/3/api_reference.html#sublime.Phantom)

[2] [https://www.sublimetext.com/docs/3/minihtml.html](https://www.sublimetext.com/docs/3/minihtml.html)

</comment><comment><USER46> 100% CPU since Build 3124 [0].

[0] [https://github.com/SublimeTextIssues/Core/issues/1387](https://github.com/SublimeTextIssues/Core/issues/1387)

<comment><USER47> same here :-/

<comment><USER47> The CPU load was only for a short period. When ST3 indexed my project (which is quite large) everything was fine again

</comment></comment></comment><comment><USER48> If this issue with the SublimeREPL package could be resolved, it would be perfect: [https://stackoverflow.com/questions/27083505/sublime- text-3-...](https://stackoverflow.com/questions/27083505/sublime- text-3-python-repl-slow-print)

Anyone have a guess as to why this happens? It causes me headaches using R as well.

</comment><comment><USER49> One minor feature request - can you please simplify the setting of font size for the tree browser and for the menu entries. (I know that tree browser font size can be set by the theme, but it is a bit non trivial using PackageResourceViewer to patch theme files to do this). I still havent found a way to change the font size of the menu entries.

</comment><comment><USER50> Been using Sublime Text 3 for years (and I do have a license), and been trying out Atom/VSCode lately. Atom can get real slow, but I feel like the extensions for Atom are of higher quality (linters, TypeScript integration). I think it might have something to do with HTML/CSS/JS vs Python for plugin development.

</comment><comment><USER51> Amazing! ST is the only editor I considered good enough to pay for and I can see it's getting even better!

</comment><comment><USER52> I suspect still ST3 still being in Beta is a service to ST2 users, who paid it but for a relatively short time before first st3 betas and whose license key will be valid with ST3 betas and not ST3 once out. Not that I am in this case at all.

</comment><comment><USER53> Thanks for the hard work sublime text team for making programming so enjoyable. I already find ST3 so flawless that to think it still can be improved is beyond me. Once again, great going.

</comment><comment><USER54> Whoa very nice new features! Now I need GoSublime to support them!

</comment><comment><USER55> Atom is really good to go, but after using it and some others, I am back to Sublime Text. They are still working on version 3.0 but the beta is also so stable.

</comment><comment><USER56> I am an emacs person that converted from ST (on Windows/Linux) and TextMate but I have always preferred ST/Textmate over anything else available.

<comment><USER57> Me too. Started with some GUI editors like Text Mate and Gedit; came to ST3 (bought a license); tried Atom; got convinced to VIM and use Emacs with evil now.

</comment></comment><comment><USER58> Very cool to see a screenshot from servo's codebase.

<comment><USER59> Clearly this means that the Sublime Text author is envious of Atom, and intends to rip out the native GUI for some browser-based goodness. :P

</comment></comment><comment><USER60> My favorite new feature:

> Settings now open in a new window, with the default and user settings side- > by-side

</comment><comment><USER61> Sublime is slowly making me end my hold out that Textmate will one day take over again.

</comment><comment><USER62> I'm craving for transparent background.

</comment><comment><USER63> nobody cares. Atom ftw

</comment><comment><USER3> There are a few annoying things about ST3 which aren't so on Atom

\- no engagement with the developers. For $70 I expect to be able to file bug reports and maybe some feature requests. Without being banned.

\- multi file search is ridiculously poor. I can't save search patterns, the long text box with all the file patterns is hard to navigate (on OS X if you put the cursor at the end it starts scrolling), but most of all the result pane doesn't stick as it used to. I have to search again every time I click on a file from the results then close it.

\- copy and paste is STILL buggy on OS X. Sometimes you paste a string and it puts it in the line above the one where you have your cursor.

\- package control is not included. It's just common sense

\- the scrollbars are invisible on OS X. I don't want a minimap, it used too much space and adds too much noise

\- I use BracketHighlighter. Every time I want to customise the highlight colour it's a royal pain in the neck because of ST3's crazy architecture

I'd much rather use atom these days.

<comment><USER64> 1) And maybe a massage once in a while, am I right?

2) My only gripe is that it can block the UI.

3) Not experienced.

4) Would be nice, but not a deal-breaker.

5) That's how scrollbars work on macos. You can change it with "overlay_scroll_bars": "disabled". Minimap can also be disabled via View > Hide Minimap.

6) No idea.

7) Who is stopping you?

<comment><USER3> Expecting developers to allow you to report bug is hardly something that warrants idiotic sarcasm.

<comment><USER65> How did you get banned? I saw a lot of bug reports and feature requests on the ST forum, there is even a whole sub board dedicated to feature requests which seems to be quite active.

<comment><USER3> I commented on a thread started by an obvious spammer, of the 'I made millions working from home' sort (ironically, by saying "Spam")

</comment></comment></comment></comment></comment><comment><USER66> Does Sublime still exist? With all the hubub about VSCode and Atom, I've sort of forgotten about it.

<comment><USER67> >Does Sublime still exist?

Did you even click the link? This is an update changelog...

Having said that, while competitors have popped up like Visual Studio Code which is pretty darn good, Sublime was one of the first text editors that I used years ago when the landscape was primarily dominated by Dreamweaver and TextMate. It was a step-up from Notepad++ which many open source lovers used, but lacked the finesse that ST brought to the table. When it comes to opening large files, especially large SQL dumps >1gb, Sublime Text is still the king in my opinion. I still occasionally need to do a find and replace on a large file and nothing beats Sublime Text (except maybe command line editors like Vi/Vim, which I can't use).

I primarily focus on front-end development nowadays, so I primarily use Webstorm, but if I need to write some Markdown, edit some PHP/Python or edit large files, Sublime is still my go-to. Such a shame people think you need to update something every day to keep using it, ST has been incredibly stable for years now. Even ST3 which was in beta for years has been quite stable.

<comment><USER68> > Did you even click the link? This is an update changelog...

They haven't exactly been keeping to a regular update schedule.

So not hard to blame people for wondering if it was abandoned or not.

<comment><USER69> Also not unreasonable to expect people to take a glance at the article they are commenting on.</comment></comment></comment></comment>


Why Mapudo failed (marketplace postmortem) - <AUTHOR> https://medium.com/swlh/why-mapudo-failed-5f3519f1b277 <comment><AUTHOR> [https://outline.com/HLUVgb](https://outline.com/HLUVgb)

</comment><comment><USER2> Tl;Dr: ran out of funding after pivoting a year ago. Also was in market with low margins and strong existing offline relationships. New client access in marketplace wasn't compelling enough to outweigh new costs.</comment>


The U.S. government penalized Uber for misleading customers on privacy practices - <AUTHOR> https://www.recode.net/2017/8/15/16150818/us-government-ftc-privacy-uber-investigation-settlement <comment><AUTHOR> Original headline: _The U.S. government has penalized Uber for misleading customers on its privacy practices_ 8 characters too long for HN.

Techmeme summary: _Uber settles with FTC over misleading customers on its privacy policies, will submit to 20 years of privacy checkups by outside auditors_</comment>


The Whole Economy Is Rife with Ponzi Schemes (Yes, Silicon Valley too) - <AUTHOR> http://www.scientificamerican.com/article/the-whole-economy-is-rife-with-ponzi-schemes/

<comment><USER2> Paywall. See the text of the article here: [http://www.reddit.com/r/Economics/comments/26izfk/the_whole_...](http://www.reddit.com/r/Economics/comments/26izfk/the_whole_economy_is_rife_with_ponzi_schemes/)

<comment><USER3> Scientific American used to be a respected publication.

</comment></comment><comment><USER4> That's an egregious title modification. Please do not do that.

</comment><comment><USER5> How many people are paying for Scientific American?

<comment><USER6> I don't know the answer to your question, and it may have been rhetorical, but I subscribe to two magazines; Discover and Scientific American.</comment></comment>


Rising morbidity and mortality in midlife among white non-Hispanic Americans - <AUTHOR> http://www.pnas.org/content/112/49/15078.full.pdf? <comment><USER2> Also see Andrew Gelman's post where he reanalyzes data from this paper and shows that, after adjustment for age, the morbidity increase has been happening among female population [http://andrewgelman.com/2015/11/18/first- second-and-third-or...](http://andrewgelman.com/2015/11/18/first-second-and- third-order-bias-corrections-also-my-ugly-r-code-for-the-mortality-rate- graphs/)

</comment><comment><USER3> It seems, to me at least, that a rather obvious driver of this rising mortality could be something that occurred long ago, when many of these at- risk white men were young and careless teenagers and 20-somethings.

And what could that be, in the early-to-mid 1980's, that was a game changer for many of these "victims"?

Well, of course, the most obvious driver would the be huge crack cocaine epidemic of the 80's that pretty much hit like the proverbial ton-of-bricks and caught almost everyone in my generation by surprise.

I'll admit...I got caught up it too...so much so I spent 45 days in an inpatient treatment center in 1985, and flunked out of a highly regarded Engineering university in east central Florida with only 17 credits to go (out of 195).

Who knows the damage I've done to myself and my body with all the garbage I've ingested over the decades since...

</comment><comment><USER4> FTA: "Self-reported declines in health, mental health, and ability to conduct activities of daily living, and increases in chronic pain and inability to work, as well as clinically measured deteriorations in liver function, all point to growing distress in this population."

So middle aged Americans who are not Hispanic are under a lot of pressures, many of which are causing deterioration of their health. This deterioration is likely linked to alcohol and drug consumption in many cases-- clear indicators of poor mental health, for the most part.

How much do you guys wanna bet that sky-high healthcare costs and poor economic conditions are the biggest factors in punishing this group? These negative properties of our society have real consequences...

</comment><comment><USER5> My takeaway is that deaths due to drug and alcohol poisoning, and liver disease which is often caused by alcohol abuse, has been rising dramatically over the past decade.

</comment><comment><USER6> From experience this is a direct result of the long term campaign to "cut healthcare costs" so it pays to deny care and it pays to kill people off in middle age then the government walks off with the social security tryst fund one victim at a time.

<comment><USER6> Now that the cold war is over its basically open season on all working people around the world. But for the ruling class its a double win save on healthcare via denial of treatment while confiscating the majority of people's life long social security.</comment></comment>


Some Software Designers Don't Seem to Care About the Elderly - <AUTHOR> https://lauren.vortex.com/2020/01/17/how-some-software-designers-dont-seem-to-care-about-the-elderly <comment><USER2> The problem is not that software designers don't care, but that accessibility is very expensive and doesn't get rewarded proportionally by the market.

I like to automate boring menial tasks. I've often had the problem though that I automate something as a cli tool for myself, then colleagues ask me how I did that, and I show it to them. The first thing they want is a GUI, and I tell them I don't have the time for that. Creating a GUI would take more time than the cli app itself.

Often creating a good GUI will take more time than the automation. And then when you want to add in accessibility that takes even more time to get right. All of a sudden you need a team to do that, because there are almost infinite ways to be disabled. And many different systems you need to Target. Low vision, different types of color blindness, low hearing, etc.

Every accommodation takes time to make. It's just not feasible to make everything accessible.

I know how to design a good UX, but I also know it's hard.

And making an accessible UX for everyone, is even harder.

Making that UX work on every old system like mentioned in the article adds another multiplier.

</comment><comment><USER3> My parents are getting up there, and this last operating system transition has been eye opening for me. To level set my father's technical competence, he bought the family a Commodore 64 when it first came out, he programmed punch cards, was extremely proficient in Lotus 1-2-3 and then Excel v5. His first OS versions were DOS based.

He has been scraping by on Win7 until he was forced to upgrade to Win10. While he's been able to work out some problems on his own, I've had to take a way more active role in helping through the migration. Some tasks are of my own making (did he install uBlock Origin? Is Windows Defender turned on) but others have been right fiddly troublesome issues that have taken us multiple hours over several days to hammer out (I'm looking at you Dropbox!).

What I've noticed is that he has trouble with the fact that things have moved around on him. I spend a lot of time telling him he's looking in the wrong corner. This is the first time we've needed to look at TeamViewer on his machine so I can do direct maintenance. Part is lack of interest (he want's to make knives in his shop these days), partly it's a somewhat confusing how the GUI interface has changed in Explorer / Settings.

</comment><comment><USER4> Somehow it feels like nagging open source project maintainers to support the functionality one needs.</comment>


Ask HN: Resources on how to build internal/enterprise tools? - <AUTHOR> There is a lot of attention given to consumer facing tools and how to build an MVP for that market segment. But what if your customer is internal (or a known enterprise)? Are there any good resources that discuss strategies on building these tools?
It seems like there is a lot of knowledge out there, as every company I have worked for has teams for internal tooling -- but very little public or communal knowledge.
Perhaps it's because the problem isn't as "sexy" as consumer tooling and products? <comment><USER2> Hi, Have some experience in this area. As we often build apps that are used internally for customers.

What @selmet said hits the nail on the head

"From my experience, requirements don't come from bottom but it should. Initiator is almost always manager who might have some idea or vision but it's not right originator."

Having said that, the same principals that apply for "consumer apps" would apply to internal enterprise tools.

Here is some of what i do when consulting:

\- Start with "what is the problem you are trying to solve?, what are you trying to achieve?"

\- Is the envisioned tool/app/software going to actually solve this problem?

\- How can we get more data to validate or disprove this?

\- What are the minimum set of features needed (MVP) to get it in front of users?

\- If the sponsor/initiator is not the actual person the software is targeted or is far removed from the actual problem. Speak to the actual users on the ground, the people who are trying to solve this every day. Effectively do customer dev with them (from startup world)

\- Depending on the organization, you may find some resistance if you focus on user needs. This is usually driven by "bigger pay checks = better opinions" type thinking. What you need to do here is get people to understand the problem, and how the features being added are specifically towards solving them and nothing else.

The knowledge gained, and paradigm shift you get having been in a startup, even a failed one is tremendously useful. You will find when you get into more traditional enterprise you are thinking different to most people there, you see things in a different light. Always looking for the quickest path to validate, and ensure you are heading in the right direction.

</comment><comment><USER3> I find building toward ease data entry and access - not what looks pretty

Make entry as easy as possible text entry for times & dates - with a tooltip calendar, (unnecessary pop-up lists are a pain for anything when entering bunches of records.) Consider using chekboxes and radio lists for selection over popuplists sometimes they provide visual cues easier then reading or expanding a popup.

Reduce complex multi-table entry forms to one screen, same with displaying data... Make it so in reports where you might need to correct entry staff can click right to record edit instead of having to back out, etc.

Try to make every bit of data collected usable, don't just have a "office hours" field have a schedule entry so you can draw on the data - down the road someone will say, I saw you collect X, can we use that to do Y? Be prepared to say "no problem."

<comment><USER3> Another big thing on internal/enterprise apps is access and administrative tools. As a lot of people are working on your data some only have limited program access, or access to only certain datasets... also others can check on activity of how the data is entered/accessed/updated, might also be some sort of job logging going on.

</comment></comment><comment><USER4> "strategies on building these tools"

The mechanics of actually building stuff, or the part where you want to get paid for it? Could you expand on that a little?

</comment><comment><USER5> From my experience, requirements don't come from bottom but it should. Initiator is almost always manager who might have some idea or vision but it's not right originator. And this is the main issue. He is trying to remove outward manifestation not root cause. Employees are always struggling with deeper issues than manager is trying to solve.

Practical example: I am working with huge amount of data about customer's network infrastructure. Every item (device/contract/ticket) has own web page. There is huge items with wrong or dummy data. If I need report, verify and amend certain data i can't do it via bulk requests or automatically. Our application doesn't have such interface, we don't have API, we don't have CLI. I did talk to architect and he said me...no, we don't have it, and you are the first one who asked for it. Nobody need it. So sorry but no.

Another example: internal tool, have some features but are wrongly implemented. I reported that it doesn't work as expected. I received reply that nobody use it, so there is no chance to get resource for fix and improvement.

And another one...manager bring idea with time saving and required new internal tool which will do automatically sign-in to all day-to-day tools. It saved almost 5 minutes. But after password change it very often locked users account. In total it wasted few hours of raising incident with internal IT.

And I have lot of similar experiences. So from my point of view here are key features for corporate internal tools:

1) If tool or function doesn't work - hide it or remove it

2) If documentation is available - do it properly. Have some documents with terminology explanation. Explain purpose and dependency between fields. Also explain what is mandatory and why. This is whole story how can proper documentation save your time and money. Everybody need to understand what they use and why they have to fill field A, B, C and optionally D. You can save a lot of time, money and issues, especially with newcomers. This documentation can be studied at any time during future work. You can avoid misinterpretation from older colleague etc.

3) If tools are developed always talk to end user not only with manager. Ask 5 times why should we solve this? Isn't the real issue somewhere else?

4) Internal tools always needs to be supported from management. Otherwise is very small chance that your effort will be appreciated.

5) If you create tool have CLI version. GIU is some kind of protection against stupidity but it also restrict improvement and speedup of whole process.

6) If you work with data, use standardized format like csv, xml or json. Same format needs to be used for import and export. If other internal tools use csv don't use xml or json and vice-versa.

7) Other internal tools have to be able work with same format. Export from tool A have to be applicable (or with small amendment, no more than several clicks/removal and copy-paste actions) into tool B. So your format what is standardized for other tools.

8) Don't use insane level of nested features and choices. Something like Audit-> Results -> Failed/Succeeded -> Details/Settings/Re-run -> (Details) Result/Rule/Config/History -> (Result part) Output: " Filed X, Y, Z wasn't find in config" ... and you are thinking wtf? Why? And you have to open different window and verify it manually. I need to know what was found and why it didn't match. Very often is due to wrong regexp pattern, but it take almost 30 minutes to verify all possible paths and find root cause.

9) Use universally applicable language/environment. From my experience you create something which works at computer/server A but it will fail on computer/server B.

And there are tons of other issues I dont remember. Some of them are technical (software/system/hardware) some of them are social - people/management. I would say social issues is much harder to overcome than technical. Social issues are also more important, because if it fail to solve, entire project/tool can be damaged. Technical issues can be solved almost every time. If solution A doesn't work we can create B, but we always solve it.</comment>


An idea for web 2.0 logos (symbols archive) - <AUTHOR> http://www.symbols.com/

<comment><USER2> Anyone know a similar site for Chinese/Japanese/Korean ideograms?

I was given a Chinese (I believe) scroll wall-hanging with 100 characters on it (in a 10 by 10 grid), and I'd love to take some steps toward identifying the text, I'd say "It's all Greek to me", but it's much, much worse than that...

<comment><USER3> Someone on HN recommended www.nciku.com . It's down at the moment, but it can recognize drawn characters (I can't draw at all with the mouse, and it still usually gets it correct when I do it.)

<comment><USER2> Excellent! Thanks for the recommendation.</comment></comment></comment>