Live data from Hacker News

Fresh IDE

fresh.flatassembler.net

51–60 of 83 posts

Re: Fresh IDE

#51
post #13
post #2

It would make a better first impression if your hero screenshot didn't have font rendering from circa 1995.

I know that comment seems superficial, but when I saw the Windows 98 style GUI, I actually thought that perhaps this was an abandoned project someone was bringing up for nostalgic purposes.

We have been conditioned to prefer style over substance.

Re: Fresh IDE

#52
post #37

Earlier quoted context omitted.

Interesting. Are you sure the increase in code reliability goes down to the language and not your skills? It feels quite contrary to my experience that a lower-level language would be more reliable.

Well, I am pretty average programmer. Not the worst, not the best. The code reliability of assembly programs is better because programming algorithms in low level, the programmer controls every aspect of the execution. Notice, that excessive use of code generation macros will cancel this advantage. Another advantage is that the bugs in assembly programs usually cause immediate crash of the program and this making the…

What about code maintainability and readability - I'm guessing that must be worse when compared to a HLL? Also, what made you get into writing complex programs in assembly - was it just the extra control? I've used assembly when I needed to optimise my C code, but it was a slow and difficult process! I would not really choose it for complex stuff, but I'm really interested to hear your point of view.

Re: Fresh IDE

#53
post #36

On a side note, check out how they have laid out the curved screenshot. It is apparently a stack of images. That helps setting the text to follow the couture of the curve.

There's actually a CSS property just for this called `shape-outside` [0].

It lets you define a shape of an image (or other element) that makes it so when it is floated, other elements can wrap up against it correctly.

[1] is an example I just quickly made to show how the linked page could have been done in straight CSS. It works a bit nicer too as the text smoothly wraps instead of stepping like the linked article does (although there is no reason why both methods can't be combined to provide a smooth stepping where possible, and fallback to the approximation they used when it's not supported)

It's browser support is pretty awful right now (only chrome, safari with the `-webkit` prefix, and basic support in firefox behind a flag), but if it makes it to standardization, it's a pretty neat tool to be able to reach for in these cases.

If there were an easier way to see if the website itself was open source, I'd try and give it as a quick patch, but it doesn't look like the website itself is open source anywhere that I can find.

[0] https://developer.mozilla.org/en-US/docs/Web/CSS/shape-outsi...

[1] https://jsfiddle.net/c1ffdpgq/2/

Re: Fresh IDE

#54
post #36

On a side note, check out how they have laid out the curved screenshot. It is apparently a stack of images. That helps setting the text to follow the couture of the curve.

That's a clever solution! There's an experimental way to do this in CSS - but it's not well supported yet:

https://developer.mozilla.org/en-US/docs/Web/CSS/shape-outsi...

And likely this can be done with SVG as well.

Re: Fresh IDE

#55
post #48
post #41

Earlier quoted context omitted.

Actually the only Assembler I got disappointed with bare macros support is gas. I never used FASM, being an old MS-DOS grey beard, but tasm/masm macros were quite powerful, specially after MASM 6.0. So I never got the idea they were like cpp macros. Regarding the educational purpose with macros, are you aware that TI has some CPUs with an Assembler that looks like C--, or that AS/400 Assembly supports objects?

