I wonder if people have changed their minds about me...
I've been around in the Win32ASM-world since the late 90s, back when it was little more than the #Win32ASM channel on IRC, with a few people like hutch, Iczelion and the like.
I suppose I was one of the first to 'clash' with hutch's enormous ego... Much the same as what happened later with f0dder, if I tried to correct hutch when he was giving poor advice to someone, or when I suggested improvements/bugfixes for the masm32 library or such, he would get abusive.
He tried to set people up against me, and actually succeeded, because most people still saw him as an absolute guru back in the day, and just blindly followed him.
I suppose because I was the 'distraction', f0dder wasn't under attack as much in those days, and he was able to establish a good reputation and favourable position within the community, while hutch was busy tearing me down.

He managed to trick Hiroshimator into thinking that I was the cause, and that banning me would stop the problems on the forum.
Obviously, this wasn't the case. After I was gone, hutch just redirected his stream of abuse to the next target, f0dder. I suppose this was essentially hutch's downfall... Because even though I have never had the opportunity to build a good reputation for myself on the forum, f0dder did.
So while I was completely on my own, with the entire moderator staff against me everytime hutch started the abuse, f0dder was actually defended against hutch's attacks, and didn't have to shut up or fight back.

This eventually led to hutch pissing off one moderator after another, losing his almost unconditional support in the community. Slowly but surely, f0dder also unmasked hutch as a rather mediocre programmer, rather than the guru that most people mistook him for.

In the end, even though I was long gone, hutch continued fighting with everyone who got in his way. I also saw my name still popping up frequently... and when I occassionally ran into other Win32ASM programmers online, even some who didn't know me at all, I got attacked, because hutch made them believe I was the devil himself.

I wonder how people's opinion has changed over the years, now that it's pretty much common knowledge that hutch is perhaps the biggest troublemaker in the community, and far from the assembly expert/guru he wishes to be.
Posted on 2009-07-09 08:11:32 by Scali
The big assembly wars are over. Betov retired recently too.
The Assembly programmers of right now don't care much about these stories anymore. Right now we are at the end of the 32 bit age and we are making the transition to the 64 bit age. It's rather peaceful right now.
Posted on 2009-07-09 08:35:42 by ChaperonNoir
I suppose Betov was after my time. Who were involved, and what was it about?
Posted on 2009-07-09 08:38:49 by Scali
Betov vs Randall Hyde on alt.lang.asm
About what? Well I don't really know but I suppose it was mostly centered around HLA.
Posted on 2009-07-09 08:43:55 by ChaperonNoir
Well, I don't know who Betov is, but I surely know Randall Hyde :)
I started out with x86/DOS assembly with his Art of Assembly book (who didn't :)).
I've never actually used HLA though, always stuck to inline assembly and/or MASM.
Posted on 2009-07-09 08:55:19 by Scali
Memories ... :)

Hi.
I've since long learnt that internet fighting is nothing but a waste of time and energy...even if you are right. But hey, i'm not you and maybe it was worth it? :)
I guess if you bring it back again now it must have some importance to you :D so i'd say, well, as for me, having no knowledge of who did what prior to my arrival, i did find you were right, so i guess other educated nonbiased people would find the same. Don't worry too much, the quality of your work speaks for itself i suppose.




Posted on 2009-07-09 09:11:24 by HeLLoWorld

Memories ... :)

Hi.
I've since long learnt that internet fighting is nothing but a waste of time and energy...even if you are right. But hey, i'm not you and maybe it was worth it? :)


Well, in a way yes... Most of the time I had to fight off hutch because I was trying to help someone else. I wanted to encourage people to think deeper about their code, and to become better programmers. To me that was important.

I guess if you bring it back again now it must have some importance to you :D


In a way, yes. While hutch and I may not have agreed on much, I'm an assembly programmer as much as the rest of the community is. I did have quite a few friends in the community, and I enjoyed discussing code and optimizations with like-minded people.
And because of the ego and political skills of one guy, I was thrown out of the community, and alienated from my friends and peers.
You know how it is when you move from one city to the next... you just lose touch with your old friends.
The same happens with a forum and such. I could no longer contact them, because I was no longer able to send or answer any private messages on the forum. I didn't have email addresses of most of them, becasue I never needed them. And since most of them never contacted me either, we lost touch.
F0dder is the only guy from the Win32ASM-era that I've always kept in touch with, and still do.

so i'd say, well, as for me, having no knowledge of who did what prior to my arrival, i did find you were right, so i guess other educated nonbiased people would find the same.


