Saturday, August 27, 2011

HLL Robot Application and SVG (Scalable Vector Graphics)

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

New Article: Artificial Intelligence, XML, and Java Concurrency

I chose SVG (Scalable Vector Graphics) to implement robot movement tracking in the robot HLL browser-based GUI. This link is to the history part of an SVG Primer from W3C. Its popularity assures continued support. (Good choice Roger. -- :) {pat on back}

Excerpt:

By the end of 1999, development of SVG had begun in earnest. Within two years, six subsequent working drafts appeared. IBM and Corel each released software that exported SVG. IBM released an SVG viewer and several software initiatives released SVG drawing packages for a variety of operating systems. Since that time support and endorsement has grown. By 2005, A Google search for "SVG" returned over 3.7 million links on the WWW. Table 1 compares these results with other technologies. By February 2009, all these numbers had increased considerably (HTML itself rose almost eightfold), but SVG had risen to 11.9 million web documents moving well ahead of Fortran which had risen to 8.6 million.

QueryNumber of documents found

"HTML"

1,610,000,000

"PHP"

454,000,000

"Java" (includes island)

150,000,000

"Linux"

86,400,000

"Perl"

51,600,000

"JavaScript"

49,900,000

"Unix"

35,200,000

"C++"

28,900,000

"SQL"

21,200,000

"MySQL"

20,300,000

"Pascal" (includes Blaise)

14,500,000

"Visual Basic"

8,330,000

"Fortran"

5,350,000

"SVG"

3,750,000

"COBOL"

2,630,000

"Lisp" (includes stuttering)

2,300,000

SMIL

1,600,000

"awk"

912,000

"VML"

497,000

"ALGOL"

489,000

"SNOBOL"

40,900

Monday, August 8, 2011

Routine Behavior

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

I've discussed before in my series of posts, notably in The Ghosts in My Machine: Chapter 2, that routine behavior or logical patterns are somehow difficult to accept as sophisticated enough to warrant examination in advancing machine intelligence. In my view, people can find routine logic difficult to think about and it therefore gets passed over. The uncomfortable feeling that superficially seems status oriented, might have neurological roots.

Over the years, I've become convinced that semi-unconscious or even unconscious routine behavior can be somewhat sophisticated - probably moreso than we might first imagine. It's as though our brains want to suppress thoughts about routine logic. There may be a very logical explanation for why it would - to keep us from being overwhelmed - to make our thought -> action responses more efficient. That's a classic explanation that I believe can be applied to a higher level of logic than has been associated with unconscious thought before.

Just thought I'd post what appears to me to be a related article: Could inner zombie be controlling your brain?
.

Thursday, August 4, 2011

HLL to Support WebSockets

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

The time is right. The mood is good. HLL will include its own WebSocket server. Earlier today, my test browser app. printed:

WebSocket Test

CONNECTED

With HTML5, the world takes another step in trying to catch up to me, in a very substantial way. WebSockets FINALLY provide real two-way communication between the browser and server. HTML5 will revolutionize browser based web applications. WebSockets in particular mean that all that web stuff won't need to be so point-and-clicky anymore.

The WebSocket standard is not yet finalized, but is in “final call” status. This means we should not be expecting any more radical changes to the standard, opening the door to development that won't be threatened by a constantly changing standard.

There are a few WebSocket servers that have been in development for a while, constantly upgrading to keep up with changes to the proposed standard. The Sun/Oracle glassfish project includes one, written in Java of course. Client-Server technology specialist Kaazing offers a WebSocket server free for developing and prototyping. The Google Code site offers one written in Python called pywebwocket that at the moment seems out of date.

Cutting-edge application developers have needed good stable browser implementations. This week, Google announced an upgrade to Chrome's implementation of HTML5 WebSockets. Firefox will also include an upgraded implementation in version 6. Other browsers like Opera have been putting special effort into HTML5 support. Google announced earlier a plug-in that would allow its technology to be used with other browsers, including Microsoft's Internet Explorer.

Google software engineer Takeshi Yoshino comments:
"Given that the specification is now in 'last-call' and and no further breaking changes are expected, it should now be safe to use WebSockets for production application development."
Whether developers need their own WebSocket server is an engineering decision. If you decide to build one yourself, be advised that it's not as easy as a simple socket echo server and there is no Sun/Oracle Java Trail to guide you. You'll face standards piled on standards and interesting encryptions for security. If you want to support all browsers right now, you'll need to support more than one version of the proposed standard. Once you're connected, there are issues like multiple connections to consider.

The HLL WebSocket server will continue a commitment to an independent lightweight framework for distributed applications. Application developers using HLL will be able to use WebSockets in an easy and flexible manner. Communication between HLL components is critical. Client-server technology has been there from the start. WebSockets will tie into key features, replacing older two-way communication techniques developed for earlier versions.
.

Tuesday, July 19, 2011

Management verses the Great Migration to Open Source Software

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

Among the most irritating PR supports for poor management are the list of personnel “studies” purporting miracle paths to greater efficiency and lower costs. They include claims such as that recruitment and retention of good engineers are more dependent on having the right plants in the lobby than salaries and that life in cubicles promotes productive human interaction. When none of that works, then retention isn't important anyway. Might as well outsource. And it just so happens that the people behind the “studies” lease engineers as well as cubicles.

The proliferation of such ideas in the 1990s interrupted growth of a healthy sustainable technical culture that was sprouting software engineering companies at just about the right pace to provide balance between in-house IT line staff and other specialized workers. Government and government contractors were among the largest contributors to the problem as they colluded to control labor costs while maintaining their own large cubical habitats for migrating engineers. Moreover, engineers were doing well and humans tend act like humans. Seen from the inside, the emotional backlash from other professionals has been at times extreme. It was better to ship a quarter of the nation's economy to a third world country than to let “those people” live in nice houses.

What's next, letting engineers make engineering decisions? In this dark age when human resource “experts” and bean counters reigned, good engineering suffered greatly. Following their miracle plans resulted in spiraling costs and poor quality. Even the future of engineering suffered, as a great many engineers moved from company to company, project to project, without being able to stay on a consistent professional development path. As the backlash continued, experience was undervalued and many development organizations became overburdened with cheaper, less experienced engineers that took more than ten times longer to produce results that were less than a tenth as good (which also dramatically increased maintenance costs).

Where has all the innovation gone? I'm among those who have tired of Big Software selling their latest versions of 20 year old ideas as technical breakthroughs – a continuation of the great line of miracle cures for whatever ails you. It seems like too many years have passed since they should have backed up and fixed what they were already producing. Maybe now we wouldn't all be suffering so much from computer viruses and browser lock-ups and would have built the great software engineering tools that would facilitate creativity and support real business needs rather than making sloppy use of the latest bingles and bangles sometimes slightly more convenient. Since none of that really works well enough to be economically sustainable, maybe you should outsource your business operations to the new miracle on the block; “the cloud.” Never mind that there have been companies that have wanted to run your IT department since at least the days of magnetic core memory.

You might be wondering by now; what has all this to do with open source software? It's easy. Look – while the movers and shakers in the industry are busy screwing around with other things and company managers are preoccupied with the status that a nice purse and heals seems to bring, someone should be interested in producing good software. While I disagree completely that engineers are somehow less interested in being paid than everyone else (I don't care what kind of plants are in the lobby) there are thousands who would work for less at least temporarily or give of their own time to do work they can be proud of for a change and to be able to take credit for it. What's the point in spending decades developing professional knowledge and skills if you're forced to suppress all but the most menial parts? Many people actually do go into engineering with a desire to be creative and to create good things.

And why should I write this article now? You might be thinking that I'm a decade or two behind the times with my thoughts. After all, open source caught on and caught on big (except among young, naive, pimple-faced Big Software kids of course). It's become so mainstream that it is in common use and constantly growing in importance in industry. And that is the coming problem. The structure of the industry hasn't fallen back into a sustainable form dictated by market demand and a competition among professionals over who can provide the best products and services. The one thing that made the most sense was done by engineers working outside the mainstream. Where significant industry investment was involved, it was primarily to counter monopoly behavior that rendered them unable to compete in traditional ways.

Here is the part of the article where you should be interested in a solution. I know I am. I long for the days when men were real men, women were real women, small furry creatures from Alpha Centuri were real small furry creatures from Alpha Centuri, and most importantly in the context of this article – spirits were brave and engineers were real engineers. Perhaps engineers need a guild and a code of honor that they will not violate – not even for the many little queens that control most of our salaries.

Support for open-source software and projects from big industry players are at times and especially in particular instances very much appreciated no matter why they occur. Sun's support for Apache for example, has been extremely important to Internet use and the Java language and development tools are extremely important to continued innovation and development. Oracle continues some very good parts of what Sun started. Google has pushed ahead with implementation of full HTML5 support for Chrome and has made its plug-in available to drive HTML5 in other browsers. Red Hat, which started from open-source, supports a variety of open-source projects. A few years ago, Google vowed to use open-source and support for standards to return control of the overall direction of software development to consumers.

But let me suggest another path of more direct interest to the most important players; the users themselves. Not just Pam and Paul sitting in their living rooms shopping and emailing, although I'm happy to acknowledge the users that occasionally click on the PayPal button to give something back for a free software package they like. (I have done so myself.) It's the corporate users that would benefit the most from adopting open-source projects. There is in fact, a rather old idea that we can call "customer financing." When companies identify their need for software, it can benefit them greatly to individually or jointly support R&D for development of competitive products that are useful to them. It's a strategy that avoids becoming dependent on expensive fads that do not address their business needs in the best possible way.

To what extent we might be able to teach managers to think this way? What I know is that some companies are better prepared than others for such tasks. Some are themselves engineering companies, not focused on software in particular. Or companies that depend on technology to such a great extent, that they are not lacking in technical competence. These companies are most likely already routinely investing in specialized outside R&D in addition to their own internal R&D.

(To be continued ... ?)

Another perspective, time O'Reilly (1999): Ten Myths about Open Source Software

Thursday, June 9, 2011

Talking to Machines

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

NPR interviews related to human interaction with the artificial. Participants: Freedom Baird, Rollo Carpenter, Brian Christian, Caleb Chung, Dr. Robert Epstein, David Hanson, Jon Ronson, Bina Rothblatt, Martine Rothblatt and Sherry Turkle.


Friday, May 27, 2011

W3C Confirms May 2011 for HTML5 Last Call, Targets 2014 for HTML5 Standard

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

Original Document: W3C Confirms May 2011 for HTML5 Last Call, Targets 2014 for HTML5 Standard

http://www.w3.org/ -- 14 February 2011 -- W3C today extended the charter of the HTML Working Group with clear milestones for HTML5, the cornerstone of W3C's Open Web Platform for application development. In May 2011, the Working Group will advance HTML5 to "Last Call," an invitation to communities inside and outside W3C to confirm the technical soundness of the specification. The group will then shift focus to gathering implementation experience. W3C is developing a comprehensive test suite to achieve broad interoperability for the full specification by 2014, the target date for Recommendation.

"Even as innovation continues, advancing HTML5 to Recommendation provides the entire Web ecosystem with a stable, tested, interoperable standard," said Jeff Jaffe, W3C CEO. "The decision to schedule the HTML5 Last Call for May 2011 was an important step in setting industry expectations. Today we take the next step, announcing 2014 as the target for Recommendation."

Today there are more than 50 organizations participating in the HTML Working Group, all committed to Royalty-Free licensing under the W3C Patent Policy. There are more than 400 individuals from all over the world in the group, including designers, content authors, accessibility experts, and representatives from browser vendors, authoring tool vendors, telecoms, equipment manufacturers, and other IT companies.

This is an excerpt. Complete document: W3C Confirms May 2011 for HTML5 Last Call, Targets 2014 for HTML5 Standard

Wednesday, April 13, 2011

HLL for Boy Scouts and Education

Visit the High Level Logic (HLL) Website
— Home of XPL (eXtensible Process Language)

It's like XML, but you can store source code in it.

Unique in Character

The Boy Scouts now offer a merit badge for robotics. Having prototyped HLL in a robotics project, of course my mind turned to how HLL might be useful in this setting.

HLL is still a bit raw, but already useful to more advanced developers. In the hobby league, I've posted my experience setting up a LEGO Brick to run Java so that LEGO robots can interact easily as HLL components (although there are other ways to do it). HLL can be used to set up scenarios and do any special “thinking” that's needed when running them. Due to the limited memory and processing capability of a Brick, it's most likely that the on-board Java component would do little besides accepting commands and initiating their execution.

Of course, if this is the big trick of integration, it can as easily work with anything – up to and including the most sophisticated robots for any purpose. In larger systems, even the robot's HLL processing and all its specialized components could be on-board, with another HLL installation (anywhere) for the human controllers. Other robots and other operators could all be tied together via HLL for the ultimate cooperative work, or even gaming experience.

Back to Boy Scouts and Education: I have a plan – have had from the start. Sometimes my plans are slow to evolve because I don't always get tons of money to implement them every time I write one. If you've been following this blog and / or the project, you might have noticed that it's been going a bit slowly lately. But in my view, the plan supports use of HLL from the start of the educational process through the most complicated commercial possibilities. And that does seem interesting.

In my envisioned plan, there is a version 1.x in which HLL's sophisticated technology lies beneath easy to use configuration tools. Supported by its open architectural design and open source offering, the underlying technology will still be accessible to advanced developers. Ultimately however, HLL should support rapid prototyping and scenario (mission) development by non-programmers. I would hope that in later versions, the tools and application support components, would be so powerful that all application developers would typically build their applications using only the configuration tools. But even in version 1.x, there should be many interesting possibilities for the beginner. And let's not underestimate beginners. If the tools are right, the greatest successes will come from the best ideas. How would I know who will have them?

So, let's just imagine the maximum potential for HLL. Someone uses it in the process of getting a Boy Scout merit badge. Continuing interest sparks a number of additional hobby projects during high school, each with greater sophistication and usefulness. (If we're imagining, we might as well imagine first place in a national science fair competition as well as a Siemans Westinghouse Technology Award.) During his college years, he writes a series of unique HLL application components and demonstrates their use in a for-credit undergraduate project.

He either goes on to graduate school where he writes a thesis that takes the architecture another great step, or uses his unique application components to create a new line of useful commercial robots – or both.

In any case, even if this is all – at present – just in my imagination, it does underline an important element in the unique character of HLL. I know of no robotics software tool with as much range and potential as I've described. Now, if I could just get the project moving again.