Back in the day, there was a bit of a hierarchy amongst home computer users, with Amiga assembly programmers deriding x86 syntax. I also knew a few people who nominally programmedi in Turbo Pascal, but whose code was 70% inline assembly... And weirdly enough, a few marooned Acorn Archimedes/RiscPC programmers waxing poetic about their ARMs. (And if there ever was some niche of a "MenuetOS"-like OS, it would probably…

Yeah, looking back I would say Turbo Pascal, Turbo C, Turbo Basic and AMOS on Amiga were the Unity of the early 90's game dev on home computers.

Anything that actually required extracting performance out of the system was straight Assembly, which I why it is ironic that new generations think that C compilers were generating fast code since day one.

I also knew a few people that did it like that, to save money on an Assembler.

Re: Fresh IDE

#56

Earlier quoted context omitted.

Well, I am pretty average programmer. Not the worst, not the best. The code reliability of assembly programs is better because programming algorithms in low level, the programmer controls every aspect of the execution. Notice, that excessive use of code generation macros will cancel this advantage. Another advantage is that the bugs in assembly programs usually cause immediate crash of the program and this making the…

Thanks for sharing! This is really interesting, especially the part about the reduced count of abstraction layers. Do you think the abstraction layers are the problem, or the fact that the overwhelming majority of "abstractions" that materialize in modern high-level software are leaky?

Why adding abstraction layers makes programming easier?

Because allow the programmer to not think (and even know) about some things and leaving them to the layer/libraries.

But every layer adds also a level of obscurity. The interaction between multiply layers is even more undefined and random.

It is OK while everything goes as expected. But when there are problems, the obscurity can make the debugging a hell.

In addition, the behavior of the bugs hidden deep in the layers (or in the way the layers interacts in between and with the application) can be really weird.

That is why, IMHO, the programmer should keep the abstraction layers to the minimal count that allows solving programming tasks with minimal effort, counting not only the coding time, but debugging and supporting time as well.

In my practice, I decided that using FASM with Fresh IDE and set of assembly libraries gives me the needed quality of the code.

Re: Fresh IDE

#57
post #52

Earlier quoted context omitted.

Well, I am pretty average programmer. Not the worst, not the best. The code reliability of assembly programs is better because programming algorithms in low level, the programmer controls every aspect of the execution. Notice, that excessive use of code generation macros will cancel this advantage. Another advantage is that the bugs in assembly programs usually cause immediate crash of the program and this making the…

What about code maintainability and readability - I'm guessing that must be worse when compared to a HLL? Also, what made you get into writing complex programs in assembly - was it just the extra control? I've used assembly when I needed to optimise my C code, but it was a slow and difficult process! I would not really choose it for complex stuff, but I'm really interested to hear your point of view.

Code maintainability and readability depends only on the programmers knowledge of the language/framework/libraries used.

For example, I don't know Lisp, so for me it is much harder to read/maintain Lisp project than assembly language project.

Re: Fresh IDE

#58
post #15

Earlier quoted context omitted.

Start simple and hook fasm in with a "normal" gcc/g++ project... I wrote a page[0] ages ago on integrating C/C++ with the HeavyThing library and a good portion of that has nothing to do with my library specifically and is a great starting point to mess around with assembler on a Linux platform. The only other pointer is the "call PLT" format for calling externally linked functions from inside your fasm objects but th…

That makes a lot of sense. I could combine this with viewing gcc's assembly output, as well! Thanks :D Edit: This page is ridiculously comprehensive. Wow.

The official fasm tar comes with a few hello world examples. One shows you how to say hello with libc, other with the kernel (then there's x86 and amd64 versions of bout).

http://chamilo2.grenet.fr/inp/courses/ENSIMAG3MM1LDB/documen... is the official spec for the amd64 calling convention (aka ABI) on unices. http://www.logix.cz/michal/devel/amd64-regs/ is a nice table showing what goes in what register (still amd64) when calling a C library or the kernel. X86 library calling convention is just putting everything on the stack, while the kernel convention.. i don't remember (int 80 and syscall in eax, but arguments..). There's a syscall table https://filippo.io/linux-syscall-table/ and i made a fasm to include https://pastebin.com/nnrMVF8u (amd64; i made from the kernel source headers, that i can't find now).

That's about all there is linux specific.

Re: Fresh IDE

#60
post #8

Oh boy, the memories from all the "IDEs" there were for NASM. In the end, it was just easier to use your favorite editor, because most of them just had a pretty color scheme for assembly. This looks pretty sweet, though.

AS a kid I remember those days. I spent like $100 because the IDE was going to help me crack all the gamez. Whelp that was a sorry waste of money.

Haha, I managed to crack a couple programs by following the +ORC cracking tutorials and a (cracked, of course) copy of SoftICE. In fact, that's how I got interested in assembly. Then I learned C and started using Linux as my operating system, so I didn't have a need for either thing anymore :/
Post reply on HN