examples

Parsing Windows.h in VW

October 12, 2004 18:04:45.860

Cincom Smalltalk support - Dave Wallen, specifically - has provided an answer to a fairly sticky problem some CST developers on Windows have - dealing with Windows API functions via the windows.h header file. There are a few problems that the DLLCC parser has with it - here's a solution with some instructions:

I played around with getting windows.h to parse. Only a few #defines were necessary in advance, and the thing now parses. The file is uploaded, but here are its contents anyway. Beware that once the parsing was completed, I was able to generate methods, but it took at least an hour on a PIII 500. I set GrowthReg. Upper Bound to 100MB, and it used it all. Also, I did not select any "macro"s for methods. I'm not sure if it works or not, but it would take forever, so I disabled the macros section. All the other sections did receive methods.

This file works on an installation with MSVC 2003. Not sure about other versions.


/*-------------------------------
 *  CincomWindows.h
 *-------------------------------
   This file was successfully parsed by VW 7.2.1 under the following conditions.
   1. Create a directory, called Include, with two subdirectories, called
      C_include and Win_include. 
   2. Copy this file to Include.
   3. Copy the entire \Microsoft Visual Studio .NET 2003\Vc7\include directory
      to C_include.
   4. Copy the entire \Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include
      to Win_include.
   5. In the Builder, enter these three directories as the include directories,
      C_include, then Win_include, then Include.
   6. In the Builder, enter this file as the only include file (CincomWindows.h).
   7. Click Parse Files, and the files are parsed.
  
   The following files were parsed, and no errors were reported. As an aside,
   this list was generated by printing to Transcript, in the method
   CPreprocessor>>include. It won't compile without AdvancedTools loaded.

   ('basetsd.h' 'cderr.h' 'cguid.h' 'CincomWindows.h'
   'commdlg.h' 'ctype.h' 'dde.h' 'ddeml.h' 'dlgs.h' 'excpt.h' 'guiddef.h' 'imm.h'
   'lzexpand.h' 'mcx.h' 'mmsystem.h' 'msxml.h' 'nb30.h' 'oaidl.h' 'objbase.h'
   'objidl.h' 'ole2.h' 'oleauto.h' 'oleidl.h' 'poppack.h' 'propidl.h' 'prsht.h'
   'pshpack1.h' 'pshpack2.h' 'pshpack4.h' 'pshpack8.h' 'reason.h' 'rpc.h' 'rpcasync.h'
   'rpcdce.h' 'rpcdcep.h' 'rpcndr.h' 'rpcnsi.h' 'rpcnsip.h' 'rpcnterr.h' 'servprov.h'
   'shellapi.h' 'stdarg.h' 'stdlib.h' 'stralign.h' 'string.h' 'tvout.h' 'unknwn.h'
   'urlmon.h' 'winbase.h' 'wincon.h' 'wincrypt.h' 'windef.h' 'windows.h' 'winefs.h'
   'winerror.h' 'wingdi.h' 'winioctl.h' 'winnetwk.h' 'winnls.h' 'winnt.h' 'winperf.h'
   'winreg.h' 'winscard.h' 'winsmcrd.h' 'winsock.h' 'winspool.h' 'winsvc.h'
   'winuser.h' 'winver.h' 'wtypes.h')

   Note: the RPC entry below is there to avoid a parsing error. The version may
         not match your installation, in which case you may need to change it to
         the value specified in the file rpcndr.h.
*/


#define WINVER 0x0500
#define _WIN32
#define NOWINRES
#define _M_IX86
#define __declspec(dllexport)
#define __RPCNDR_H_VERSION__ 475

#include "windows.h" 

So there you go. Your mileage may vary on other versions of windows.h from other revs of the OS, but the above should give you a headstart on how to proceed.

 Share Tweet This

sports

Losing Focus...

October 12, 2004 17:11:07.188

I have to admit - with only 3 hours (as I write this) to go before the start of game 1 of the ALCS between the Yanks and Sox, I'm losing my ability to focus on anything else. Work, politics, other news? Blah, who cares. Bring on game 1! Another funny thing related to my earlier post about this rivalry making it into politics - Kerry mentioned the series again today. The hype for this is getting to be bigger than Super Bowl level...

 Share Tweet This

sports

How hot is the Yankees/Sox rivalry?

October 12, 2004 11:40:43.409

Looks like the Yankees/Red Sox series transcends even politics:

"We all want the same things. We want our country to be respected in the world, we want good jobs, and we all want to beat the New York Yankees!"

Ironically, this was said by Kerry in Ohio - and the Yankees AAA farm team is based in Columbus. Heh.

 Share Tweet This

smalltalk

Smalltalk Interest

October 12, 2004 11:23:42.207

 Share Tweet This

blog

Wikis and Blogs - some thoughts

October 12, 2004 9:19:30.426

I've been using Wikis for many years now - the VW Wiki at UIUC has been a valuable resource for Smalltalk developers for a long time, and the Cincom Smalltalk Wiki is a place where we (the Cincom Smalltalk team) put out information on what we have coming down the pipeline. As a team, we use Wikis for internal communication as well. Periodically, I get asked "So what's the difference between a Wiki and a blog? Both allow for user editable web page - why use one over the other?"

It's a good question. As it happens, the two kinds of websites have some rough similarities (both are user editable in some sense) - but they also differ quite a bit. In broad terms, a Wiki has what you might call an emergent voice - it's an agglomeration of the input of the community of users who are interested in the content being managed. Here's an example - the history for one of the pages on the VW Wiki:

See how there's a long list of editing changes across time? That page was originally created in October of 1999 - and the last (real) edit of it was in April of this year. Looking at the list of edits, you can see that the page was edited by more than one person across a long time interval. As the interests of people have waxed and waned, content has been added (or subtracted) from the page. Over time, the direction of a page tends to focus in - at least on this wiki.

