HNHacker News
TopNewBestAskShowJobs

hbt

762 karma · joined July 31, 2010

submissionscomments
hbt··on Elon Musk on How to Build the Future
What amazes me about Elon is the level of self control, discipline, perseverance, resilience, willpower etc.

He's not the only one playing the game so effectively at that level but to me, he exemplifies rational behavior.

I wish more entrepreneurs like Page or Bezos were in the public eye as much as Musk. I believe those traits are common to achieve your goals.

hbt··on Ask HN: As a programmer do you have ups and downs and periods of intense doubt?
Read the book "the new business road test". It oulines a checklist of things prior to considering a business. You can apply a lot of it to new software project (e.g conducting marketing research for similar projects).

When it comes to software development and adding features, adapt an investor mindset. Ask yourself what is the return on investment (ROI) of implementing that feature? What are the risks? How can you hedge your bets? etc.

I remember reading a book "software by the numbers" which I think covered that. https://books.google.ca/books?id=tW14FDkNYv4C&dq=software+by...

The last thing you should do though is "push blindly" and not "overthink". Analysis prior to acting is a good thing and the anxiety you feel is because you're uncertain about your the future. You cannot predict the future because you don't have any research.

It doesn't mean you should wait for certainty. Nothing is deterministic. But you should always operate on your best guess; after having done your homework to investigate all known unknowns and minimize risks.

hbt··on What’s Next for Artificial Intelligence
Thanks!
hbt··on What’s Next for Artificial Intelligence
There is a focus on artificial intelligence rather than intelligence augmentation because the former seems easier to accomplish.

I also think we will reach a limit when it comes to intelligence augmentation. Artificial intelligence will never have a limit and it doesn't have all the evolutionary baggage we have.

An AI can be a rational agent. It doesn't have to fight impulses, temptations, attention control, exercise emotional regulation etc. It is not stuck in a body limiting it and putting constraints on its time.

For now, research on AI and IA go somewhat hand in hand. We still don't really understand what differentiates us from intelligent animals other than the ability to handle higher complexity.

AI researchers focused on replicating every brain module in the hope it will become intelligent are most likely to create a smart animal but nothing comparable to human. Looking at our ancestors, they were able to create tools, fire, communicate etc. Hell, neanderthals could copulate with us.

Something happened in our brains between the age of neanderthals and us. 99.5% similarity and if we could find what that 0.5% is, maybe we could focus on enhancing/replicating that instead of every brain module. People speculate it is creativity (divergent thinking) since art appeared in caves but there was none prior to that. The language gene was present in neanderthals and so what the ability to create tools, cooperate in groups to hunt etc.

The fear of AI destroying everything is a genuine one. If we create something as smart as a bear, it still wouldn't be smart enough to compete against us in every arena but like a bear, it can use its sheer power & speed to overwhelm us.

PS: I find the subject of neanderthals fascinating, if anyone has a good recommendation on the evolution of intelligence or finding what that 0.5% is, please let me know.

hbt··on American society increasingly mistakes intelligence for human worth
This is spot on.

Robert Sternberg wrote on intelligence, its evolutionary role and his theory of "successful intelligence" is well established nowadays.

Latest definition by AI researchers is summed up as: "Intelligence measures an agent’s ability to achieve goals in a wide range of environments"

People keep promoting basic income as the solution to automation instead of focusing on intelligence augmentation. We have a growing population incapable of creating anything worth of value, useless, unnecessary, with no economic value other than the body they have.

We will soon reach a point where their body is the only commodity they have. Not for its labor capacity but for its utility (blood, plasma, organ transfer, clinical trial guinea pigs, surrogates etc.).

When we have a population whose mind is incapble of creating anything of economic value, even slavery wouldn't be economically viable.

Realizing that the poor often turn to crime out of necessity/stupidity and the cost of imprisoning may be higher than simply handing them over the money, I too support basic income. However, don't think for a second that the existential crisis of feeling completely useless can be solved by a basic income to afford necessities, entertainment and wait for low cost living environment to kill them with disease and climate change.

I truly believe one reason people don't work on climate change is they want to use it as an excuse to deal with the poor in the future. After all, there is no moral dilemma when it is a natural disaster as opposed to genocide.

Capitalism is not for the poor. Products are built for people who can afford them. If there was an economic opportunity in serving the poor, everyone would be competing for that market.

Frankly, I'm really conflicted on this subject. On one hand, I fully agree with you and understand human nature is selfish and I often take a nihilistic worldview. On the other hand, we are an intelligent species capable of transcending our nature. I still don't see any use for supporting billions of people who can't produce or contribute anything other than basic human compassion (which is difficult to extend to billions)

With climate change and the flood of future immigrants (immigrating to survive) with little economic value, the growing isolation of individuals from society, the destruction of community and religion, political polarization; I don't know, I feel like it's going to be brutal.

