Forgot your password?
typodupeerror
User Journal

Journal: Definition of programming

Journal by adamy

Here is my definition of programming:

Computer programming is the act of iteratively decreasing the delta between what you want a computer to do and what you tell a computer to do.

User Journal

Journal: Webpage refactorings 1

Journal by adamy
This is a first set of thoughts on something about which I've been thinking. How does one refactor a web page. The /. front page story about Tidy for conversion to XHTML is a candidtate: replace HTML with XHTML. Other thoughts:
  • Convert non validating html to validating html
  • Introduce template engine
  • Replace table with divs
  • Replace monolithic table with single-row-per-tables (more of a hack, but effective)
  • Replace inline style with style sheet.
  • Replace spacer.gif with divs.
  • Replace javascript with backend processing
  • Replace backend processing with javascript
  • Consolidate javascript
  • Consolidate stylesheets
  • Introduce objects to javascript

I'd love comments on this. As we identify them, we can also try to come up with a step by step. Maybe eventually automate some of them...

User Journal

Journal: See MIPS Run

Journal by adamy

At some point I'm going to have to write a review of See MIPS Run, but until I do....

This is the book to learn MIPS at the Metal. I've spent the past couple of days getting my mind around the machine instructions for setting up and controlling the Cache, or translation lookaside buffer. THe book does apretty decnet job of explaining how to transform a 4G address space into a significantly smaller amount of ram, and how to keep a 4k chunck of that in cache. Why, because MIPS is a RISC chip, and stuff that other chips do in hardware here get to be done in software.

Get to be? Huh. Yep, seems that differeent types of systems need different types of setups. MIPS allows you to do alot of stuff in software and to customize it for an end applications. Not only can you switch the endianess of the CPU (A discussion in itself) you can control the page size, and the algorithm to swap pages from cache and main memory.

Aside from a good review on operating system principles, getting into MIPS has been a great refresher in Assembly, something I haven't had to deal with on any processor but the x86 in a long time.

Another intersting thing about MIPS is that certain instructions take so long that you can't use the result of them in the next instruction. Fetching from memory takes long enough that if you want to use the result of that fetch immediately, you have to place a nop (no operation) instruction immediately following it. A cool thing is that you can put several loads in a row. Each fills the delay of the previous.Branch instrcutions work the same way. Seems most compilers are smart enough to optimize for this.

User Journal

Journal: More Kernel Stuff

Journal by adamy

Specifically...MIPS 4Kc.

So I can set the various LEDs using a simple C (I almost said script) program. Some interesting things about it:

It needs a function called int __start() or it won't load. This is run first, not int main(). I am fairly sure this has something to do with the loader script.

If I try anything that references memory opertations I get an error basciaclly saying I violated the Memory Table. Basically, I think I need to initialize the memory mangement elements of the CPU before I can do anything.

The problem that I am having is that to do so, I need to write in assmebler, and I haven't been able to Assmeble my Assembly files. Ah toolchains.

Linux

Journal: Kernel Hacking

Journal by adamy

I am finally trying to hack the linux kernel...sort of.
A friend got his hands on a MIPS board and we are trying to Port Linux to it. First step...to build the toolchain. I am currrently following the steps in the OReilly Embedded Linux book .
I should rephrase what so many people have had to find out for themselves:
    The toolchain has to be build in order.
    There are patches specific to the board/chip/archiceture.
    You have to have the right versions of GCC etc.

Java

Journal: XDoclet good

Journal by adamy

As part of my recent exploration into JBoss, Tomcat and Struts, I've finally decided to to look into XDoclet.

While my initial judgement is that it seems wquite interesting, I have yet to get the struts side of it working. Definietly something worth adding to the docs if I can sort through it.

I'd like to take the Base JBoss project and add struts support to it, VIA XDoclet. Seems like it would really get people up and running in a limited amount of time on a new EJB/Web project.

Java

Journal: JBoss 3.0 Redux

Journal by adamy

Well, JBoss 3.0 is old hat by now, but I've finally started playing with it again. Got it up and running on the home server. For some bizarre reason, it seems that I installed Kaffe, forgot to install The Sun JSK, and now JBoss is running. If it is really running under Kaffe, this is quite cool. I will post a follow up if it does in fact work.

But an interesting question is: what more needs to be done to get a completely Free version of JBoss up and running. What classes, what hacks to the build system etc.

Java

Journal: EJBs vs JDO

Journal by adamy

I really need to get my mind around this JDO thing. The problem is I don't want to introduce yet another technology. The counter problem is that I don't want to reinvent JDO, and most of our optimizations seem to be leading that way.

Radnom Musings: Do JDO and Entity EJB solve different problems? Should we Wrap JDO with Entity beans in certain cases? Shoud we completely disregard Enitity beans and only Use JDO?

The problem with JAWS (JBoss CMP EJB implementation) is that Populating an entity is incredibly time expensive, on the border of 1/2 a second or so. For beans that that are short lived, this is not acceptable.

Still need to look into JBoss 3 to see if they've solved this. Bulk loading of entities is vital for better performance.

Java

Journal: JBoss 3.0 1

Journal by adamy

OK, SO at work I've started looking into moving from JBoss 2.4 to 3.0, and I want to use this as a place where I record what I've learned about it.

    The Hot deploy feature seems to be the biggest step forward. I'm not sure if it falls under the Java Management Extension (JMX) Architecture or what. AFAICT the old jboss.jcml has been replaced with putting smaller xml files into the deploy directory. I played around a little bit with the file for the Postgresql data source and got to the point where I could get it to deploy.

As I see it, this is the thing that has been missing from J2EE. ATG has a very nice architecture for configuring objects before they are deployed, as opposed to the JavaBean Architecture of JSP/Servlet API. Now, for any object that you need, you should be able to write a deployment script to store it in the JNDI namespace, and call it up.

I assume that these things will be accessed by JNDI lookups, and available from JSP code. Again, the braindead architechture of the JavaBean stuff may mean that you have to access them through custom tags, and that means late binding. Actually, that is OK, since it will push us to do stuff in the JBoss layer.

Somebody ought to cross ball point pens with coat hangers so that the pens will multiply instead of disappear.

Working...