Thanks, but careful what you say there, people might see hidden meanings there, which non-native English speakers don't pick up :)

Don't worry too much, the quality of your work speaks for itself i suppose.


Thing is that I never really got to show a lot of the work I did, because hutch and Hiroshimator took away this platform from me.
Posted on 2009-07-09 09:22:29 by Scali
I was thrown out of the community, and alienated from my friends and peers.
You know how it is when you move from one city to the next... you just lose touch with your old friends.
The same happens with a forum and such. I could no longer contact them, because I was no longer able to send or answer any private messages on the forum. I didn't have email addresses of most of them, becasue I never needed them. And since most of them never contacted me either, we lost touch.

I understand better then. Not cool.

Thanks, but careful what you say there, people might see hidden meanings there, which non-native English speakers don't pick up

I'm not a native english speaker...So these words please me. :)
"educated" as in, "able to to make their own opinion.

Thing is that I never really got to show a lot of the work I did

I was thinking of the 3d engines.

Posted on 2009-07-09 09:35:40 by HeLLoWorld

I understand better then. Not cool.


Yea, to me it seems like I had to be kicked out only to protect the overly fragile ego of a mediocre programmer with a status he didn't deserve.
It took years before people saw through hutch the way f0dder and I did from the start.


I was thinking of the 3d engines.


Yea, but how many people have really seen most of the stuff? :)
I've posted some demos up on the Bohemiq forum back when I was still active:
http://bohemiq.scali.eu.org/forum/viewforum.php?f=4
Posted on 2009-07-09 10:00:26 by Scali
http://bohemiq.scali.eu.org/forum/viewforum.php?f=4

Yeah, i saw them one day, thats what i was thinking of. :)
Posted on 2009-07-09 10:42:42 by HeLLoWorld
I've kept http://www.asmcommunity.net/hutch/ as a memento of the struggles to create a non-biased medium for assembly language discussion. I'm fairly partial to the last link on that page :P

While it isn't healthy to dwell on the past, it's very healthy to remind yourself of past mistakes so that you may do better by people in the future ;)

Overall, I reflect ChaperonNoir's thoughts in that it is peaceful (as in non-violent) now... and I also hope it stays that way.
Posted on 2009-07-09 10:43:49 by SpooK
When you think about it, it wasn't ALL bad...
Back in the early days, Ewald and I used to play around with DirectDraw and such. We used a framework written in C, because the DirectX SDK only supported C/C++. We wrote the actual graphics code in asm however, to get maximum performance.

But then hutch started nagging us that it would be smaller and faster in pure asm, and how real men did everything in asm and all that...
So at some point, Ewald and I decided to humour him, and we tried to convert the C/C++ headers for DirectDraw to asm. I had been toying around with a plasma routine at the time. Ewald and I would have the compiler output assembly code, and then we studied it, and wrote some macros for it.
In the end we had a nice asm framework, which was almost as convenient to use as C, because of some extended invoke macros. That's the ddraw plasma tutorial that ended up in MASM32. As far as I know, it's still there.
Posted on 2009-07-09 11:32:44 by Scali
You have also changed.
You always said correct things, pointed people in right directions, but used the 2nd most insulting words ever to do so. I'm kind of weak at heart/character (my fault, haven't managed to fix it yet) so I was feeling especially upset reading replies to my posts from you, even got attacked on ethnic basis (from my photo as my avatar, you compared me to a certain group of scum that avoid any education or higher-brain activity, stay dirty etc etc). Nevertheless, I was getting educated with those replies. At the time I was already chatting in ICQ with Hiro a lot, so we discussed your case. It was really only your tone that got you banned, as many others were complaining about it via PM directly to Hiro.
Now, you've softened-up in your posts; though I still remember the times and cower and try to pick my words correcty :)
At the time you were reluctant to back-up your claims by describing or linking to your projects. "I am not allowed to show or talk about them". Later, you posted two gems:
- one small optimized proc where "DS:[]" was explicitly used - thanks to which the proc became quite fast. I still haven't looked deeper into the DS: trick's reasoning.
- your Java rasterizer. Years later I got to decompile it and frankly didn't find it enough optimized. (at that time I already had enough experience optimizing Java bytecode, and had written highest-performance rasterizers [95% of theoretical max] in ARM asm for the games I create and get published at work) Still, your Java demo was nice.
At the time of that DDraw demo you mentioned, I think I was already selling 2D games with heavy ARM-asm, and having found the most useful base-blocks in engines for such 2D game, was porting parts of them to x86 and sharing them here. So some of your remarks to me back then were misplaced :P