Who knows, maybe I'm wrong and technology, abundance will uplift everybody? Wishful, hopeful thinking?

hbt··on My Biggest Regret as a Programmer
As everything is being digitized slowly, we truly are moving to an information economy.

Programming is the ability to manipulate that information for a purpose. You can be a programmer and make money if you combine that ability with specialized domain knowledge.

But the ability to program alone makes you interchangeable in the business. Just look at the hundreds of gigantic (5000+ employees) consulting firms selling expertise. The only people who make big bucks are the ones with domain knowledge.

I do think that programmers are at the forefront of the future of employment. Every other sector is afraid of automation, concerned about their algorithmic skills and routine tasks being done by machine and uncertain about how they will fit in a future where their skills are useless.

Programmers feel like that every few years (or months if you're a JS programmer ;-)) or on every new major project in a different domain.

But we get distracted by the fact that we spend so much time keeping up with the new tech that we confuse it for valuable knowledge. The new framework/language/api/etc. is only a tool to extend our ability and without domain knowledge in a sector (finance, healthcare, retail etc.), we have as little value as a paralegal or a doctor who can diagnose and treat but cannot invent a cure.

Unlike any of those professions, they are not 100% digitized. Programmers are forced to accept the limits of their intelligence and their capacity to learn new domains very early on. Nothing is preventing you from writing something truly amazing on your computer.

This community often gets it twisted. Let's face it, if you could innovate instead of repackage, you wouldn't need marketing or sales to communicate the value of your work. However exponential improvements and radical innovation are difficult, everyone settles for incremental improvements and have to spend their time marketing to persuade people that their product is better. (most likely by only a small margin from the competition. a margin most people wouldn't give a fuck about if they really understood the product)

hbt··on Microsoft Cognitive Services
Something I'm starting to realize with all these AI APIs is how difficult it is to evaluate and compare the results.

How do you know their algorithms are better than the competition? The marketing buzzwords are all there. "Powerful algorithms", "never seen anything comparable" etc.

The worst part is the algorithms might work well with certain data sets but fail miserably with others.

hbt··on How to reduce the cognitive load of your code
The main thing most programmers overestimate is their own working memory i.e the number of things you are retaining when writing a piece of code.

Problem is: working memory is short term. After a few days, you revisit that code and you realize how much it costs to load it all in your head again.

Basically, we need code reviews of code we wrote last week as opposed to code we wrote yesterday.

hbt··on How to reduce the cognitive load of your code
There are so many similarities between writing code and writing English.

- Thinking of paragraphs as functions with one purpose

- keeping sentences short to reduce load on working memory and increase comprehension

- create visual breaks to help the reader by grouping common stuff together as mini-functions

- reduce intimidation factor of reading by removing convoluted stuff

- remove cognitive noise (dead code, unnecessary comments, variables declared out of context or too soon etc.)

- keeping terminology consistent across the code (domain language)

- not using double negatives e.g a = !notLocked

- using automated systems to simplify expressions (e.g weird boolean conditions http://www.wolframalpha.com/input/?i=a+%26%26+b+||+c )

etc.

Unlike English, it is less difficult to have a program reorganize your code to make it more readable based on a set of cognitive principles.

But, beyond the readability and understanding of a function, we should also learn from other engineering fields. For example, system thinking helps tremendously in organizing code if the cost of refactoring code wasn't so risky in dynamic languages.

hbt··on Andy Grove’s Warning to Silicon Valley
Note he didn't provide a solution to scaling companies domestically other than taxing offshore products.

That type of protectionism may work domestically but it means that American companies cannot compete overseas if they are being undercut on price.

It looks like technology will fix the problem in time. American companies will start manufacturing in the US but there will be no jobs, just automation.

The focus should really be: how can we increase the intelligence of the average worker so they can compete in the new economy and not just "live life on basic income" or "get an overseas job waiting to be automated".

hbt··on Autocomplete from Stack Overflow
npm and maven modules are not easily discoverable

- How do you search for a function other than by description or name. Assuming the developer classified properly and you even happen to use the same domain language as the writer.

- When multiple modules are returned, similar packages, how do you compare and select efficiently without wasting hours reading the code, evaluating it, checking if it is still maintained and hoping there are no hidden bugs etc.

It is easy to share code. Package manager even facilitate updating code. But it is still a nightmare to find/discover code and reuse it

It's like building a lego set. You know the building block you want but if you have to spend hours looking for it, you give up.

I believe competent developers write shitty code not because they are lazy or inexperienced but because the cost of writing great code is very high.

hbt··on Autocomplete from Stack Overflow
It still astounds me that we haven't solved reusable modules in 2016.

Sure, we have libraries, apis, package managers etc. but every time I read a code base, there is always a utility function reinventing the wheel.

Someone wrote it because it is still difficult to discover modular code and reuse it easily.

It's pretty nuts when you think about it. Imagine mechanical engineers having to recreate the same CAD file because they can't find a component with the same functionality (which does happen but for other reasons e.g intellectual property).

But we don't have the same intellectual property challenges and yet the best tools we have to discover and reuse code are 90s search engines that treat code as raw text with zero contextual understanding and often outdated code snippets.

PS: I love your project btw.

hbt··on Factorio – a game where you can automate basically anything
This is an amazing game, especially in multiplayer.

When playing with others, it's comparable to programming with others. It's about communication, people will try to optimize stuff that already works, people will argue about how to build stuff or when to refactor stuff. Sometimes they will build something in a weird way and argue why this is the best way etc.

It can be a nightmare with the wrong people or a lot of fun with intelligent people who can control their emotions.

Also, the community is amazing and there are tons of mods.

hbt··on Things that aren't progress
It's amazingly difficult to find the right metric when you are still at the MVP level.

However, once the system has proven itself, it's only a matter of optimization.

I think it's one (amongst many) reason why so many startups fail at the MVP stage. Looking for metrics at that stage is just speculation; optimizing for them is a complete waste of time. The focus of the MVP is to build a proven system without getting lost (minimal waste of time/effort/resources).

hbt··on How JetBrains Lost Years of Customer Loyalty in Just a Few Hours
Intellij has no choice but to do this. Otherwise they lose revenue.

They have mature software products and people are not going to renew the license every year for a minor update. Most of their products are so mature that you can buy them once and never look back.

So how do they make up for this one time sale? Switch to a subscription model and convince users it's in their best interest.

Frankly, I don't care about paying money every month; IntelliJ is worth the price. However, I never update software unless there is a major bug or major features. Updating software is always a gamble and if you customize it, it often requires additional work (deprecated plugins, invalid keymap, new bugs etc.)

I hope they get this right and find the right business model to stay afloat without ruining the relationship they have with their customers.

hbt··on Eve Version 0
use a virtual machine or install windows as dual boot.

If this software solves a problem you are really having, nothing would stop you.

hbt··on Mathematical software wish list
Is there a similar thread for software development?

I'm not sure what keywords to google. Reply with links if you got any.

Thanks

hbt··on 2015 State of Devops Report [pdf]
>> Research shows that teams with more women members have higher collective intelligence and achieve better business outcomes.

The research used is this paper https://publications.credit-suisse.com/tasks/render/file/ind...

which claims having more women on the board has achieved better business outcomes.

Which is fine until you start digging and find out that they passed legislation in Europe forcing companies to be more diverse. That companies in Europe had the number of women on boards double in less than two years http://imgur.com/a/4sE2y despite a recession and stagnating economy.

Then they justify the economic "recovery" since the 2008 crash to that decision.

And now hiring more women is associated to economic growth.

You should hire and compensate people based on the value they generate. Instead companies are becoming political parties trying to reach diversity quotas to satisfy the local demographics and government policy du jour.

This has been going on for decades but there is nothing like government intervention to accelerate a disaster.

hbt··on Ask HN: What problem in your industry is a potential startup?
Requirements traceability. Linking your SRS, code, tests, metrics together into an organized information tree.

Also, find a way to generate passive income for FOSS developers and crowdsource FOSS projects and turn them into decent products (proper doc, saas api, maintenance/support etc.) .

hbt··on The Post-Ownership Society
Automation may seem unintuitive economically but the alternative is much worse.

Food workers tend to be minimum wage workers. Minimum wage really stands for minimum living wage which is different from place to place and somewhat artificial (e.g rent). If minimum wage workers could be paid less, the "owners of capital" would (because they don't generate that much value)

Example: if you order a 9$ burger and it costs 5$ to "manufacture" a burger (food processing, shipping, preparation etc.) and 4$ to have a minimum wage workers assemble it; by eliminating the minimum wage worker, eventually the price of the burger will go down.

But who will buy burgers? Automation/technology is about turning goods into commodities. Eliminating scarcity.

So, yeah, I would work for the guy killing minimum wage jobs because without him, 10-15 years from now, you'd be paying 25$ a burger and most of it will go to the minimum wage worker making 15$/hr doing a job a machine could do.

I won't bother to argue how mind numbing those jobs are.

hbt··on Why life is absurd
the assumption the author makes is that longevity will only bring us more time and that pretty much everything about the human condition will remain the same.

It is tedious to be human. The amount of time dedicated to maintaining one's body even when young and healthy can feel tiresome.

Longevity is not about extending our misery but about finding a way out of these limited meat bags.

Perhaps there is a meaning and the universe is not absurd, maybe our minds are simply too stupid to figure it out. Maybe if we extended our brains, increased our intelligence...

Only time will tell. That's why we need more of it. That's why it's worth putting up with the daily bullshit called living until it reaches the breaking point.

hbt··on The Developer's Dystopian Future
It's not so much change as it is exploration. You can either wait for the best player to come out or start betting.

In the 70s, the exploration was with different hardware architectures and then we settled with general purpose computer chips.

In the 90s, it was operating systems, protocols and standards. Eventually commercial interests (mainly Microsoft) lost and we settled for open stuff they couldn't control.

Same story with cloud computing, a technology that didn't really exist 10 years ago and is still being developed. Eventually we will settle for aws or openStack and common processes will be developed that companies like linode, amazon, google etc. can all share and use and the software will be open source because there will be no major differences between all of them.

Every technology experiences a phase of exploration where people contribute left and right and eventually we settle for a handful of major players. Remember the MVC frameworks competition in Ruby/Python/PHP less than 8 years ago?

Just bet carefully

hbt··on Firefox 29
Stylish is applied post-rendering in Chrome. It works fine in FF because of the browser API.

In chrome, because of the limitations of the extensions API, it doesn't cover chrome pages, developer tools or source view. If you pick a dark background in Stylish and visit a site with a white background, you will see flashes of light because the extension takes over after the document was created and chrome stylesheet was applied.

Check out http://code.google.com/p/chromium/issues/detail?id=1373 for more details

hbt··on Firefox 29
Agreed. The multi-process vs single process is controversial. With cheap memory, multi-process would be better. However, I personally don't experience crashes several times a day.

A crash usually boils down to Javascript taking too long and/or maybe rendering issues with CSS (hardware acceleration). However Chrome is not immune to bad JS and will also slow down your system until the single tab is killed/crashes.

Overall, a crash is not really that dramatic. The browser restarts, all tabs are still there and only load if you click them, you can use Lazarus to auto-save all form inputs and not lose a single point of data and it resumes at the exact position in seconds (no need to scroll either).

Just add NoScript and block the sites where developers can't write decent JS.

>> it happens several times a day in Firefox

If it happens frequently regardless of the sites you're visiting then it must be extensions or hardware acceleration or plugins. i.e a configuration problem and not a FF one

hbt··on Firefox 29
If you want a highly customizable browser, Firefox is it. Chrome is in its infancy when it comes to customization and they often make decisions that prevent power users from taking advantage of their browsing experience.

For example, they've disabled custom stylesheets in recent releases despite a clear indication that people were sharing themes, they have very old bugs that don't get resolved (like the stupid white flashes on dark themes), major accessibility issues.

Generally they try to appeal and prioritize regular users (which is fine) but go out of their way to make decisions that ignore power users and not even provide alternatives intentionally.

Finally and the most frustrating part is they don't value feedback. https://code.google.com/p/chromium/ is a joke and a waste of time. The most starred issues are often closed to the public when it reaches a certain level and users are asked to submit a new bug again if the old one is not fixed. This means that if there is still a bug, you have to wait months before other users experience it, find the time to search for the bug and star it, reach enough stars to get attention and then get a response. Bugs are often miscategorized and the wrong team has it in its backlog. It's a mess.

There isn't a feature in Chromium or Google Chrome that Firefox doesn't deliver.

Take it from a serious chrome user and extension developer for several years, switch to Firefox if you want to tweak anything that bothers you easily without having to change the damn source code.

hbt··on Ask HN: Idea Sunday
List would supported nested lists i.e it would be a tree

In terms of rewards or monetization, it would be possible to gamify contributions ala stackexchange and rely on affiliate links for commercials tools and perhaps even share the revenues with the top contributors or offer them options on what to do with the money

hbt··on Ask HN: Idea Sunday
I think every attempt at an argument should be followed by an attempt at a counter-argument.

For example if I cite a study as a reference, a counter argument could be the methodology used to gather the data

Edit: @harpastum made an excellent suggestion of existing sites. Disregard this

hbt··on Ask HN: Idea Sunday
A site to organize systems.

There are plenty of "List of frontend development tools" or "list of git tools".

I want a site where users can build lists, share them, vote on them, categorize the content and update it with the new tools.

alternativeto.net is a partial attempt at doing that but it doesn't take a systems thinking approach

hbt··on Online course: Build your own simulated computer, assembler, lang, OS, & game
The actual link to chapters and pdf files http://www1.idc.ac.il/tecs/plan.html
hbt··on What does 0^0 equal? Why do mathematicians and high school teachers disagree?
I've always thought the best explanation was

7^2=7 * 7=49

7^2/7^2=7 * 7/ 7 * 7=49/49=7^(2-2)=7^0=1

But 0^0 was never intuitive to me.

← PreviousPage 5 of 6Next →