Other wikis can come to resemble conversations - have a look at the popular C2 Wiki, originally started by Ward Cunnigham many years ago. A glance at the recent changes page shows many changes over the course of a single day - have a look at this page, for instance - you can see that many people have contributed content over a long period of time.

A popular wiki can quickly spawn off dozens of side points and conversations - a good example of this is the Atom Wiki, created to engender conversation and conclusions on the Atom syndication format (an alternative to RSS). The limitations of a wiki for conversational purposes cropped up rather quickly here, and spawned a mailing list. That list tends to have dozens (sometimes over 100) messages a day, quite frequently on the finer points of things like date formats. This is barely manageable as a mailing list; it completely fell apart as a Wiki

In general, Wikis work well when you have a fairly limited number of people contributing content, and a larger body of readers and occasional contributors. If the amount of content creation spirals too quickly, there's just too much information - it becomes a lot like a USENET group that's been taken over by trolls. Even if most of the content is good, there is such a thing as too much of a good thing.

How do blogs play into this? Blogs allow for a much tighter focus on editorial control. You can disable comments, for instance - and thus ensure that only one voice is being heard. Even with comments enabled, they typically are not shown when a visitor comes to the site - the visitor has to choose to view comments (as opposed to a Wiki, where anyone can add any content they want anywhere on a page).

Have a look at this screenshot of my blog, for instance:

There are individual articles, and the start/end of an article is determined by the author. With a wiki, a reader can re-edit to their heart's content; a blog is much more like an editorial page - and comments are akin to letters to the editor. The author of the blog retains ultimate control; he can choose to allow comments or not, and - like a newspaper - decide whether a given comment (or article) stays or goes.

With a wiki, you don't have full control over the content - and attempting to keep control will lead to "last one to edit wins" types of battles. A wiki is most useful when you want to create a community accessible site, where constructive criticism is encouraged. A blog is far more useful for getting your specific message out, without changes being made by someone else. Sure, other bloggers can make comparison posts linking to yours (I do that all the time) - but the author still retains complete control over the content - and ultimately, over the message.

There's another very large difference as well. A wiki is much more like a "traditional" website than a blog is. Once a page is created on a Wiki, it's just there (unless, it's deleted, just as with any other site). A blog is much more ephemeral. Typically, the main blog page will show the last N items or the last N days worth of items. Sure, everything is accessible via the archives or via search - but it's not just there. The top page of a Wiki, with the items it points to, is a (relative) constant. The top page of a blog changes with every posting. Thus, a Wiki is better for information that needs to be "sticky" - a blog is much more akin to the morning newspaper. Fresh, but changing.

So, getting back to the comparison - under which circumstances do you want a wiki, and under which do you want a blog? If you want to encourage input from a community, a wiki is a good tool for that - however, you need to be aware of the limitations. Most people are uncomfortable writing html, and many people will be uncomfortable using wiki markup (most wikis support a simplified markup scheme). Given that, you are going to get feedback from a limited subset of the total readership. This subset will be even smaller if you aren't targeting a technical audience. If you want to get a personal voice "out there" talking about your products and services, blogs are the way to go. A caveat here though - a blog is only useful if the author(s) post regularly on topics of interest to the target audience. It's very easy to start a blog - it's much more difficult to sustain one.

In many cases, you are going to want to use wikis for some circumstances, and blogs for others. Either way, commitment is very important. Blogs need regular postings - wikis need maintenance and pruning. If you plan to use either or both, you need to walk into the venture knowing full well that a decent sized time commitment is necessary.

 Share Tweet This

smalltalk

Croquet is out

October 12, 2004 7:53:09.519

Croquet is out - grab the release here. For a "first impressions" kind of post, see Michael's post

 Share Tweet This

humor

There are insane parents everywhere

October 12, 2004 7:39:49.747

The Register reports that a Chinese couple was denied their request to name a child '@' - as it cannot be directly translated into Mandarin. Lucky for that poor kid, who still has to grow up with these morons....

 Share Tweet This

humor

Where patent suits will end up

October 11, 2004 15:33:04.448

Up next for Kodak - watch out, Mr. Sun :)

 Share Tweet This

cincom

Cincom's Tom Nies Interviewed

October 11, 2004 12:24:50.018

I posted a few days back that our founder and CEO, Tom Nies, was being interviewed on a Florida radio station. Here's the transcript - I'll be linking to a more cleanly formatted version when it appears on our corporate site

10/5/2004

There's a lot of debate right now, especially in this political season and with the current economic climate, about the outsourcing of jobs and all that good stuff. And we're going to bring Mr. Nies in here now to get his thoughts on it.

Interviewer: Tom, thanks for joining us. Mr. Nies are you there?

Mr. Nies: Good morning.

Interviewer: Good morning Mr. Nies how are you doing?

Mr. Nies: I'm fine thanks and you?

Interviewer: Thanks for joining us here on The Morning Show here on New Radio 1270 WFLA.

Mr. Nies: Thanks for inviting me. I'm happy to be here.

Interviewer: Well good. Well first of all, in this segment here, we want to get to all these questions I have for you. But just tell us a little about your company. People know about Microsoft, but possibly not a whole lot of people know about Cincom Systems, Inc. Tell us a little bit about the company.

Mr. Nies: Well Cincom's actually the oldest software company in the world. We helped to start the industry back in 1968. Back in those days, we sold to commercial customers - people who had the large-scale computers - and we built, developed, and offered what we call strategic software. We've been doing it ever since.

Interviewer: Well how'd you get started in the business, Tom?

Mr. Nies: We simply saw a need that needed to be filled and we did so. This is what almost all entrepreneurs do. They see needs. They try to fill them. They take an opening and try to do so in the way that they can keep their heads above water, make a profit and grow and expand the business. We saw a need and we stepped in. In the process, we helped to create one of today's most important industries.

Interviewer: Now Tom, like I said, the software industry is very competitive now and like you said, yours is one of the oldest in the business. How have you been able to stay so successful with the Microsofts and all the other companies that continue to pop up all the time?