Hutch showed his teeth a year or two later, now his _forum_ (not community) is his playground to do the same stuff he found here unacceptable... Plus, the must-have political topic daily. Joined the _forum_ there to share some of my public-domain works with the so many members that have never been here but somehow would rather die than visit (wth has Hutch been telling them?). Anyway, there I experienced something comparable to your "no-one backed me up": I had proven my worth there as a contributor (the libs and help) for years, suddenly one joins and starts bashing asm programmers that they're so stuck in low-level that we'd never see his C genius of finding a way to do multicore without sync. I replied in harsh tone (plus I've been writing serious SMT software since 2003), busted his idea and presumptions, then everyone that I've helped there started bashing me (no, I wasn't in the wrong from any viewpoint). Only Bogdan Ontanu backed me up. Stayed for a few days, sober reasoning didn't show-up, I realized it's a _forum_ of dog-eat-dog, not a community; I promptly deleted all projects I've uploaded there and left :) . Visiting them as a guest once several months, seeing them struggle with stuff I had already solved for them with my projects, seeing them avoid even clicking a link that contains the solution but has "asmcommunity" in the URL, watching them go nowhere for months until they stop. That's the place Hutch dreamed of and brewed...

Haha, my post probably is very cocky, maybe we both should post a list and description of projects we've created/worked on; it could be fun and bring some nostalgia :P
Posted on 2009-07-09 13:45:48 by Ultrano

You have also changed.
You always said correct things, pointed people in right directions, but used the 2nd most insulting words ever to do so. I'm kind of weak at heart/character (my fault, haven't managed to fix it yet) so I was feeling especially upset reading replies to my posts from you, even got attacked on ethnic basis (from my photo as my avatar, you compared me to a certain group of scum that avoid any education or higher-brain activity, stay dirty etc etc).


That is completely not my style, I can't possibly imagine saying something like that.


Now, you've softened-up in your posts; though I still remember the times and cower and try to pick my words correcty :)


I haven't changed, but the difference is that there is not a constant stream of attacks directed at me...
However, your first reply to me was rather aggressive. I don't know why, I don't recall you from the past. You had a bit of that 'alpha-male' going, still do in this post :)


At the time you were reluctant to back-up your claims by describing or linking to your projects. "I am not allowed to show or talk about them". Later, you posted two gems:
- one small optimized proc where "DS:[]" was explicitly used - thanks to which the proc became quite fast. I still haven't looked deeper into the DS: trick's reasoning.


I don't recall that one. I also don't recall not backing up my claims, that is not my style.


- your Java rasterizer. Years later I got to decompile it and frankly didn't find it enough optimized. (at that time I already had enough experience optimizing Java bytecode, and had written highest-performance rasterizers [95% of theoretical max] in ARM asm for the games I create and get published at work) Still, your Java demo was nice.


Well, talking about backing up one's claims... I'd be interested to know what parts you didn't find optimized, and what you would suggest.
You seem to be looking for acknowledgement. You won't find it here, because I don't know you, and I've not seen any of your work.
Posted on 2009-07-09 14:03:41 by Scali
Strange; it is possible I'm mistaking you for someone else, but "Scali" is etched quite well in my mind. That recent first post where I attacked you would have been a little protest against those olden times.
Yup, I'm cocky most of the times, another flaw of mine. >_< I've always worked alone, away from office (the office is very far away, and never had the option to move; there are no programmers in my area) - so competition or talks with other programmers is all getting vented on the net. So, sorry, don't get offended by my posts, don't mind me - realistically there's probably not much to back me up, I'm (like) an angry script-kiddie with wishes for attention lol.

The DS: snippet wasn't an attempt to back-up claims, it was simply a reply to a thread on optimization of such a proc.
Posted on 2009-07-09 14:20:45 by Ultrano

Strange; it is possible I'm mistaking you for someone else, but "Scali" is etched quite well in my mind. That recent first post where I attacked you would have been a little protest against those olden times.


Yea, shame that I turned out to be right, wasn't it? (I'm talking about that post with DX10 and shader asm) ;)

Maybe you can try some search for the threads you are thinking about, and we can see what it is all about, and who is involved. I obviously don't remember everything I posted to everyone, and I may have rubbed people the wrong way in the past... but like I say, insulting people's ethnicity and such, especially based on an avatar, isn't my style.
My style is more along the lines of taking people's own words and using it against them to ridicule them.


Yup, I'm cocky most of the times, another flaw of mine.


So do you or don't you have any advice on how to optimize my Java renderer further? :)
Posted on 2009-07-09 14:26:54 by Scali

