Hacker Newsnew | past | comments | ask | show | jobs | submit | cnt-dracula's commentslogin

I think there was a discussion regarding this last year where linus was saying that they are already thinking of who will call shots after him so I think even though right now it's very much a linus thing, I think they are already prepared for the next person to lead it in case we ever need it


Hi, thanks for your work!

I have a question, as someone who can just about read assembly but still do not intuitively understand how to write or decompose ideas to utilise assembly, do you have any suggestions to learn / improve this?

As in, at what point would someone realise this thing can be sped up by using assembly? If one found a function that would be really performant in assembly how do you go about writing it? Would you take the output from a compiler that's been converted to assembly or would you start from scratch? Does it even matter?


You're looking for the tiniest blocks of code that are run an exceptional number of times.

For instance, I used to work on graphics renderers. You'd find the bit that was called the most (writing lines of pixels to the screen) and try to jiggle the order of the instructions to decrease the number of cycles used to move X bits from system RAM to graphics RAM.

When I was doing it, branching (usually checking an exit condition on a loop) was the biggest performance killer. The CPU couldn't queue up instructions past the check because it didn't know whether it was going to go true or false until it got there.


Don’t modern or even just not ancient cpus use branch prediction to work past a check knowing that the vast majority of the time the check yields the same result?


All the little tricks that the CPU has to speed things up, like branch prediction, out of order execution, parallel branch execution, etc, are mostly more expensive than just not having to rely on them in the first place. Branch prediction in particular is not something that should be relied on too heavily either, since it is actually quite a fragile optimization that can cause relatively large performance swings with seemingly meaningless changes to the code.


Branch prediction is great for predictable branches, which is often what you have, or a good approximation to it. I forget the exact criteria, but even quite old chips could learn, e.g., all repeating patterns of length up to 4, most repeating patterns of length up to 8 and fixed-length loop patterns (n YESes followed by 1 NO) of any length.

Quite often, though, you don't have predictable branches, and then you'll pay half the misprediction cost each time on average. If you're really unlucky, you could hit inputs where the branch predictor gets it wrong more than 50% of the time.


The best answer to your question is some variant of "write more assembly".

When someone indicates to me they want to learn programming for example, I ask them how many programs they've written. The answer is usually zero, and in fact I've never even heard greater than 10. No one will answer a larger number because that selects out people who would even ask the question. If you write 1000 programs that solve real problems, you'll be at least okay. 10k and you'll be pretty damn good. 100k and you might be better than the guy who wrote the assembly manual.

For a fun answer, this is a $20 nand2tetris-esque game that holds your hand through creating multiple cpu architectures from scratch with verification (similarly to prolog/vhdl), plus your own assembly language. I admittedly always end up writing an assembler outside of the game that copies to my clipboard, but I'm pretty fussy about ux and prefer my normal tools.

https://store.steampowered.com/app/1444480/Turing_Complete/


This is one heck of a question.

I don't know assembly, but my advice would be to take the rote route by rewriting stuff in assembly.

Just like anything else, there's no quick path to the finish line (unless you're exceptionally gifted), so putting in time is always the best action to take.


I think the logitech MX mouse are really good, in fact, I buy refurbished or second hand and they still last years of ruff use. Although, they are quite expensive and I have heard some people don’t like the shape ( shocking for me as that was the only reason I bought one in the first place)


Wow, I used to like midnight commander a lot but moved away from it. Seeing things like that being built relatively easily makes me want to try using this for my personal project! Good work.


Why do you think so? I assume that writing the same piece of code in assembly would take more than twice as long (conservative estimate) if you do the same in high level languages without much benefit. Can you elaborate your opinion a bit more as I am curious. I have been wanting to get into learning assembly but just cant seem to do it as high level languages are so easy to code in and want to know if anyone really uses assembly nowadays.


You are perfectly right. Basically, it is "moving the lines".

Taking more time to code, even duplicate some code paths for major ISAs is saner than to depend on the planned obsolescence of grotesquely and absurdely massive compilers and many computer language syntaxes. See that as short term thinking vs long term thinking.

You would find some kind of middle ground when combining those with high level scripting languages.

Think about a world where many code paths are available in risc-v assembly, with risc-v written python-like interpreters.


It’s sad that a company can’t accept negative PR and show them that they do indeed support their employee’s actions. I think it has more to do with how all organizations want to feel professional instead of nerdy and fun.


