JavaScript and SQL are in first and second place by a wide margin over Java and the rest in the "Languages Used In The Last Year" category of the 2013 Stack Overflow User Survey Results.
Perhaps it should come as no surprise then, that two of the three "Most Exciting New Technologies" have "JS" in their names :)...

Saturday, February 22, 2014
Languages Used, Most Exciting
Monday, July 8, 2013
ER Diagrams in SQL Anywhere 16
Tip: The "ER Diagram" feature of Sybase Central is all growed up and well behaved in SQL Anywhere 16.
I'm guilty of not trying it out for a long time, but today it seems to be actually useful:
- The right-mouse Choose ER Diagram Tables... context menu item makes it easy to pick the tables you want to display.
- It's easy to click and drag the tables to move them around,
- and the lines too, but with the lines you first have to click on a line to display the teeny tiny endpoint boxes, then click and drag those endpoints to move the line:

- You can resize the table images to show more columns by first clicking on the title bar to display the resizing icons.
- The View - Refresh Folder menu item lets you clear highlighting after clicking on columns.
- Best of all... your careful work moving tables and lines around isn't wiped out when you refresh the display.
- Better yet (better than best?) Sybase Central remembers the layout when you disconnect, connect, and redisplay the ER Diagram tab.
- Better still: right-mouse Export Layout... (new with SQL Anywhere 16) lets you save the layout in a funky XML text file (just the layout, not the columns and and what-not),
- and then you can revert to that layout with right-mouse Import Layout... after, for example, you completely [cough] muck it up :)
- The right-mouse Go To Table and Go To Foreign Key menu items take you to the relevant tabs in Sybase Central, and from there the Back button brings you back to the diagram.
- as originally displayed for the SQL Anywhere 16 Demo database (the first image) and
- after some fiddling about (the second image):

Is it an alternative to PowerDesigner?
Yes, it is, for 99% of what people actually need: Pretty pictures for management (90%), and diagrams for documentation (9%).
The remaining 1% of what folks need, which accounts for 99.999% of PowerDesigner's feature set (and complexity, and cost) is beyond the scope of the Sybase Central ER Diagram feature.
Wednesday, May 8, 2013
Save IvanAnywhere!
IvanAnywhere is in danger of being "challenged and removed" or possibly "merged, redirected or deleted"!

Please, someone with Wikipedia creds, save IvanAnywhere before it's too late!
Friday, April 26, 2013
Yet Another (sigh) SQL Anywhere Q&A Forum
Did you know that for a brief period of time, there were not one, not two, but three official question-and-answer forums devoted exclusively to SQL Anywhere?
- the now-defunct NNTP newsgroups,
- the excellent SQLAnywhere-Forum.sybase.com website, and
- the brand-new "SAP Sybase SQL Anywhere Discussions (Forum)".
The bad news is, once again there are two different forums to choose from when deciding where to ask a question about SQL Anywhere (2 and 3 above).
The good news is, the new SAP forum appears to be indexed by Google (whew! it didn't have to be the case).
The bad news is, the whole SAP Community Network website has an awkward, cluttered and confusing design... and in particular the SAP SQL Anywhere forum is clunky and hard to use when compared with SQLAnywhere-Forum.sybase.com.
Enough windmills!
The SAP Community Network website can't help the way it is: it's a all-encompassing corporate creation with no place for best-of-breed solutions like the software running SQLAnywhere-Forum.sybase.com. Sybase almost created one of those (the Sybase Developer Network) but decided not to
To put it another way, if SQLAnywhere-Forum.sybase.com is replaced by the SAP forum, it's not the end of the world... having one place to ask questions might be a good thing.
On the other hand, if SQL Anywhere is put through some kind of committee meat-grinder, THAT'S the end of the world.
Wednesday, April 17, 2013
Product Suggestion: Google-Searchable Docs
Some SQL Anywhere technical documents posted on the sap.com website aren't showing up in Google searches, and they should.
The likely reason is that these documents are located in separate PDF blobs deep down in sap.com documentation database, so deep the Google indexing process doesn't find them.
Example 1
This document dates back to May 2011, and it originally appeared on sybase.com. When you do the following Google searchMobilizing an Oracle 11g Database http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80c79a94-1b24-3010-f7a0-f299dc3b47e1?QuickLink=index&overridelayout=true&57844619551223
the original sybase.com copy shows up"must have permission for the GV_$TRANSACTION"
but not the one on sap.com.Mobilizing an Oracle 11g Database http://www.sybase.com/files/Technical_Documents/ias_wp_MobilizeOracle11g.pdf
As time goes on, it is very likely that all technical documentation on sybase.com will be copied to sap.com and deleted from sybase.com... but for now, Google can still find this one.
Example 2
This exists only on sap.com, and as such it is invisible to a Google search like this:Top 10 Cool New Features In SAP Sybase SQL Anywhere 16 http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/90b97407-9281-3010-92bf-edb97ae0bb72?QuickLink=index&overridelayout=true&58321360934470
"skipping over one version number per year for three years"
Suggestion
Instead of burying these documents down inside a documentation database that is inaccessible to Google search, they should be stored in a location Google can find... either a simple web page, or a database that Google can index.For example, the following document is stored as an ordinary "DOC-xxxxx" web page that Google can find:
In this case, a Google search works just fine:SAP Sybase SQL Anywhere Supported Platforms and Engineering Support Status http://scn.sap.com/docs/DOC-35654
In fact, the hidden documents ARE represented as simple "DOC-xxxxx" web pages but those pages are stubs; the actual content is buried one level further down (or eight levels further down if you count all the "/" slashes in the urls)."The tables below summarize the platforms supported by SAP Sybase SQL Anywhere"
For example, here's the DOC-xxxxx page for the Top 10 article:
As you can see, the DOC-xxxxx page is just a stub, and the actual content is down inside the hidden page:Top 10 Cool New Features in SAP Sybase SQL Anywhere 16 http://scn.sap.com/docs/DOC-40056
What's the point?
It may not be important to have this particular page searchable by Google, but that's not the point.The point is, it IS important for MOST SQL Anywhere technical documents to be Google-searchable, and the trend favoring stealth over visibility should be reversed.
Friday, July 13, 2012
Google Groups Q&A
Back in 2009, Version 1.0 of the web-based SQL Anywhere question-and-answer forum was created using the Stack Exchange service as it existed then.
That was then, this is now: If I had to do it again, knowing what Stack Exchange has become, I might use the new Google Groups Q&A instead:
That won't happen, of course,
...because that was then, and this is now, and Version 2.0 of the SQL Anywhere forum exists, and it's just fine, no need to switch platforms.But...
If I, or you, wanted to create a whole new Q&A website today, here's why the new-and-improved Google Groups might be the way to go:- It gives you all the basic goodies you want when building a modern Q&A website,
- for free,
- plus it gives you a Google-style interface, with Google search built right in,
- plus your website automatically runs on the Google cloud, you don't even have to ask:
Plus... no tyrants!
Unlike Google Groups, which is open to everyone, the current Stack Exchange service is built upon two Big Lies (a Big Lie is a falsehood so bold, so ridiculous, so easily disproved, that folks think it must be true because nobody would tell such a whopper, would they?):Big Lie Number One: "A good Q&A site needs a lot of people to support it."
The truth: What a good Q&A site needs is at least one person to support it. More are better, but most successful online communities depend on a very small number of extremely active users.Big Lie Number Two: "Stack Exchange is a product for the Internet community at large, not for corporations or individuals."
The truth: The internet community consists entirely of corporations and individuals... what else is there?From these lies springs the rule that you can't have a Stack Exchange Q&A site if you don't agree with the tyrant "We":
Robots? Aliens?
Soldiers?
By the tyrant We's standards, the original sqla.stackexchange.com would not have existed in the first place, nor would SQLAnywhere-forum.sybase.com exist today, simply because because they didn't (and don't) have enough traffic to qualify.
"We'll let you know whenever the site reaches the next milestone. A site moves to the "Commitment" phase when its definition is complete and it has a show of support from enough potential users. If a proposal doesn't have followers, the site will not get created."
Not to mention that the former was created and operated by an individual, and the latter by a corporation made up entirely of individuals, as opposed to...
...what?
The "community"?
Will Google Groups Q&A crush Stack Exchange?
It's hard to say, Google hasn't been successful [cough] [Google+] at every single thing it tries.
But maybe it doesn't matter... Stack Exchange seems to be morphing into yet another job hunting website:
Friday, May 25, 2012
What's YOUR Klout score?

How did my Klout score get to be so high?
In case you were wondering,
Here's how I really feel about it...
Wednesday, January 18, 2012
Develop, Test, Release, ...
No amount of slick propaganda can rearrange the basic software development life cycle:
No one can put Release before Develop, not unless they have a time machine. It is possible to put Release before Test but that is usually so unsuccessful that an impartial observer might say the Release never happened.
Develop, Test, Release, Repeat
If the same staff are involved in both Develop and Test (as they often are, and perhaps should be) then a big problem can arise when the cycle reaches Repeat:
During final testing the code is usually frozen and everyone is risk-averse. The only changes allowed are those required to fix problems, and not all problems are fixed... no one wants to make any changes that might break something else.
It's hard to go back to development when you've been testing for release.
After the Big Release Day, it's time to Repeat which means go back to Development. For management, that's easy: it's all just one long schedule to them, just one day later, and there's probably been some slippage which means everyone's already late for the next Release.
For developers, it's not so easy... especially if they just came off the death march called Test. They're still risk-averse, and Development requires risks to be embraced: Concentrate on the enhancements without obsessing about the effect they might have on the rest of the program. They're also tired, and Development requires enthusiasm.
What the developers need, and often do not get, is an extra step to decompress and rejuvenate:
A word to the wise for management: If developers don't get time to Relax, they'll take it anyway... perhaps not consciously, but through bad morale, lost productivity and extra sick time. And it might cost more in the long run.
Develop, Test, Release, Relax, Repeat
Or... you could try rewards, see if that works...
Monday, October 31, 2011
A New Appreciation
Updating the Foxhound FAQ has given me a new appreciation for the folks who labor on the SQL Anywhere docs... and why, just maybe why, they don't ship new docs with every steenking EBF!
Because it's hard, that's why!
It's hard keeping up with the changes.
The new stuff, fine, that's hard too, but it's interesting, and the docs for that have got a guaranteed audience.
But all those changes? Something minor affecting how the product looks or behaves, and suddenly the docs need changing... who knows where? ...maybe everywhere!
Or worse, some name gets changed, not affecting the product at all, just the documentation!
Worse still, some internal name gets changed, internal to the documentation itself, not visible to anyone except the doc writer who has to fix the resulting errors.
Ah, it could be worse...
...the developers could be in charge of the docs.
Friday, August 19, 2011
From Idea to iPhone in Seven Days
Maybe there is something to this UltraLite thing after all...
From UK hospitals find cure for test data delivery via mobile BI by Brian McKenna, 8 Aug 2011:
Ecommnet developed the iPhone-based application in seven days, in time for a health care trade conference earlier this year.
“We take a complex understanding of a back-end database [in this case Oracle]. We can see what the core bits of data really are and translate that to something that will work on a mobile device, with a small screen,” he said. In this case one goal was “to present the information sensibly to clinicians. It had to work simply for the consultants, so we had to think like them.”
Campbell knew users wouldn't have constant connectivity as the data was moved between the PAS back-end Oracle database and the iPhones. That meant the system needed a reliable store and forward capability.
Sybase's SQL Anywhere’s provided a rapid store and forward database and data synchronization platform.
"By using SQL Anywhere, we were able to delegate the issue of data transmission between the mobile device and the back-end database to Sybase technology, instead of having to spend a lot of time that we really didn’t have to get that communication working," Campbell said, in a Sybase case study article.
Monday, August 1, 2011
Congratulations, Peter Bumbulis!
United States Patent 7,962,693
Bumbulis June 14, 2011
Cache management system providing improved page latching methodology 
Abstract
A cache management system providing improved page latching methodology. A method providing access to data in a multi-threaded computing system comprises: providing a cache containing data pages and a mapping to pages in memory of the multi-threaded computing system; associating a latch with each page in cache to regulate access, the latch allowing multiple threads to share access to the page for reads and a single thread to obtain exclusive access to the page for writes; in response to a request from a first thread to read a particular page, determining whether the particular page is in cache without acquiring any synchronization object regulating access and without blocking access by other threads; if the particular page is in cache, reading the particular page unless another thread has exclusively latched the particular page; and otherwise, if the particular page is not in cache, bringing the page into cache.
Inventors: Bumbulis; Peter (Cambridge, CA)
Assignee: Ianywhere Solutions, Inc. (Dublin, CA)
Appl. No.: 12/122,688
Filed: May 17, 2008
Patents are a BIG deal!
If patents weren't important, would Scott Adams have mentioned them 32 times?
I rest my case!

Monday, May 9, 2011
Monday, March 28, 2011
Chrome Rocks!
There are a number of disadvantages to being an early adopter. One of those is becoming so discouraged with all the bugs and glitches in the new product that you stop using it, even when everything's fixed and the new product becomes Best of Breed.
Even when the new product becomes much better than the siht you're using now.
That was me two years ago, with the Google Chrome browser... I tried it... Crash! Kaboom!... and immediately ran back into the arms of Firefox and IE.
Now, Firefox and IE have driven me in the other direction; here's the story, step-by-step...
- The other day Firefox 3.6 insisted on downloading some new patches, but
- Norton Internet Security quarantined a critical component in that download, then
- Firefox (not unexpectedly) refused to start without that component, making it clear that
- (who am I to argue?) this is Mozilla's way of telling me to upgrade, and when
- I downloaded Firefox 4 it seemed to work OK, until

- Firefox 4 started going Crash! Kaboom! every time I touched Gmail, plus
- the rest of it was cluttered and confusing and just plain ugly, so for some (hitherto unexplained and clearly irrational) reason
- I decided to try Internet Explorer 9 and that seemed to go OK, except for the fact
- the new GUI is so completely hosed up that it can't even display the Minimize / Maximize / Close icons properly, plus
- the rest of it was cluttered and confusing and just plain ugly, leaving me...
"What have I got to lose? Let's try Chrome again!"
Wow! What a difference two years makes! Not only is Chrome fast, Fast, FAST!
- it works with Gmail (surprise, surprise),
- it doesn't mess up the display, and
- the GUI is clean, Clean, CLEAN!
- dragging a tab to create a separate window,
- dragging tabs between windows,
- an "Inspect element" feature that includes an execution profiler...

- and a convenient Console for in-your-face displays of JavaScript errors...

What's wrong with Chrome?
Here are the problems I've had so far, with workarounds:
- There's no window <TITLE> bar: if the page titles don't all fit on the tab bar, you can use a hover-over text box to see each one in turn.
- It's hard to find where to set options: click on the wrench icon to see a menu; if the option you want isn't in "Options", you might find it in "Tools".
- It's easy to get the bookmark bar confused with the tab bar: you could turn off the bookmark bar, but it's really handy so just get used to it.
- Chrome isn't anywhere near as popular as Firefox or IE: that I don't understand, especially for geeks and nerds; here are the browser stats for this blog:

Friday, January 7, 2011
STFW
Here's a wall-mounted electrical timer that controls some outdoor lights. When it's working those lights turn on at dusk and off at dawn:
When it's not working (which is right after anyone messes with it) the lights turn on and off at the wrong times.
The definition of "anyone" includes "me"... after hours of messing with it, I realized that I had to RTFM.
Trouble was, no manual. No visible model number either, not even a manufacturer's name. A friend suggested "take the photo to Home Depot and buy another timer... that way you'll get a manual."
But that was then...
...and this is 2011.
It ain't RTFM any more, the new rule is STFW.
So I took the word "timer" plus the only words visible on the timer itself (off clear on) and did a Google search.
I did this even though I was sure that "off" and "on" would be useless noise as far as Google was concerned...
timer off clear on
GADZOOKS!

The first result was exactly what I was looking for!
STFW Rules!

What does this have to do with SQL Anywhere?
Nothing, except that not all answers to SQL Anywhere questions are found in the SQL Anywhere manuals. Sometimes they are found elsewhere.
That's what STFW means: Look elsewhere. Look everywhere.
For example: How do I stop dbmlsync from a command line?

That search didn't work so well a few days ago, but this generalized version did: How do I kill a Windows task from a command line?

That answer ("it's called taskkill, and it's from Microsoft") led to this search: taskkill site:microsoft.com

Question: When Google becomes self-aware, will anyone notice?
Wednesday, December 8, 2010
Carbonite
"As a computer software developer for almost forty years, please let me say that the creators of Carbonite should be very proud of what they have produced.
The older I get, the more critical and jaded I get at all the crap that's out there (don't get me started on open source) which means it's doubly refreshing to see a product that does what it says it will do with no mess and no fuss, like Google Search, Google Mail... and Carbonite."
It's been exactly one year since I wrote those words and captured that screenshot, and I feel exactly the same way today. Carbonite doesn't answer all my backup requirements, not by a long shot, but it certainly does answer this one: a regular offsite backup of critical data files.
All I have to do is make sure to put the files I want copied in a folder under My Documents and Bam! ...they're copied into the cloud within minutes, sometimes seconds.
The Carbonite agent sits in the system tray and doesn't seem to consume resources, certainly not like some of the other [cough] stuff I put up with like Norton 360.
(yeah, yeah, I know using Norton Anything is stupid, I should use one of those low-overhead antivirus utilities written by some guy in his underwear in his mother's basement)
What are "Critical Data Files"?
Currently, Carbonite copies the SQLA website extracts... oops, that reminds me, gotta backup SQLA again, be right back...
Database export in progress. An email will be sent to breck.carter@gmail.com when it is ready for download....back again. Carbonite also copies everything required to do the daily Foxhound build, and some personal stuff.
I really should give more work to Carbonite, and it's on my to do list. But it's already taking care of a big chunk of my "critical data files", the ones I want back even if every single piece of computer hardware I own is destroyed.
Carbonite encrypts, but that encryption is not secure from Carbonite itself (or, by extension, the Men In Black) so I encrypt some files myself before putting them in the hopper for Carbonite to pick up.
What about full backups?
That's what Norton Ghost 14 and 15 are for, plus a pair of 2 TB USB 3.0 external drives, and a 1 TB USB 2.0 portable drive.
(amazingly affordable these days, all brand names, less than $500 for everything including the software)That, plus this every-day-ritual: Fire up a full-drive-backup-with-verification process just before the whistle sounds "Miller Time" at the code mines.
Wednesday, November 17, 2010
Isn't it just possible?
Here's a line that rang a bell with me:
Isn't it just possible that my inability to profit from OOP reflects a problem with OOP itself and not my own incompetence? - "Objects Never? Well, Hardly Ever!" by Mordechai Ben-Ari, Communications of the ACM, September 2010
I am not alone!
Here's another excerpt...I am not the only one whose intuition fails when it comes to OOP. ... Again, isn't it just possible that the intuition of experienced software engineers is perfectly OK, and that it is OOP that is not intuitive and frequently even artificial?To put those quotes in context, here are first two paragraphs from the article:
At the 2005 SIGCSE (Special Interest Group in Computer Science Education) Symposium in St. Louis, MO, a packed audience listened to the Great Objects Debate: Should we teach "objects first" or "objects later"?1 In the objects-first approach, novices are taught object-oriented programming (OOP) in their initial introduction to programming, as opposed to an objects-later approach, where novices are first introduced to procedural programming, leaving OOP to the end of the first semester or the end of the first year. Kim Bruce and Michael Kölling spoke in favor of the objects-first approach, while their opponents Stuart Reges and Eliot Koffman argued for teaching procedural programming first. One of Bruce's arguments was: since OOP is dominant in the world of software development, it should be taught early. I later contacted Bruce to ask for a warrant for the dominance of OOP, but he could not give me one, nor could any of several other experts to whom I posed the same question.The full text of the article is behind a "Pay Wall" so you have join the Association for Computing Machinery or cough up some $$ to read it.
I claim that the use of OOP is not as prevalent as most people believe, that it is not as successful as its proponents claim, and, therefore, that its central place in the CS curriculum is not justified.
Speaking of which, I've been a member since Before Time Began (1973) and it is only recently (the past few years) when the ACM's flagship magazine "Communications" has been worth reading for practitioners of The Dark Arts (you know, programmers).
Now, it's well worth the expense. Not a single issue goes by that doesn't provoke at least one "Aha!" moment.
Aha! The Programmer's New Paradigm!
This is not an excerpt from the article, this is what the article provoked in me:A Programmer who cares for nothing but the elegance of his code hires two consultants who promise him the finest programming paradigm whose benefits are invisible to anyone who is unfit for his position or "just hopelessly stupid". The Programmer cannot see the benefits himself, but pretends that he can for fear of appearing unfit for his position or stupid; his colleagues do the same. When the consultants report that the paradigm is ready, they show him how it works and the Programmer starts developing applications with it. A young intern on the team calls out that the paradigm has no benefits at all and the cry is taken up by others. The Programmer cringes, suspecting the assertion is true, but holds himself up proudly and continues along the same path. - with apologies to Hans Christian Andersen
One more excerpt, not from me, not from the article, but from a comment on the article...
"... in a design oriented field such as ours, fads are all to easy to hatch. It takes considerable will to resist fads and stay focused on the real issues." — Alan Kay, September 11, 2010
Who's Alan Kay, you ask?
Oh, nobody important, just some random guy on the internet :)Wednesday, November 10, 2010
Everyone hates Ticketmaster, except...
The November issue of Wired magazine contains this article about startup companies trying to compete with TicketMaster:
Everyone Hates Ticketmaster — But No One Can Take It Down

Spoiler Alert!
Here's the last line, the bottom line:
"... ticketing is not about the fans or the bands. It’s about the venues. And for them, Ticketmaster works."Why does Ticketmaster work? Because
"... the company’s system is almost supernaturally reliable."What does that have to do with SQL Anywhere? Well, SQL Anywhere is one of the reasons no one can take down TicketMaster...
"Because the ARCHTICS® ticketing systems are deployed into client sites with small or non-existant IT staffs, Ticketmaster requires a database to power its solution that could be deployed and managed with minimal administration. However, the high demands of the application meant it was not acceptable that this would come at the expense of performance or features." - Ticketmaster SQL Anywhere success storySo, everyone hates TicketMaster, except me :)
Friday, October 29, 2010
The Seven Deadly Habits of an Oracle DBA
Seriously, it doesn't say "Oracle" in the title of this article, and the points it makes apply to a lot of non-Oracle shops including some using SQL Anywhere:
The Seven Deadly Habits of a DBABut... the writer IS talking about Oracle, and Habit #5 does apply to every single large Oracle (and IBM) shop I've ever dealt with.
Habit #5. THE BLAME GAME: "Don't look at me, it's the developer's fault that SQL is in production"
Some DBAs have a real "us versus them" mentality when it comes to developers in their organization. They see themselves not as facilitators helping the developers develop quality code from a database standpoint, but rather as guardians who prevent poor-quality code from making it into production. This might seem like semantics, but a confrontational relationship between developers and DBAs results in a lack of developer initiative and significant slowdowns in release cycles.
Cures:
- Select DBAs who understand it's their responsibility to work as an integrated team with the developers they support.
- Cultivate a team attitude by structuring continuous DBA involvement in every project rather than at review milestones.
- Consider assigning an individual DBA in a developer support role. If it's clearly in the job description, there's more motivation to do it well.
The "Blame Game" title is lame, the important point is the us-versus-them mentality that destroys creativity and productivity.
Friday, September 25, 2009
Quassnoi's Explain Extended
I've added a new blog to the "WIDER VIEWS..." list on the right: Quassnoi's Explain Extended.
Lot's of solid SQL content there, in particular this excellent discussion about "thinking in sets": Double-thinking in SQL.
Friday, July 17, 2009
Wall-E, meet RIVA

RIVA the robot may not match Wall-E's sparkling personality, or even IvanAnywhere's, but you can't fault her mission: To reduce medication errors at the Children's Hospital of Orange County in Southern California.
Plus, like IvanAnywhere, RIVA runs on SQL Anywhere:
"To make the code lean, RIVA relies heavily on scripts stored inside a Sybase Inc. embedded database, SQL Anywhere."Read more about RIVA here, and watch the video here.
- Thom Doherty, CTO at Intelligent Hospital Systems