I haven't changed, but the difference is that there is not a constant stream of attacks directed at me...


I guess people with morals find it infuriating when other people can blatantly lie so easily, and it's even worse when most people will blindly accept the lie as truth on some horribly twisted variation of an appeal to authority.

It eats away at the core of you. Online or in real life, lies are still lies. You start to feel like you are constantly being attacked, mainly because you are being attacked... in a sense.

The same thing happened to me when I was a target of hutch's character assassination attempts. You can say I brought it upon myself when I finally waived the BS flag on him, fair play and all. However, I was aware of the risks and decided to take those risks anyhow. Sometimes, you simply can't ignore your conscience anymore.

In the end, after you've exhausted yourself in attempts to combat the liars and correct the lies, you just have to realize that it doesn't matter what other people think. Those who are willing to be ignorant, will be ignorant with or without your assistance/effort. Those who are worth their salt, will generally keep their eyes/minds open, ignore the drama, and continue plugging away at more important things.

You "simply" have to remind yourself that you are apart of the latter group, and those who wish to drag you into the former group with them aren't even worth the time of day ;)
Posted on 2009-07-09 14:59:45 by SpooK
I don't want to bother with searching for past quarrels.
Okay, I'm looking up croissant9 again, will post the first things I re-notice; but a little disclaimer first: I code and optimize Java only for BlackBerry and Android. JIT there isn't present.

Math.max() is not getting accelerated. (when JIT is not present)
Use of those 6 float[8] arrays probably should be unrolled into separate float members
Precaching of external objects/values into the local func context is not done enough. Instead, The opposite is done.
Often not inlining enough code.

Of course, JIT could be invalidating any of my remarks, and having all classes, methods and funcs be with names like a.a.a() could be misleading me at places. Plus, I haven't written enough fancy pixel-crunching code, as on those platforms just clearing the background and uploading it to screen makes the app run at 2FPS... (just alpha/custom-blending manually via pixel-work on small tiles is the max I've done there). Plus later I largely gave-up fancy eyecandy there as simply calling native-accelerated methods would take 1ms per call (OS and VM check contexts thoroughly..), thus having more than the gameplay's sprites is overkill :(.
Posted on 2009-07-09 15:07:26 by Ultrano

Math.max() is not getting accelerated. (when JIT is not present)


Yea, the min/max were one of the speedups I discussed in this thread:
http://www.asmcommunity.net/board/index.php?topic=29383.0


Use of those 6 float[8] arrays probably should be unrolled into separate float members


Well, like I said in the above thread... some of the code that stood out in the profiler seemed weird to me, as I could have sworn that the compiler inlined those for me back when I wrote the code.
In this case it doesn't matter that much though, it just makes the code a LOT simpler, and the frequency of access to those arrays probably has little or no effect on the overall performance.


Precaching of external objects/values into the local func context is not done enough. Instead, The opposite is done.
Often not inlining enough code.


That one is just too easy :)
Besides, do you understand the purpose of the engine design? The T&L and rasterizer code are 'hot-pluggable', which is exactly what is being done in Croissant 9, various different types of shading are applied.
So yes, a lot of the code is not inlined, but deliberately, because the engine design is so dynamic. You can just throw in extra shader classes and modify the XML to add new shading. You don't even have to recompile the code.

Obviously, if I were to just write a simple rasterizer with one fixed type of shading, I could inline a lot more code, and remove cerain things altogether. Point is that this is not just a simple rasterizer, it's an engine with the capabilities of a D3D8 videocard, pretty much. But despite that it STILL performs quite well. And as you've probably seen, the innerloops of some of these shaders are insanely complex and completely optimized with packed saturated arithmetic, inlined texture filtering and all that. So it's optimized where it matters. And it shows, because you didn't pick anything from the innerloop of the rasterizer :) That's where most time is spent.
Posted on 2009-07-09 15:25:40 by Scali

It eats away at the core of you. Online or in real life, lies are still lies. You start to feel like you are constantly being attacked, mainly because you are being attacked... in a sense.


Yea, I suppose you just get agitated, lose your patience sooner, are less forgiving and understanding than otherwise, just because of the mood that is set by those attacks.
It's easy to just be on the outside and tell people to control themselves and ignore the bad vibes, but I suppose you and f0dder know that it's sometimes easier said than done.
When people you have never seen before start insulting you out of the blue for stuff that hutch has been feeding them, well, where to go from there? You've been tried and convicted before you've even had a chance to show yourself.
Posted on 2009-07-09 15:32:55 by Scali