I think the issue is that the joke made Microsoft look bad (like they copied another company's product). Google has a big April Fool's collection, but you can imagine their PR department probably would not let anyone's joke reference that the product would be sunset in 18 months.


Agreed, but I think your Google idea would be pretty funny.

Google sunset - from now on each product will have a countdown clock on its webpage to its death which is either when the clock hits zero or the lead dev makes promo, whatever comes first.

Another easy target would be the release of the 16th chat application that’s even shittier somehow.


> Another easy target would be the release of the 16th chat application that’s even shittier somehow.

Now presenting: Google Hangups(tm)


Here's the problem as I see it...

Tolerating or even enjoying "make fun of yourself" humour feels important to me. How much sting you can take says something, and you need to build up a tolerance. If "jokes about the boss" are always of the bootlicking variety, those are the only acceptable jokes and decent people will just avoid humour.

It's a scale though. An ill advised joke can have scary consequences in China.. Poo. At the same time, crass WW2 jokes don't always go down well in Germany... and liberalism or democracy don't change this.

Anyway... MSFT, Amazon & such are heading towards East India Company market caps. At this scale (and at small scale too), I think a thick skin is essential to an open culture.

The concept of "corporate culture" is both bullshit and profound at the same time. OOH, it' the drab topic of dilbert land. OTOH, corporate culture is >51% of total culture. It matters whether or not corporate culture is open.


The joke made Microsoft look bad because Microsoft was bad then, and in the years before, and in the years behind.

Microsoft basically from Gates' reign was a lot of, "Copy the shit that we see others do."

Ballmer at least had the audacity to attempt something original like the Xbox. Steve gets a horrendously bad rap, but if you look at Microsoft's products from the start of his time as president (1998) to CEO (2000) and until he was replaced by Satya Nadella, Ballmer was trying to provoke his people into something new.

Nowadays, Microsoft is actually an innovator making some really impressive products (the entire Surface line, Azure, etc.).

Gates is boring, bland, and a "genius" at realizing the future potential of technologies (Xerox's GUI, The Internet, mobile phones, tablets, etc.), but he absolutely sucks at producing something that will appeal to a consumer. I've said before that if you could combine Gates' understanding of future tech with Steve Jobs' ability to understand design and consumer desire, you'd have an unstoppable entrepreneur. The only other person out there who I think even comes close is Elon Musk.


I'm not sure what employee actions they're supposed to support.

MS didn't get a chance to 'support' this, these guys did the thing on their own.

If I'm MS I'm not sure I want to do a lot to "support" them after the fact as I really don't need groups of other employees stocking the shelves with fake products...

Any prank that looks like it has someone else's name on it, or approval... but isn't approved is just always going to have a risk associated with it.


When you're employed by a corporation, to what degree are you an individual and to what degree are you an extension of that corporation?

Microsoft isn't a person or individual. For MS to support something...really means some hundreds of individuals inside MS support a thing and have coordinated to communicate that support to the other hundreds and BOOM, MS now supports a thing (or doesn't).

All of this is about permissions, ownership, and labeling. I'm inclined to think the corporate world has it all wrong.

MS supported this by virtue of MS employees doing it. MS was also schizophrenic about it and smited its left-hand for not properly filing a request in triplicate with the brain.


>MS supported this by virtue of MS employees doing it.

Would that apply to say crimes?

Should corporate then get to tell people what else they can't do since being an employee includes '<company name> support'?

I think you're inadvertently wandering into some really wonky territory.


> I think you're inadvertently wandering into some really wonky territory.

Undoubtedly :P

As for crimes, I think the US legal system supports my view more than the one that clearly separates these employees from the MS entity. MS may fire the employees as a result of their actions, but up to a point, MS is fully liable for their actions as representatives of the company long before the employees are liable as individuals.


But just because you're an employee doesn't mean you have unlimited authority. Getting the janitor to sign a billion dollar contract doesn't mean that Microsoft has agreed to it. The new-hire intern can't go on the news and make binding promises about corporate strategy.

It sounds like these employees used the printing presses in unauthorized ways, put unauthorized products on the shelves, and probably even used trademarks and whatnot without authorization. The properly-authorized managers of the company would be within their rights to disavow them, or maaaaaybe even prosecute for misusing resources.

I realize I've massively over-analyzed this, and MS would've been huge assholes to prosecute over this. But I think they legally would've been able to.


>used the printing presses in unauthorized ways

Who gets to authorize what? <- That's largely my point in all this. We can joke about Bill Gates' specific view on the incident. And we know its relevant because (at least at the time) he was a majority shareholder. So we know his opinion would've been closely correlated with the entity Microsoft's opinion. But MS isn't Bill Gates and his opinion would have just been one among many.

Presumably there's a document somewhere that can trace itself back to the first charter establishing 100% ownership of a corporate entity as held by one or a few who then (following the rules set in that charter and subsequent ones) built an organization known as Microsoft with many rules and stipulations to distribute and represent that ownership (all the while giving away pieces of it left and right).

The question of who is and isn't Microsoft strikes me as a Ship of Theseus problem. As for the answer to that problem: we have society's answer in its legal precedents even if they're ever moving and then we have another nuanced interpretation for every human on the planet who bothers to think about it.


"we didn't do this, but we suspect it was an employee. Either way, it's pretty funny."


Agreed it is a funny line and prank.


Ummm, this was done on April 1st. I would have killed for a box. In fact, I'd kill for one now, but I didn't see any on Ebay.


It's hard for any company to support the actions of their employees once they go lone wolf and depart from the approvals and procedures the company has put in place. Even Bill wasn't happy with this and more importantly when it comes to April Fool's jokes, he wasn't laughing.


Just shows that he has no sense of humour. Humour isn't usually funny if it isn't pointing at legitimate criticism - in this case, it was making fun of Microsoft. Inability to laugh at yourself just makes you stuck up.


> The PR flacks, on their own, tried to clean up and bury the whole thing, out of fear that BillG might get really angry about it. (He never did. Nor did Legal. In the end, it was all a huge overreaction by PR.)

Not sure where you got "Even Bill wasn't happy with this"


I got it from...

> BillG said, in effect, that the prank was not in good taste, and that it made Microsoft look stupid rather than clever - especially as a catch-up to Sun Microsystems. We learned he was repeatedly calling the prank “in poor judgement” in meeting and internal memos.


April fools pranks should leave the recipient laughing at themselves for their own foolishness, otherwise it is just a mean spirited prank at the expense of someone else. Pranking a major organisation is just too hard: there are too many different people with different personalities involved.


I think its more about how a company defines itself. I could totally see Musk encouraging an employee to troll the NYT or some other outlet on April 1st.


I'd think the company would be concerned of these pranks defaming the company if enough employees did them.


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

Search: