Live data from Hacker News

Stockfighter's Jailbreak CTF trainer is live

stockfighter.io

51–60 of 86 posts

Re: Stockfighter's Jailbreak CTF trainer is live

#51
post #16

The user interface is appalling. Whoever designed this has managed to produce worse ergonomics than a single 1970s-style terminal, for essentially a similar set of tasks (editing text+binary files and piping data through commands). I see some discussion of "files", but seem unable to list them or explore the filesystem. I don't know if this in-game filesystem is supposed to be on the "AVR" device or an imaginary "dev…

- Can't have the compiler side by side with the debugger, even though there's plenty of room on the screen - When the PC jumps, the highlighted instruction doesn't follow, leaving you lost when stepping through a program - Can't hit enter on a blank line to repeat previous command - No 'finish' debugger command? - Seem to end up in random functions when stepping over simple instructions - Am I supposed to type 'flash…

Enter on blank lines: easy enough, will do.

Putting the compiler in the debugger was how it used to work. Everyone hated it. Also: it's using Ace, which really grinds Chrome. I can easily add a pure textarea tab that will let you edit code, if you _really_ want it.

To run a C program, do one of two things:

* Compile it in the source editor, which will generate a blob of compiler output (which is deliberately not documented) that the browser will cache.

* Use the "flash" command to write it to SPI flash.

* Use the "vmload" command to send a SPI message to the AVR to reload the program from the SPI flash.

* Use the "vmexec" command to send a SPI message to the AVR to execute the program.

OR

* Compile it in the source editor

* Type "run", which does all the rest of those things.

I like Microcorruption's UI, too. I gave this one more to do. I agree: it's not there yet! Working on it. How elaborate do you want the web-based debugger built on this API to be? :)