Mr. Nies: In a scene from an early movie, W.C. Fields once was telling a young English boy, "Earn 20 pounds a year and spend 19, and you'll be a happy man for life. Earn 20 pounds a year and spend 21, and you'll be a miserable wretch, like me my son. Basically what we have attempted to do is just that. Grow responsibly as fast as we can, satisfy as many customer wants and needs as we can, but to do so in such a way that we're economically viable. We just continue to do that. You're right. Our industry is highly competitive today, just like all businesses. We've probably got two, three, or four times the supply of software providers that the world really needs today. That's a good deal for the customer though because this means he can "buy right." The customer can make demands on the provider and get very good deals.

Interviewer: Well definitely. You now provide software to commercial companies and more than the individual software owner.

Mr. Nies: We serve strategic users, not personal end-users. We don't sell games and software to personal buyers. We sell to businesses, government, hospitals, healthcare organizations - what we call strategic users, commercial users.

Interviewer: Gotcha. And Tom, something I've been reading about in some of the literature about you is that you believe in a psychology called "Giving Forward." Would you explain to the listeners a little bit about what that is exactly?

Mr. Nies: I think that most businesses and people who've done well in life "give back" to society. We know that a healthy America provides good opportunities for many of us. If one is fortunate and works hard, one can succeed well in America. So, a lot of people have made a lot of money in America. And we've come into America at a time when America has been strong economically; so there are lots of opportunities . I think that most people who succeeded believe that they should give back something. Normally they give back donations, charity, and so on. We like the idea of trying to help people give forward so that they're not relying on charity. Our goal is to help others to build better lives for themselves, their families, and the people around them and develop businesses. And we think that entrepreneurship and entrepreneurial activities are the best ways to do that.

Interviewer: Well that's definitely great and we're going to run away to a quick traffic update and get a little break here in a second Tom. But when we get back, I want to hear how you've been able to do this. I see that you've created more than 10,000 jobs and opportunities for people. We'll talk more about giving forward instead of giving back. And I'm very interested in how you've created these jobs, especially in today's economy, and how a lot of people are saying there's not a whole lot of jobs out there. We're joined by Mr. Tom Nies who is the CEO of Cincom Systems. We'll be back in a second to talk more with Tom - definitely a guy who we want to hear more about, especially when it comes to creating jobs and opportunities the way he has. This is The Morning Show here on News Radio 1270 WFLA. It's Brian Willard filling in for Preston Scott. It's 8:12.

Interviewer: Yes, it is The Morning Show right here on news radio 1270 WFLA. It's 8:15 here on news radio 1270 WFLA. This is Brian Willard filling in for Preston Scott on The Morning Show and we are talking to Mr. Tom Nies who is the President, Founder, and CEO of Cincom Systems, and he has an interesting philosophy here of giving back. Like giving to charities or societies but giving it forward. Creating jobs and opportunities for other people. And he has created 10,000 jobs and opportunities. Now we want to talk to him about how he's exactly doing that. Tom, explain to us how you've been able to create so many jobs and opportunities for different people during your pay-it-forward, give-it-forward campaign here.

Mr. Nies: We live in a democratic system built on the capitalistic model in a free-trade environment. Essentially, entrepreneurship combines these three attributes in the best way possible. I think our company is an archetypal example of all that is best in entrepreneurship. Let me just give some figures. We started out 35, 36 years ago with $600 dollars of capital and a card table in my basement. Over the years, we've generated $3 billion worth of revenue. Now that's $5 million dollars worth the revenue generated for every one dollar invested.

Interviewer: That's a pretty good return there.

Mr. Nies: Yes, that's a good return. In the process, we've employed a lot of people to help generate that revenue. And as we're generating the revenue, there are good opportunities for the people. So we share the growth and development, the well being of the business with our staff who helped to create it. Capital is simply a store of energy; the people are the true energy source. So entrepreneurship and an entrepreneurial business combines the best of capitalism with the best of a people-energized oriented system and we've worked that pretty well. But we're not alone - a lot of other entrepreneurs have done the same thing.

Interviewer: So it's pretty much not depending on somebody else to give you a paycheck. You give your people who help you along the way the opportunity to create other things, create their own money to become an entrepreneur as you put it.

Mr. Nies: We help our people to develop entrepreneurial opportunities within our business. Our business is a completely entrepreneurial or intrepreneurial business. It has grown and been developed by the energy, commitment, and resourcefulness of our people, and Cincom shares the wealth among our people the best we can.

Interviewer: Well Tom how have you had so much success as you said creating 10,000 jobs and opportunities? We seem to be in an economy where jobs are scarce right now and not a whole lot more are being created. Here you're on the exact 180 flipside of that, creating more and more jobs and opportunities for people. How are you able to achieve this when some other companies are not?

Mr. Nies: The secret I think is competitiveness. If a business is competitive, it can grow. If it's not competitive, it must contract. And many mature businesses today in America and in the West are no longer competitive. So they have to contract. The secret to being competitive is good, high-skilled people who are very, very productive, know what they're doing, want to work, and are eager to perform day in and day out. We believe that if we provide good incentives and good opportunity for good people, they will perform. They'll grow and develop the business. It's simple enough; just make the pie bigger. That way, everybody can get a bigger slice.

Interviewer: Right. You basically have to change with the times, that's what it is. It's a vastly changing economy here and basically manufacturing jobs are very down because stuff can be done a lot quicker. So your industry, the software industry, is also something that changes very quickly. You sort of gotta update yourself with the times. You have to move forward, you can't be stuck in old ways, or like you said, you would have to contract jobs instead of creating jobs.

Mr. Nies: You're right, absolutely, change is a way of life. One simply cannot improve one's situation or yourself unless you're willing to change. All change may not be improvement, but all improvement demands change. If you try to hold onto the past, you're a dead duck, you're like a deer froze in the headlights. The world takes advantage of people who are unwilling to change and improve. It's a competitive world out there, you've gotta improve your team every day or you get beat. What worked two years ago, five years ago doesn't work in business today. It's pretty simple really.

Interviewer: Definitely what it is, Tom, a lot of software - especially technology and computer companies - software companies are starting to go overseas to sort of outsource jobs. Do you see that as a bad trend, a good trend or something that doesn't necessarily need to happen?

Mr. Nies: One of the most powerful forces at work today is what is called "globalization." Capital seeks the most efficient, most cost-effective means of producing goods and services. If the work cannot be improved, the productivity of an American worker cannot be improved to produce more and better output per dollar of wage, that job is probably going to be moved abroad - or outsourced to some other firm which can deliver the quality and cost demanded. Now software and services, anything that can be moved across a wire in the networks, can be outsourced. So it's not just management jobs, it's not just manufacturing jobs that can be moved abroad. It's services jobs, too. Today in America, 68 percent of all the jobs and all the economy is in services. Many of these are subject to transferring abroad with the globalization system that's in place.

Interviewer: Definitely. Does it seem like we're talking about changing? Do American workers need to go back to school, do they need to learn new skills, do they need to basically learn how to work a computer and learn to do a lot of things to keep jobs in this country and to continue to create jobs here in the United States instead of sending them overseas?

Mr. Nies: I think we need to learn to be more productive, more efficient, more output-per-dollar focused. It's a complex problem. If there were easy answers to complex problems, we'd have them all in place already. But there really are no easy answers.

Interviewer: Definitely.

Mr. Nies: Since it's a complex problem, I think the first thing is to help the people to understand the globalization forces at work worldwide. In the five stages of dying we know that the first stage is denial, the second is anger. Similarly, we must now first face up to the fact that in America and in the West, we have a problem. Denying the problem isn't going to make us any progress. Nor is the fermenting of anger against the Chinese, Indians and others going to positively help us to resolve our own problems.

Interviewer: So denying and complaining about problems doesn't help. You have to do something about it. By denying and complaining you just take up time when you could be doing something constructive about it. Mr. Nies, I thank you for joining us. I love what you're doing with your 10,000 jobs and opportunities. I hope we can have you back sometime to update us on the great things that you're doing with Cincom Systems.

Mr. Nies: Thanks a lot. It's nice to be invited, best wishes to you.

Interviewer: Thank you. Have a good day.

 Share Tweet This

music

Now that takes me back

October 11, 2004 11:59:38.818

1985 is a cool song - I suppose the fact that I graduated college in 1984 has something to do with that - all the pop references make sense to me. There's one truly, truly funny line in the song:

" And music still on MTV"

I stopped paying a lot of attention to MTV a number of years ago, but I remember watching it in the early days - all music video, all the time. Now it's a bunch of really lame reality shows. Do videos suck that much now, or has the proliferation of channels just pushed them off to the secondary and tertiary MTV/VH-1 channels?

 Share Tweet This

development

Anatomy of a web crawler

October 11, 2004 11:52:23.305

I'm not going to write one of these anytime soon, but there's some interesting stuff for anyone writing network applications - Sriram Krishnan discusses the implementation issues behind a web crawler.

 Share Tweet This

blog

Of Wikis and Blogs

October 11, 2004 11:39:41.516

I'm in the process of writing a piece on Wikis and blogs - I'll have it posted here once I'm completely happy with it.

 Share Tweet This

events

Attention Omaha Smalltalkers

October 11, 2004 8:43:13.879

Blaine Buxton is talking about the next STUG meeting in Omaha - visit his page for details.

 Share Tweet This

blog

The PR folks read blogs

October 11, 2004 7:46:19.450

This piece from PR Opinions is interesting - it points out something about corporate blogging that a lot of people are still trying to wrap their heads around:

"Businesses seeking a public relations vehicle, that provides numerous additional benefits, should consider adding a blog component to their website. The authentic and personalized blog voice is a natural fit for any public relations effort. A rapidly growing number of journalists and editors are reading blogs on a daily basis. It's becoming imperative that a company start a blog to keep up with that trend. Thanks to the addition of an RSS feed, a blog's updated post can be on a journalist's computer in seconds."

Just take a gander at InfoWorld, ComputerWorld (et.al.). Notice how many of their opinion guys are blogging? Bloggers tend to be voracious readers of blogs as well. There's a useful caveat in the article:

Blogs don't turn poor communications, business models or products into winners. Blogs offer an alternative means of reaching out to your audience. They are useful for promoting conversations and showing a different side to your firm.  They do not, however, signal the end of Public Relations as we know it.

That's a good thing to keep in mind. Blogging is not the channel for communications - but it is an important new channel for it.

 Share Tweet This

BottomFeeder

Closer...

October 10, 2004 11:39:52.225

I've received some very nice UI changes from Reinout Heeck - a BottomFeeder user in The Netherlands. I'm pushing a new build up with all the recent changes in - the upload should be done in a few hours, and the dev links on the download page will get you the new stuff. I think I'm pretty close to a release now; if everything looks good, I'll likely push the dev stuff down to the stable download directory this week. In the meantime, I got a useful tip from Michael. A user complained that there wasn't enough of a whitespace margin surrounding images, and it turns out that you can fix that yourself, with a little stylesheet editing. Simply add this line to one of the stylesheets in the "stylesheets" directory, and the next time you start Bf up, you should see the change (assuming, of course, that you use the edited stylesheet):

img { margin: 2px }

Of course, you can slap your own stylesheets in there as well. At the moment, stylesheets are only read when BottomFeeder starts up - I suppose I should add a menu option to re-read that directory...

 Share Tweet This

sports

Cardiac Baseball

October 9, 2004 20:43:06.929

This has been a tense game. The Yankees were down 5-1 in the 7th, and the Twins had just missed a chance to make it a 7 run lead. Then the Yanks tied it - a couple singles and a walk, then a 3 run shot tied it. Off to extra innings - The Twins burned too many pitchers, I thought - because in the 11th, when A-Rod got a double, stole third, and scored on a wild pitch - the Twins were well past their hot closer, Nathan. The Yankees, on the other hand, had Rivera on the mound to shut things down. I think he broke 4 or 5 bats in his two innings out there - he's back to his dominant post-season form. Another come from behind win for the Yankees - and another NYY vs. Sox ALCS on tap. I sure hope the pitching holds up...

 Share Tweet This

general

Another Windows annoyance

October 9, 2004 13:08:05.021

I got up this morning, took a look at my laptop - and found a bunch of dialogs indicating that my network connection had dropped. Ok, it looks like I had a transient outage while I was asleep. That wasn't the annoyance. When the connection came back, Windows had decided that my WiFi connection used a WEP key. Never mind that it doesn't - never mind that the other machine using WiFi was happily connected. Windows, apparently, had its own ideas. I couldn't change the setting back without rebooting. This happens periodically; I'd really like to know why...

 Share Tweet This

development

Underwhelmed

October 9, 2004 11:23:59.531

Seems that LtU (and lots of other people, for that matter) are all excited about Laszlo - and XML based programming language. Here's what "Hello World" looks like:

<canvas>
    <text>Hello World!</text>
</canvas>

Just what we need in the world - more angle braces. This makes Cobol look positively spartan in terms of what you have to type. Thanks, but no thanks...

 Share Tweet This

sports

Maybe it's too early...

October 9, 2004 11:06:58.756

The Yankees are up 2-1 in the division series - I suppose the Twins could win two straight, but I'm not seeing that. Instead, it's looking more and more like another Yankees/Red Sox ALCS. This is starting to be an annual tradition. The difference this year is that the Sox have much better pitching, and they still have that killer lineup. The Yankees pitching isn't as strong, I don't think - but then again, they did win the division title. If the Yanks can get past the Twins, it should be another fall classic.

 Share Tweet This

development

Stunted imaginations

October 8, 2004 15:46:09.476

A reader pointed me to this post by Jon Udell in InfoWorld. He suggests a native data type for XML in the JVM and the CLR:

Whenever I see the emergence of per-programming-language variations on a theme, I wonder what can be abstracted. In this case, I wonder about the feasibility -- and the desirability -- of pushing the notion of a native XML datatype down into the JVM and CLR/Mono. In theory, the benefits would be:

  • A single robust implementation
  • Smoother transfer of experience across programming-language domains
  • A common focus for storage implementations

This is the clear trend that the static languages (the popular ones) seem to take - whenever an idea pops up, lard some additional complexity onto the language. This is in fairly stark contrast to the Smalltalk way - we had libraries, not complexity. Why is that better? Well, say someone goes ahead and follows Jon's suggestion. Now developers are forever wedged into whatever notions that developer had (think primitive data types, for instance). In a properly constructed library (i.e., one without any final classes), follow-on developers can customize behavior to suit the needs of their projects. With this kind of hard baking-in, developers instead end up working around limitations forever

 Share Tweet This

smalltalk

Explaining Smalltalk

October 8, 2004 14:45:01.173

Peter William Lount explains Smalltalk by way of numerics. Check it out

 Share Tweet This

smalltalk

Plugging in WithStyle

October 8, 2004 13:42:18.641

I had someone ask me about plugging in WithStyle to BottomFeeder. Previously, I had been using Twoflower, a more basic html display component. There are some differences in how you use WS; I decided that it was worth a post.

With Twoflower, I had a widget - i.e., the component had been wired into the GUI builder. That made interfacing with it simple - I just grabbed the widgte, slapped it on a canvas, and went with it. It even exposed an API at the widget level that allowed me to capture the 'browse' event (useful in Bf since users can either browse in Bf or spawn an external browser). WithStyle wasn't done that way; there's a low level View, and the example browser and it's superclasses. Now, it's easy enough to re-use a full window interface - there's the subcanvas widget in the toolkit for that. What I decided to do is the following:

  • I subclassed WsThinClientWindow. This happens to be the superclass of a couple of WS examples, so I decided to start there
  • I added a bunch of protocol that was specific to the Bf/WS integration
  • I had to register for (and handle) a few trigger events

Let's start from the beginning. Here's the definition of my class:


Smalltalk.RSS defineClass: #BrowserPane
	superclass: #{WithStyle.Client.WsThinClientWindow}
	indexedType: #none
	private: false
	instanceVariableNames: 'textIncrement textDecrement currentSize currentStyleSheet '
	classInstanceVariableNames: ''
	imports: ''
	category: 'RSSViewer'

The new instance variables have to do with resizing text and managing the current stylesheet - that's new in this release, since Twoflower didn't support CSS. I also had to redefine the UI, since I wanted a plain browser pane - no menus, toolbars, etc. That required knowing a little bit about the innards of WS - anyone who wants to work with this stuff is going to have to take a look at class WsRenderWidget. Here's the way the painter definition tool looks for it:

The next thing to do was to provide an API useful for managing the use of the html pane by BottomFeeder. I implemented these methods to handle placing text into the pane:


htmlString: string
	self 
		htmlString: string
		uri: nil


htmlString: string uri: aURI
	self browserWidget  userStylesheet: self currentStyleSheet.
	aURI isNil
		ifTrue: [self browserWidget  documentSource: string]
		ifFalse: [self browserWidget documentSource: string uri: aURI asURI].
	self setCurrentSize.

Those methods manage the use of the current style sheet and a re-adjusting of the text size as appropriate (i.e., based on user settings). The two other things that had to be dealt with are handling trigger events. WS triggers events on things like:

  • Mouse is over an href
  • An href has been clicked (i.e., a browse event)

I had to catch both - the first so that I could display the url being floated over, the second so that I could manage browsing (as currently set by the user - internal or external). So I registered for the following events:


	self htmlModel browserWidget browserView when: #navigateTo: send: #openURL: to: self.
	self htmlModel browserWidget browserView class when: #scrolledToEnd send: #goToNextNew to: self.
	self htmlModel browserWidget browserView when: #mouseMovedTo: send: #mouseMovedTo: to: self.

The middle one is something I added; Bf will go to the next new item when you page past the end of an item you are looking at. The other two end up being handled in the main UI - in the navigate one, I look at settings, and either browse internally or pop up a browser. In the mouse moved event, I grab the href that the mouse is over and display it in the status bar.

There are a bunch of other convenience methods (copying text, etc) - but that's the major stuff right there. As it happens, WS is pretty easy to work with - and it's fairly easy to customize the browsing as per your needs. One thing that's interesting is the way I handle browse requests (since there are so many different kinds - here's my code for that:


	| fLink |
	(self isPagingUrl: link)
		ifTrue: [^self handleNewspaperPaging: link].
	(self isCommentUrl: link)
		ifTrue: [^self handleCommentUrl: link].
	(self looksLikeAMailTag: link)
		ifTrue: [^self spawnMailFor: link].
	fLink := link isString
		ifTrue: [self scrubLink: link]
		ifFalse: [self linkFromURLObject: link].
	self settings alwaysBrowseInline
		ifTrue: [Cursor wait showWhile: [self loadBrowserViewOn: fLink]]
		ifFalse: [Cursor wait showWhile: [BrowserLaunchService current openBrowserOn: fLink]]

Now, some of that is very specific to BottomFeeder. Paging links are pseudo-links I use for newspaper views that are too large to put on one page. Comment links are similar, something that is also added (as appropriate) for newspaper view. The Mail tag handling is there to handle mailTo hrefs - on Windows, I pop the "default" mail tool, on other platforms I send up a small mail tool. The #isString check has been there since a time when I had some API issue in my own code; it does no harm, so I've just left it there. Finally, there's the "browse internally, or browse externally" check. The interesting aspect is the fact that you can easily intercept the browse event and do whatever you need to do.

I hope that's a useful primer on using WS - if you are interested, visit the WS home page and register for their developer program - you'll then be able to download their daily builds.

 Share Tweet This

BottomFeeder

Still plugging away on 3.7

October 8, 2004 11:22:54.732

I'm still plugging away on the 3.7 release - it looks stable to me now, but I've had a couple of bug reports that I'd like to follow up on before I push it out the door (you can grab the existing build by following the dev links on the BottomFeeder site). One thing I have done is gone through and addressed a lot of UI layout issues. many of the existing utility screens looked very odd if you resized them, or had limits on their maximum size. I've addressed those issues (not necessarily perfectly, but I think the screens resize rationally now). It was actually a lot easier than I thought it would be - there are two great posts from Vassili on this:

Those posts were invaluable to me in making adjustments.

 Share Tweet This

StS2005

Call for Participation

October 7, 2004 20:46:14.509

Smalltalk Solutions is a premiere venue for Smalltalk enthusiasts, researchers, and professionals to meet and exchange ideas. We are currently accepting proposals for all varieties of talks involving Smalltalk technology and other areas of interest to Smalltalkers. We need your participation to help maintain the high technical level of the conference!

This year's conference will take place in Orlando, Florida, June 27-29 2005. Presentations may be in the form of:

  • Technical Presentations
  • Experience Reports
  • Technology Demonstrations
  • Half-day Tutorials

In addition to the normal tracks, this years conference will feature a business track-including presentations with a greater emphasis on business than on pure technology.

Proposals should be submitted by email to Alan Knight and should include the following information:

  • Name
  • Contact Information
  • Type of Presentation
  • Title of Presentation
  • Brief Abstract
  • Short Biography of the Presenter(s)
  • Desired Length
  • Any constraints on date/time
  • Any other information of importance in evaluating the proposal

Submissions should be received by January 15, 2005.

Note that submissions with incomplete information may be rejected - particularly if bio or abstract information is missing.

 Share Tweet This

law

So what happened here?

October 7, 2004 17:07:08.438

It seems that Sun and Kodak settled, just before the damages phase was to begin. I'd love to know what the settlement terms were - and what this will end up meaning long haul for the industry. It can't be good - news of the settlement pushed Kodak shares up, and Sun shares down - and it has to embolden every other company that wants to play "business plan via patent suit". Goodie.

 Share Tweet This

marketing

Content Creation and DRM

October 7, 2004 16:32:49.052

Scoble is talking about content creation, and how just about everyone wants to be able to create some kind of content:

I told him to understand the content-creation trend that's going on. It's not just pod-casting. It's not just blogging. It's not just people using Garageband to create music. It's not just people who soon will be using Photostory to create, well, stories with their pictures, voice, and music. It's not just about ArtRage'ers who are painting beautiful artwork on their Tablet PCs. It's not just the guys who are building weblog technology for Tablet PCs. Or for cell phones. Or for camera phones.

This is a major trend. Microsoft should get behind it. Bigtime. Humans want to create things. We want to send them to our friends and family. We want to be famous to 15 people. We want to share our lives with our video camcorders and our digital cameras. Get into Flickr, for instance. Ask yourself, why is Sharepoint taking off? (Tim O'Reilly told us that book sales of Sharepoint are growing faster than almost any other product). It's the urge to create content. To tell our coworkers our ideas. To tell Bill Gates how to run his company! Isn't this all wild?

Yeah, and this trend is going to be stillborn if MS (and Apple) don't get on the right side of it. Right now, they both suck up to the RIAA and the MPAA - which is not the place to be if you want this stuff to spread. So what's it going to be Scoble - the right way, or the stilted, can't take my content anywhere model that the music and movie industry want to saddle us with? MS has actual power to use - you could try using it for good

 Share Tweet This

BottomFeeder

Just about to release

October 7, 2004 11:37:41.646

I'm testing a new WithStyle build from Software with Style, and if it works out, I'll be releasing BottomFeeder 3.7. The major changes will be in the presentation - WS does a much nicer job than Twoflower did, and it offers full support for CSS to boot. I'll be shipping a bunch of sample stylesheets as well, allowing you to customize the way the html pane looks. Stay tuned; things look good.

 Share Tweet This

cst

Roadmap

October 7, 2004 9:58:57.415

I posted a Roadmap for Cincom Smalltalk awhile back - I'd love to get feedback on that. Are we building what you want? Are we building what you need? Please let me know.

 Share Tweet This

law

And I thought software patents were bad

October 7, 2004 7:47:33.107

Get ready for the patenting of specific tastes and smells - Slashdot has the story...

 Share Tweet This

itNews

Bad timing

October 6, 2004 18:54:34.171

I wonder if Jonathan Schwartz knew how ironic these comments would look after the Kodak verdict came in:

I believe in intellectual property. In my view, it's the foundation of world economies, and certainly the foundation upon which Sun Microsystems was built. Copyright, trademark, patent - I believe in them all. I also believe in innovation and competition - and that these beliefs are not mutually exclusive.

As I said here, I think this was a really, really bad decision...

 Share Tweet This

itNews

Linux - an unstable Molecule?

October 6, 2004 16:35:04.418

I'll say one thing, McNealy is probably the most quotable CEO in the tech space. Get a load of what The Register has him saying in response to a query about the relationship between Sun and MS:

When asked by a Northwestern student why Microsoft decided to make peace with Sun, McNealy drifted into odd territory. His basic claim was that Microsoft knew it needed some competition and that Sun was the lesser of all evils. This claim covers the operating system wars, desktop software and middleware.

"Microsoft needed a partner," McNealy said. "Their customers wanted choice. One is an unstable molecule."

It can only be assumed that McNealy was referring to Linux with that last comment. Sadly, he moved away from the molecular analysis at that point.

"Who else are they going to choose as their second source? You know, Sun and Microsoft aren't that competitive. We don't do MSN, we don't do Xbox, we don't do applications. They don't do computers, storage or infrastructure."

An unstable molecule. Heh.

 Share Tweet This

smalltalk

Croquet

October 6, 2004 12:33:41.497

Remember Croquet? There's a new announcement from them up:

Thanks for your patience. The developer's release of Croquet (codenamed "Jasmine") is undergoing some final Q&A prior to being made available for download on this page on Monday, October 11.

Jasmine will allow you to begin developing components with some level of comfort that the interfaces will not change significantly between this and the user release. That said, there are a number if important pieces still missing, but we are quite comfortable that these will be available soon and have decided that there is no reason to wait for them before releasing the system. Please let us know of any problems you might run into or ideas for improvement that you might have. This release represents a major turning point in the evolution of Croquet - from a closed development effort to one that is open and truly takes advantage of the dynamics and capabilities of the open source community. Thanks again for your support.

So keep that page bookmarked...

 Share Tweet This

cst

NC Downloads

October 6, 2004 11:05:40.744

You might have had trouble downloading the Non-Commercial product yesterday if you were doing the initial registration. Way back when, I was enforcing a 7 character limit on usernames. I think this had to do with a limitation in an older rev of PostgreSQL, but that could be my memory playing tricks on me. In any case, I changed that yesterday - but initially, I had the new test backwards - instead of limiting usernames to be more than 5 characters but less than 32, it was checking the reverse - and then giving a misleading error. I fixed that yesterday afternoon - if you had trouble registering, go try it now. Sorry for the trouble.

 Share Tweet This

management

Technology can't solve people problems

October 5, 2004 19:08:32.974

Here's an interesting article on software development/deployment problems. The most instructive part, to my mind, came about half way down:

Big software projects -- whether to manage supply chains, handle payroll, track inventory, prepare finances -- tend to begin with high expectations and the best intentions. They're all about efficiency, reliability, cost-savings, competitiveness.

Companies might develop their own programs internally, outsource the job or buy from a company such as SAP AG, Oracle Corp. or PeopleSoft Inc. Regardless of the route, it's usually a major undertaking to get things right.

Often, however, the first step toward total disaster is taken before the first line of code is drawn up. Organizations must map out exactly how they do business, refining procedures along the way. All this must be clearly explained to a project's technical team. Security workers look at posted flight delays at Los Angeles International Airport caused by a radio system outage in September.

"The risk associated with these projects is not around software but is around the actual business process redesign that takes place," said Bill Wohl, an SAP spokesman. "These projects require very strong executive leadership, very talented consulting resources and a very focused effort if the project is to be successful and not disruptive."

Those kinds of projects tend to fail for a simple reason - you can't solve a political problem with a technology solution. If you attempt to roll out a large system that assumes you will change processes to match it - then you're going to run smack into tons of internal, internecine political issues. It's much harder to convince an organization to change than it is to create software that adapts itself to the existing system. Not to mention that it saves you the political headaches...

 Share Tweet This

gadgets

Whoa - now that's a DVR

October 5, 2004 15:57:31.294

Now that's a DVR:

Sony's Vaio 'Type X' - the Japanese giant's so-called Tivo-killer -- launches today. A Pentium 4 at 3.60GHz comprises the heart of this beefy PVR, with 1GB DDR and 1TB (4x250GB RAID 0) of storage standard -- welcome to the future, where you can simultaneously record up to seven programs at once and store so many of them that you'll likely deplete national bon-bon supplies. If that weren't enough, the Type X also comes bundled with Adobe Premiere to edit as you please, and your choice of flat-panel display as an add-on, ranging in size from 17 to 23 inches. You won't be able to get one in the States, barring import, and the price is unclear.

Makes my ReplayTV devices look lame...

 Share Tweet This

cincom

Transcript of Mr. Nies' interview

October 5, 2004 12:32:46.668

In response to a question on this post - yes, we'll have a transcript of the interview. I'm waiting for a final copy from marketing at the moment.

 Share Tweet This

sports

Debates? What Debates?

October 5, 2004 8:51:48.965

Who has time for politics with the playoffs happening? Today at 4 we have the Red Sox vs. The Angels, and then tonight at 8 we have the main event - the Yankees vs. the Twins.

 Share Tweet This

marketing

So call him out

October 5, 2004 7:56:11.397

Seems that HP is torqued about Jonathan Schwartz's weblog - they sent Sun a nasty-gram asking him to cease and desist. Here's the story on that:

Sun Microsystems' high-profile president and chief operating officer Jonathan Schwartz has struck a raw nerve with his inflammatory Weblog entries which has led to Hewlett-Packard sending a letter of demand to Sun to put an end to the commentary.

HP has confirmed a letter was sent earlier this week demanding Schwartz stop using his blog to comment on HP's strategic direction.

The HP spokesman declined to provide any details about the content of the letter except to say it specifically refers to Schwartz's Weblog commentary about HP.

Schwartz has not been shy with his statements about the HP's strategies, particularly regarding its Unix operating system, HP-UX.

In a blog entry, dated August 18, Schwartz referred to HP-UX as a 'dying' operating system.

Scobles take on this is that you shouldn't say anything bad about the competition - it only motivates them. I'm not so sure that always works - sometimes it makes sense to comment on a competitor's direction, sometimes it doesn't. What I will say is that it rarely makes sense to whine about it like HP is - it just makes you look silly. Ignore it or confront it with your own speech - but don't whine.

 Share Tweet This

deployment

Interesting issue

October 5, 2004 7:50:52.905

Don Park has noticed an interesting issue with regards to firewalls and Java:

One of the nice features in XP SP2 Firewall is that when an application tries to access the network, it opens a dialog asking if the application should be granted network access and remembers the choice user makes.  This is great for normal applications.  Unfortunately, Java applications all fall under the hosting application name (java.exe and javaw.exe) so network access can not be given to some Java applications and not others.

Now, this is a problem for many VM based languages, unless you can create a platform executable. There are certainly tools for doing that in Java, although it doesn't sound like many people deploy Java applications that way. In VisualWorks Smalltalk, creating a Windows executable is fairly simple (have a look at the documentation in the packaging/win directory) - I do that for BottomFeeder. In general, this is something that developers of VM based systems are going to have to deal with.

 Share Tweet This

cst

Cincom Worldwide Smalltalk Users Conference

October 5, 2004 7:30:04.078

Mark your calendar! - The Cincom Smalltalk User Conference in Frankfurt/Main, December 7-9, 2004

Dear clients and Cincom Smalltalk users,

For the first time in several years, Cincom are again organizing the Cincom Smalltalk User Conference which will take place in Frankfurt/Main from December 7-9, 2004.

Do not miss this conference and mark your calendar right now, we will soon send you the final agenda with all the details!

What are the highlights you will find at the conference?

  • A presentation by the Cincom Smalltalk product manager on current status and future strategy of the technology
  • Presentations, live-demos, and discussions on main current engineering themes, such as:
  • Future development of VisualWorks VM
  • Parallel development of VisualWorks / ObjectStudio
  • Agile project management and eXtreme programming
  • Innovative web applications with VisualWorks/Seaside
  • The 1CCustomer Advisory Board 1D: Use this opportunity to discuss with the Cincom Smalltalk management and our engineering team what your wants and needs are concerning the future development of Smalltalk, and what areas should be enhanced with a higher priority, etc.
  • Meet the Experts: Experts from our VisualWorks and ObjectStudio engineering teams will help you with your specific questions and issues 13 just ask.

Who should benefit from attending the conference?

  • Our customers and partners using Cincom Smalltalk.
  • Organizations which want to have a deep insight into the current status of Cincom Smalltalk and the ongoing enhancements of the past years.
  • Companies that are not satisfied with the productivity of their present development technologies.
  • Companies looking for Smalltalk development environments that are continuously being enhanced and developed.

When does the conference begin and end?

  1. Tuesday, December 7, 2004, 10:00 AM 13 7:30 PM - followed by a buffet dinner.
  2. Wednesday, December 8, 2004, 08:30 AM 13 7:30 PM - followed by a buffet dinner.
  3. Thursday, December 9, 2004, 08:30 AM - ~1:30 PM

Where does the conference take place?
Relexa Hotel Frankfurt/Main
Merton-Viertel/Lurgiallee 2
D-60439 Frankfurt/Main
Germany
Phone: +49(0)69/ 957 78-0
E-mail: Frankfurt-Main@relexa-hotel.de
Web: www.relexa-hotels.de

Frankfurt's international Rhein-Main airport is approximately only 20 km away.

Accommodation

We have a limited number of hotel rooms available for the participants at our conference. Special room rate: AC 75,- per single room incl. 16 % VAT, extensive breakfast buffet, and relaxation at the fitness centre.

Please mention "Cincom conference" when you book your hotel room.

What does the conference cost?
When booking before November 8, 2004:
Early-bird-price at AC 499,- per person + VAT
Booking after November 8, 2004: AC 599,- per person + VAT
Please note that the number of conference seats is limited.

What's included:

Included in the conference price: conference information package, complete catering during the conference including two dinners in the hotel restaurant, and a surprise present.

Booking:

If you want to make sure to get a conference seat at the early-bird-price at AC 499,- + VAT, just email your reservation to infode@cincom.com including your company and contact details (please with your local mail address). For any questions in advance please do not hesitate to contact our Technical Account Manager for Cincom Smalltalk, Helge Nowak, at hnowak@cincom.com, or the Cincom Smalltalk representative in your local Cincom office.

We will send you a comprehensive agenda with more details very soon. Make sure that you don't miss it.

Kind regards,
The Cincom Smalltalk Team

 Share Tweet This
-->