Inventor IDE Agenda for August

I’m not usually one to lay all cards on the table, since it often makes achievements much less impressive/surprising, but I find that the more people I’ve promised something to, the more likely I am to get it done.  As such, here is my agenda for Inventor IDE in August.  What I have on September 4th will be version Alpha 4, and I need the full assembling support to call it Alpha 5.

Absolutely Required before September 4th (start of classes):

  • Fixing the major layout problem (this is a tough one, because I have to do away with LayoutManagers for the toughest stuff to lay out)
  • Basic support for external includes, especially and (almost done)
  • Image manipulation base application for COMP 2003 and for the video tutorial for them
  • Basic assembly language video tutorial
    • Overview of Inventor IDE and Assembly Language
    • Clearing an image to a single colour (very easy; mov, add, sub, jnz, ret)
    • Rectangle drawing (very easy; call, push/pop, mul, lea, cmp, jcc)
    • Percentage blend of two images (easy; shl/shr, etc.)
    • Scale/rotate of an image (if there’s time)
  • 3 Assignments (planned out, but I won’t list them here, since that’d be unfair)

Desired by September 4th:

  • 32-bit assembling (25-75% done depending on how you count it)
  • Linking into a 32-bit EXE, especially with kernel32.dll
  • Find/replace text, find references (not too hard after some recent work)
  • Handling more go-to-definition cases
  • Handling more auto-complete cases
  • Meaningful error messages

Required by January:

  • UI to manage segment options
  • 16-bit & 64-bit assembling (trivial after 32-bit; just needs segment options UI)
  • Linking into 32/64-bit EXE/DLL or OBJ/LIB
  • Linking 16-bit, 32-bit, and 64-bit code into custom binary files (much easier than EXE, but also needs segment options UI)
  • Video tutorial for screensaver application:
    • Intro to Code Cortex and Inventor IDE
    • Vector operations and vectorization
    • Basic 3D math and projection
    • Other stuff

Once the above is accomplished, it’s ready for primetime.  Own OS development will be able to be done with it alone at that point, and people will be able to use it to develop applications too.  Beyond that is for January and later.

~ by Neil Dickson on August 12, 2008.

2 Responses to “Inventor IDE Agenda for August”

  1. Your first bullet point scares me.


  2. Yup, it’s pretty freaky. Let me elaborate on why it’s such a huge issue. There are about a dozen different functions that are supposed to redo the layout and/or redraw a component. Most of them don’t work in most cases to the point where sometimes you have to do:

    …and even sometimes that doesn’t work. Yes, you’d think that calling a function named doLayout would do the layout, but alas no. Anyway, in this case I’ve managed to coax the layout into being redone using:

    However, there’s still the insurmountable issue that the layout inexplicably gets redone in a new thread, so if it takes half a second for Java to lay out a big file’s components, when the program tries to figure out where to scroll to and scrolls there, the component isn’t done being laid out yet. That means that not only does it scroll to the wrong place, but the scroll pane is actually in a state not consistent with the size or location of the component it contains once the layout is done. I’ve been using this horrible work around where I start up a new thread that waits a quarter second before actually trying to scroll to the right place.

    Now I’m running into the problem that GridBagLayout (the only LayoutManager that can actually do this very simple layout) is often taking longer than that to do the layout, leaving a completely baffling initial view. I’m left with pretty much no other option but to do the layout myself to have it done immediately and quickly. 😦

    I’m getting close to done the manual layout stuff. It’s not TOO hard, since I mostly just need to line stuff up along the left or the top (which I wish BoxLayout or FlowLayout would do properly, but that’s still moot) and stretch some things to the width of the component with the widest minimum width or the viewport width. It’s just a lot of code. It also gives me the excuse to unify the functionality of the Header components so that I can finally get TextCaret able to refer to any text-editing component, but I’ll still have to phase out the current ObservedStringField to do that. *sigh*, so much work to do.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: