libellen – first and final release

by LiraNuna on Monday 31 March 2008
libellen logo

Since I’m not going to do any further development on this (for various reasons), I have decided to release libellen – a sprite handling library for the Nintendo DS, based on libnds.

The library is released under the terms of the WTFPL.

The source and “example” are super documented, and evena  Doxyfile is attached if you want to create documentations.
The library was tested and compiled using devkitARM r21 with god-knows-what libnds version. If you find incompatibilities, I’ll be happy if YOU would fix them.

Have fun and happy coding!

For those who are intrigued by the name – lib-ell-en (L – N, my name’s initials) could also be read as libellen – dutch for “Dragonfly” which is what the logo is based on. For those who wonder, the logo is also released under the terms of the WTFPL.

Some history:
libellen was first made as the low-level library for ToD2, but was quickly got good enough to be expended. My second goal was also to get people to stop using PAlib, an old, slow and deprecated library which people insisted on using. The library was not complete, but the sprite handling was. after more then 6 months of inactivity, I have decided to release the library to just handle sprites.

Source could be downloaded from HERE.



Research labs and innovation priorities in an IT organization

by Chirag Mehta on Monday 31 March 2008

Earlier this month HP announced that HP labs is going to focus on 20-30 large projects going forward instead of focusing on large number of small projects. If you compare the top 10 strategic priorities for 2008 that Gartner announced late last year you would find a lot of similarities even though HP’s projects are not necessarily designed to address only the short term priorities. Quick comparison:

HP : Gartner

  • Sustainability: Green IT
  • Dynamic Cloud Services: Web Platform & SOA + Real World Web
  • Information explosion: Metadata management + Business Process Modeling

“The steps we’re taking today will further strengthen Labs and help ensure that HP is focused on groundbreaking research that addresses customer needs and creates new growth opportunities for the company.”

The role of a traditional “lab” in an IT organization has changed over last few years to focus on the growth and value projects that strategically aligns with company’s operational, strategic, management, and product innovation priorities. The researchers have been under pressure to contribute significantly to the efforts that are directly linked to the product lines. There are pros and cons of being research-oriented versus product-oriented and it is critical that researchers balance their efforts. I firmly believe that labs should be very much an integral part of an organization and anything that they do should have a direct connection to the organization.

“To deliver these new, rich experiences, the technology industry must address significant challenges in every area of IT – from devices to networks to content distribution. HP Labs is now aligned to sharpen its focus on solving these complex problems so HP and its customers can capitalize on this shift.”
Traditionally labs have been perceived a cool place to work where you can do whatever you want without any accountability towards company’s strategy and this poses a serious credibility issues for some labs regarding their ability to contribute towards the bottom line. I agree that the research organization should be shielded from the rest of the organization or incubated to a certain extent to protect the disruption in the ongoing business and allow researchers to focus and flourish in their efforts but eventually the efforts should be integrated well into the organization with the stakeholders having enough skin in adopting, productizing, and possibly commercializing what comes out of a lab. Credibility of a lab in an organization goes long way since the product development organizations largely control what customers would actually use, at least in IT organizations. Many innovations that come out of a lab may not even see the light of day if the research organization does not have credibility to deliver what customers actually want. Innovation by itself is not very useful until it is contextualized with the customers’ and users’ needs to solve specific problems.



Gartner: Better BI tools on the way

by Business Intelligence on Monday 31 March 2008

A new Gartner study finds that the role of corporate IT units in business intelligence will be shrinking. In its place, search and collaboration tools will allow individual users and business units to build their own analytical applications, according to the study released last week. Gartner said that it expects this change to occur by 2012. By then, users will turn to interactive visualization, in-memory analytics, search integrated with BI, Software as a service and service-oriented architectures to build their own reports. Search and collaboration tools, probably off-the-shelf, will allow individual users and business units to build their own applications. “Evidence suggests that BI is used aggressively by just 15-20 percent of business users,” said Kurt Schlegel, an analyst at Gartner, in a statement. “For the BI sector to thrive, it needs to overcome the fact that most business users feel BI tools are hard to use.” And we bet that BI tools will get much cheaper, too.

For more on BI tools to come:
- See this ComputerWorld article



Order of Events revisited

by stuandgravy on Sunday 30 March 2008

SKV commented on my Order of Events post from July pointing out a contradiction he spotted in TechNote 581. On page 20 of that document, point 4. states:

Problem: If a buscomp has code on WriteRecord and the runtime event fires on WriteRecord, which occurs first?
Solution:
WriteRecord runtime event is in essence a Post-WriteRecord event and will be fired AFTER the buscomp code is executed.

That statement’s in direct opposition to my assertion that:

…the Runtime Event occurs before the equivalent Server Script event for the same object…

As I responded in the comments, this highlights a mantra I’ve learnt through painful experience: never trust the documentation! However, since my writing here is really just more documentation, it might be useful to explain how I arrived at my list. To get the order of events published previously, I took a random object (BusComp Account Note, as it happens) and modified each browser script and server script event to log the event to a file. For example, the PreWrite looks like this:

function BusComp_PreWriteRecord ()
{
   var f = Clib.fopen("C:\\events.txt", "at");
   Clib.fputs("BusComp_PreWriteRecord\n", f);
   Clib.fclose(f)
   f = null;
   return (ContinueOperation);
}

A similar script on each event gives me an ordered list of script events. To add in the Runtime Events, I created a client-side business service to log to the same file. So in Admistration – Business Service > Details I created the Events business service, then added the Log method using a very similar script. This Log method takes a single parameter: the event string, which is appended to the file.  In Administration – Runtime Events > Events, I can now add every event I want to log, with an action for each to call the Events.Log method with the name of the event. In no time at all, I have a complete, ordered list of  events, as published. Given my testing, I’m inclined to assume the documentation is incorrect. However, all of my testing was only on Siebel 7.8, so there’s a slim chance of variations between versions. Anyone want to verify?



Shared Browser Script variables

by stuandgravy on Wednesday 26 March 2008

I had a problem the other day where I needed to share a value between two applets. On a form applet there’s a browser script method that executes on the WriteRecord event, but it’s designed to only fire if certain other events have already run. To control the ’state’ (execute or not), there’s a boolean variable declared in the general declarations of the browser script. This form is used in a number of different views and works as designed.

The challenge was in the screen’s List view: here we have the form applet, which works as elsewhere, but also a list applet for the same business component. The behaviour should be the same for both applets. Easy enough, I figured: just copy the form’s browser script across to the list. And this approach appeared to work well enough.

An alert tester picked up the gap: if the operation was started in the list applet, but then completed in the form applet (or vice-versa), then the browser script wasn’t executing. In the first applet the state variable was set, but in the second applet not. What I needed was for the state to be shared across the two applets.

The usual way to share variables across objects is to use Profile Attributes or Global Variables, but neither solution was an option. Global variables simply aren’t available through browser scripts, while the getting and setting of profile attributes requires a round-trip to the server – too much of an overhead in this case. I thought I was going to have to resort to some sort of hidden control and FindApplet then FindControl methods, but the solution was much simpler.

Turns out that variables declared in the general declarations section of Browser Script are shared for all the applets in the view. Who knew? (See the note about halfway down.) Okay, quite possibly everyone except me, but now I won’t forget.

For my little problem, I was able to prescribe that this list applet be only used alongside the form applet, which meant that in the list’s browser script I could simply set and get state using the form’s variable. The applets now share state and everything works as expected.


Copyright © 2010 IT Knowledge Hub | Advertise | Contact | Privacy Policy | Terms of Use | Register