(I'm serious: thanks for the feedback. This section of the thread is the stuff I was hoping to get).

Re: Stockfighter's Jailbreak CTF trainer is live

#53
You all have great timing. It's very likely that something will melt down soon, but I'm not going to notice, because I'll be in a chair getting my arm inked up. It's going to be a nine-fives kind of day!

Mean feedback about the UI, especially if accompanied by an even meaner summary of what you'd rather the UI does instead, is most welcome.

Later

(Erin's Calcifer tattoo is taking longer than expected, so if you want to wait like another 15 minutes before doing whatever unforeseen sequence of things in the UI that will hard-panic all the servers, your timing will be perfect).

Re: Stockfighter's Jailbreak CTF trainer is live

#54
post #50
post #24

Earlier quoted context omitted.

Hi man, I just interrupted my game of Overwatch because a colleague pointed me to this comment. My C compiler in Haskell is located here: https://github.com/tinco/nanc it's not fully functional yet, but will be soon ;) Also, just got owned by a team with 3 tracers :( edit: Just read what this thread is about. I really like to program, so much so that I usually find an hour or two per day to code (not every day, check…

Do you code for your day job, though? Your profile suggests you may be a technical manager. I'm guessing you don't code for 8-10 hours a day, then come home and code for 1-2 more hours[0]? That's the argument the parent is making. I know that I personally am only good for 4-6 hours of productive coding. Any more than that and I write bugs, not code. [0]: If I'm wrong and you're doing 10-12 hours of productive code a…

Haha, yeah you are correct. Unfortunately I usually don't get more than a few hours of code in per day at work. I lead a small development team, besides that I also assist in sales and communicate with customers.

Today was a good day and I spent about 6 hours staring at code at work, and maybe will get about a half hour of hobby coding in before I go to bed. I would agree that anything above 8 hours of real coding is pretty superhuman, though it looks like some people on github are achieving it.

Re: Stockfighter's Jailbreak CTF trainer is live

#55
post #49
post #40

Earlier quoted context omitted.

> Did nobody try to use this shit, even a little? Isn't that moving a bit beyond useful or informative and helpful to a discussion to aggressive and antagonistic? Is this free game/tool/resource actually causing you that much agitation?

There was a lot of useful stuff in that comment!

Yes, which is why I focused on the the last little bit which I think wasn't really productive at all. It expressed frustration, which I understand, but in an antagonistic and condescending way which doesn't add to the point at all. It's easy for a tone like that to poison a thread.

I'm glad, as one of the people it was directed towards, that you can take it positively.

Re: Stockfighter's Jailbreak CTF trainer is live

#56
post #22

Dev hiring is a sourcing problem, not a filtering problem. The people behind starfighter are brilliant and I respect them big time. So, probably they know what they're doin. I am excited to see how they want to solve dev hiring since starfighter looks more like a product that does filtering, not sourcing. (I am thinking since a long time to build something that leverages Github to find and reach out to engineers; e.g…

It's both. They're focusing on the sourcing part, which is commendable, but I'd still like companies to engage a better filter. The one most have now is the equivalent to trying to hammer square pegs into round holes with bit of wood they happened to find.

Unfortunately, changing that appears to be a very tricky social problem. It's going to take a recruiter (or recruiting company) with such a great reputation and track record that companies trust that recruiter's judgement in personnel implicitly. But how?

Re: Stockfighter's Jailbreak CTF trainer is live

#57
post #48
post #38

Earlier quoted context omitted.

I haven't tried this, but https://github.com/ketchupsalt/debugger might be of interest to you. More generally, it's not actually sandboxed inside a web browser, you can interact with system through REST-ish API as well. see https://starfighter.readme.io/docs/retrieve-device-status for some documentation on that. It's obviously pretty inconvenient to get a full debugger type experience that way, but I don't really see…

Which "load" command? What's the feedback you're looking for? Did you write a C program, click the compile button, and now want to run it? Just type "run". There's an in-game reason why we break out the flash/load/exec commands the way we do, but "run" does all the fiddly steps.

I want typing "load foo.cg" and hitting enter in the debugger to print _something_, almost anything. Ideally it would print different things depending on whether foo.cg actually exists and is a valid file to try to load or not. Just some sort of feedback indicating that the command actually did something would be great.

I like the different load/flash/vmload/vmexec commands, I've certainly needed to stop at points in the middle to inspect the debugger state.

Re: Stockfighter's Jailbreak CTF trainer is live

#58

Earlier quoted context omitted.

Susie works making crud apps for a boring insurance company. She is a brilliant programmer but due to where she lives, personal situations, she hasn't faced a challenge that lets her know the extent of her abilities, etc, she is working below her potential. Susie creates a novel solution to one of Stockfighter's games. Stockfighter uses that solution as evidence to present her to companpanies as a great engineer. She…

Is that really the problem though? In my circle, plenty of people are doing the boring crud apps at random big company. The problem is that they're paid very well. So taking a job that is more challenging often involves taking less money, for more risk, with a small possibility of a payoff. Is there really a surplus of highly interesting tech positions with better than average pay that are desperately looking for peo…

>The problem is that they're paid very well

Are you sure? Tech companies you've heard of on the west coast (other than Amazon) are paying their most junior people at least $100k. When I looked at big boring insurance companies in the Midwest (toying with the idea of staying close to home) I was seeing closer to $50k for entry level and $80k for mid-career.

Re: Stockfighter's Jailbreak CTF trainer is live

#59
post #47
post #16

The user interface is appalling. Whoever designed this has managed to produce worse ergonomics than a single 1970s-style terminal, for essentially a similar set of tasks (editing text+binary files and piping data through commands). I see some discussion of "files", but seem unable to list them or explore the filesystem. I don't know if this in-game filesystem is supposed to be on the "AVR" device or an imaginary "dev…

Snif. My feels. Right in the feels! Try as hard as you like though, you cannot make comments like these unproductive! * You cannot "explore the filesystem". The "files" are really just bookmarks in case you want to switch between different C-like programs to deal with a level. I hate the UI more than you do, but suggestions very welcome. * You mean "compile" as in, the debugger command? What would you like it to prin…

Sorry for being rude.

It seems strange that there are a set of names associated with blobs of data (source code) but the tools for managing that name->blobs map (querying which names are mapped, removing a mapping from the map, etc.) are incomplete. The source code editor allows views and updates, but I don't see how I would do garbage collection, and one can't perform views or updates from the debugger, but is expected to refer to the names there (in the "compile" command, and possibly others?).

Also about the "compile" command in the debugger (which is what I meant), it's unclear what state is mutated when I type "compile level_1.cg" and hit enter--it claims to have compiled and loaded 361 bytes, but I don't see a location into which they were loaded (checking the memory tab shows 32 bytes that don't resemble a program binary... is there somewhere else I should be looking?). If I subsequently type "run", it claims "no valid compiled program loaded". Is the program that I compiled and which was reportedly loaded not valid? Or do the "compile" and "run" commands' output refer to different notions of "loaded"?

By inspecting the compiler, I mean seeing what it does and how. Is the compiler inside or outside the trusted codebase of the handheld trading thing? Is there a way to hand-craft bytecode?

I also don't really understand why "compile" would load anything into anything else. Maybe there's a more clear name for the command?

Or, if you can remove the entire command prompt in favor of a more streamlined read-edit-test workflow, that seems ideal in terms of intelligibility. I would suggest making the programmatical interface more prominent (present it as a first-class alternative to the Web one). Since the idea of the site seems to be demonstrating developer ability, I expect many users will be put off at the notion of using a Web UI to do significant amounts of programming; even JS coders don't live in the one-line REPL of a browser inspector.

How do I get to those docs? I browsed the list on the left of https://www.stockfighter.io/trainer/dox but didn't see anything that explained where programs are stored after compilation. The "Command Reference" mentions compile, but the relationship between compile/run/flash/vmload/vmexec isn't clearly described; is "run" simply a convenience wrapper around the others (excluding compile)? What does the "vm" prefix imply? Why does compile take an argument, but the rest don't? Is there utility in, say, compiling and flashing, but not vmloading, a program (e.g. cache invalidation if we can flash underneath a different running program)? Or is this needless flexibility?

I originally skipped the guided tour, figuring that since I'm familiar with machine-level debugging and AVR in particular it would be a waste of time, but now see that it explains some of the expected workflow, though it's mixed with explanations of basic architecture concepts.

Re: Stockfighter's Jailbreak CTF trainer is live

#60
post #57
post #48

Earlier quoted context omitted.

Which "load" command? What's the feedback you're looking for? Did you write a C program, click the compile button, and now want to run it? Just type "run". There's an in-game reason why we break out the flash/load/exec commands the way we do, but "run" does all the fiddly steps.

I want typing "load foo.cg" and hitting enter in the debugger to print _something_, almost anything. Ideally it would print different things depending on whether foo.cg actually exists and is a valid file to try to load or not. Just some sort of feedback indicating that the command actually did something would be great. I like the different load/flash/vmload/vmexec commands, I've certainly needed to stop at points in…

Oh.

Yep, like "compile", that command is vestigial (the source editor used to live in a tab, and, ironically, the file saving stuff made more sense that way, driven from commands on the CLI).

Yep, I can make "load" do that. Give me a few hours, though! It's an easy task, but I'm tethered through my iPhone right now.

Post reply on HN