Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: MSS Code Factory 1.11 has been released to production

This day had to come eventually. It was just a matter of patience, persistence, and time.

Today I released MSS Code Factory 1.11 to production.

This is the first time I've ever released a piece of software because I honestly believe it's ready to be released rather than because some marketing/sales rep or management had set an arbitrary delivery date.

This release was 4 years in development. The project itself was started 18 years ago.

But my baby has all grown up, and it's time to send her out the door into the wild, wild world.

If I were to die today, I'd die knowing I accomplished something with my life.

This has been the mountain I had to climb; the ocean I had to sail; the desert I had to cross. It has been my mission ever since I first conceived of the idea of manufacturing code by reversing the logic of a compiler/parser way back in my University days.

For those of you who are programmers, please download and play.

http://msscodefactory.sourceforge.net/

By the way, as a side effect of the testing and validation of MSS Code Factory itself, I produced CFUniverse, a conglomerate business application model project that is nearly 14,000,000 lines of source code. To put that in perspective, the biggest project I ever worked on was about 1.5 million lines, coded by a team of over 150 developers over a 3 year period. Were you to print out CFUniverse at 100 lines per page, double-sided, you'd need 5 cases of paper plus another 20 reams to do it.

I'd love to dump that sucker on someone's desk for a code review!

User Journal

Journal Journal: MSS Code Factory 1.11 is almost done

Within the next week or few, I should be releasing MSS Code Factory 1.11 to production.

1.11 has been a 4 year effort, kickstarted by some rule sets from previous versions of the tool. Each of the earlier versions encountered problems which sent me back to the drawing board to resolve the issues I encountered, going so far as to migrate the core engine code to C# at one point, and then back to Java again, all in an effort to clean up the last bugs in the core technology (the effort was successful, but it was a good two years of my time to do it.)

As I write this, I realize that it's been roughly 18 years since I created the 1.0 version of MSS Code Factory using Java JDK 1.0. I've believed in the "write once, run anywhere" philosophy since day one, and bought into the "Network Is The Computer" concept as well. Hence my decision to focus the efforts of MSS Code Factory on Java, rather than diverging into other languages such as C# or C++ (although there is absolutely no reason I couldn't produce code for those languages, sharing the same database models and stored procedures that the Java code relies on.)

18 years.

My precious is almost an adult.

Just a few more weeks of database script testing, more to find and correct issues with the Business Application Models than with any expectation of long-term problems with the database installation scripts as manufactured by the tool.

At the point of release as a side-effect of testing, I'll have created CFUniverse 2.0. A mammoth general purpose database/schema/application comprising 366 tables and nearly 14,000,000 lines of source code.

Top that, 'ya slackers!

User Journal

Journal Journal: 16/44.1 vs 24/192 audio

Some people insist the difference between 16/44.1 and 24/192 audio files is "all in your head", because some idiot mathematician says you shouldn't be able to hear the difference. Well, human ears aren't mathematicians, and I can most emphatically hear the difference even with these aging ears when using a $500 set of headphones.

I am absolutely in *glory* listening to The Grateful Dead's "Built to Last" album at 24/192 right now. The cymbals *splash* and the triangles *ring*. The maracas *rustle*. You can hear the *wires* of the snare drum rattling against the drum heads. And most important of all, the overall experience of listening is *soothing* instead of earache-inducing as with dithered audio. You should hear the sax I'm listening to right now -- that's one instrument whose sound I *know*, having played one for nearly 10 years in my youth.

My theory is that people who've been raised on digital audio have never learned to hear the difference between live instruments and digital dithering. They *can't* hear the difference, because they've never been exposed to and learned how to hear the sounds, much as someone who did not grow up amongst the Chinese can't hear the difference between some sounds in their languages.

The psychoacoustic training of one's ears is a very real phenomenon. If you've never learned to hear and listen for something because you've never been exposed to it, you grow to be *incapable* of hearing it without a *lot* of exposure.

User Journal

Journal Journal: I am a T-Rex 2

Smart ass punks think they know *nix history.

I cut my wisdom teeth on a VAX 11/780 running BSD in the fall of 1984.

I PRE-DATE the GPL -- Ricky Stallman was just touring campuses (including the University of Saskatchewan) with his "new" GPL idea when I was learning *nix coding and the ORIGINAL K&R 'C' language.

I've run, coded, and delivered systems on just about every dialect of *nix that ever existed. I AM A DINOSAUR! A T-Rex that will eat your OS/X crap for breakfast.

FORTRAN, COBOL, LISP, Algol, APL, PL/C, K&R 'C', ANSI 'C', C++ (from 1.0), Erlang, Java (from 1.0), Z-80 assembly, 6502 assembly, PDP-11 assembly, VAX assembly, -- hell, when I was programming the Z-80, I didn't even *have* an assembler -- I converted my code into hex and POKE'd it into the machine and saved the memory image to cassette tapes!

RSX-11, BSD on VAX, VMS on VAX, AT&T SVR4, VMS on Alpha, DEC Unix on Alpha, HP1000/A, HP9000, the first release of AIX on POWER, Minux, Linux from Red Hat 5 onwards (including RHEL/CentOS/OracleLinux, Ubuntu, Debian, SuSE, Slackware, and a couple other distros whose names escape me at the moment), every flavour of Windows from 3.11 onwards, Mach (which is merged into OS/X), QNX (now Blackberry 10), SunOS, Solaris, Amiga, Commodore 64, Commodore PET, Apple II, and a few more that I can't remember the names of at the moment.

So go ahead and try to "tell me", kid. I'll run rings around you in coding, hardware, and experience. I GREW UP WITH THE HISTORY YOU ONLY HAVE READ ABOUT. I've been programming longer than most of you pups have been alive!

(Can you tell I'm pissed that some 7-digit luser tried to tell me I'm "probably not even a programmer"? :P :P :P)

User Journal

Journal Journal: I'm 0x30 years old... 9

Turned 0x30 on Christmas Eve. That sounds better than 48. I expect to start acting 20 when I hit 50.
insert goatse link here.

User Journal

Journal Journal: Obama Lied About Benghazi 8

Some people don't know that Obama lied. But it's obvious fact based on the evidence. In another discussion some apparent trolls were complaining about the claim, but I am uninterested in discussing it, but for those who are interested, the basic summary is this:

* The administration said, for weeks, that the video and the unrest around it was a cause of the attack on the embassy in Benghazi.

* They claimed that the evidence led them to say so.

* They have never provided any such evidence. Some of what they claimed happened -- such as protests existing at the embassy in Benghazi -- was false, and there was never any evidence it was true (maybe in the first hours, but not after the first days).

* There was much evidence, even in the first days, that the attack was preplanned, but it was ignored in favor of the nonexistent evidence of spontaneity.

* The documentary evidence shows that, from the beginning, they had evidence that it was preplanned, and the only "evidence" of spontaneity cited was that it happened soon after protests in Cairo.

Draw your own conclusions, but I do not believe that the President would say it was a spontaneous reaction to the video without some evidence of it, and he had none. He said it because he thought it was believable and wanted to win an election, and if it were preplanned then it is a failure of his administration.

If you want more, check out last week's 60 Minutes report by Lara Logan. Most of it has to do with showing that we a. knew the attack was coming and b. didn't take reasonable steps to prevent it.

User Journal

Journal Journal: A Perspective on Privacy

No doubt people who've read my posts realize I'm concerned about the NSA spying issue, especially in light of the global cooperation in sharing information between spy networks run by other countries including Australia, New Zealand, Germany, and the UK. Even here in Canada our CSIS uses information collected on their behalf by the US NSA. It's already being abused, with information being fed to the DEA and from there on to police departments in the US, which has nothing to do with the original goal of "catching terrorists."

As my own ISP, SaskTel, leases servers in Florida, my email is monitored. My Google and Yahoo accounts are also monitored. There is no way for me to communicate any more without being tracked.

I've always expected this day would come, because when the internet protocol was designed, one of the key requirements were headers that identified the sender and receiver of data packets. There was no way around this, and there is still no way to avoid such identification (though it can be obfuscated to some degree by protocols like TOR.)

As computers have gotten more powerful, it was inevitable that humanity would have the capability to monitor all communications and track all users. It was just a question of when would it happen, and I must admit I'm surprised that we've come this far in my lifetime.

Unfortunately, it would seem the corporate-led fascists are the ones who are leading the charge. Governments whose leaders no longer respect the will of the people, nor even listen to the concerns of the people, but instead spin the lies suggested by their corporate masters. The world is all about the money nowadays.

Maybe some day we'll see a resurgance of humanism and a more equitable social order based on socialist ideals ala Star Trek, where people work for perks, not survival, but I don't think we're going to see that in my life time. Perhaps we'll never see it, because the more entrenched the elite owners of the corporate world become in their mastery of individual country's governments, the less likely it is that they can be uprooted and removed from the halls of power.

Still, I haven't given up hope on humanity.

I'm just very worried about where things are going to go in my own lifetime, never mind the lifetimes of my nieces and nephews.

Despite the tracking that is possible, people insist on using pseudonyms and aliases for their web accounts. I think that's fundamentally wrong. If you've got any sense of honour, integrity, and personal responsibility, you should not be afraid of having your comments and articles on the 'net associated with who you really are. In fact, you should be proud of who you are, stand up as an individual, and rant with enthusiasm against the evils of the world.

Sure you'll make mistakes. You'll say embarassing things. You'll shove your foot in your mouth up to the knee from time to time. And those mistakes will not be erased from the 'net.

But so what? Everyone is human. If anyone is in error, it's those who insist on judging people by their past mistakes instead of realizing that people screw up, learn from their mistakes, and grow to be better people because of them. I've certainly never worried about being judged by potential employers or friends on the internet.

After all, if I am anything, it is honest and blunt with my opinions. I am the kind of person I want to be and would want for a friend: trustworthy and blunt. I hate double-talking backstabbers with a passion, and wouldn't want to work for a company that would judge me based on my internet social life instead of my job history and quality of my work.

So rave on, rave on, rave on, I shall.

Peace.

Mark Sobkow

User Journal

Journal Journal: MSS Code Factory 1.11.6160 Beta 6 (Ok, so I'm not done with betas yet after all)

Beta 6 implements the table id generators for the RAM implementation and corrects a defect in the implementation of the RAM deletes.

It also corrects the use of table id generators for all of the supported databases (DB/2 LUW 10.1, MySQL 5.5, SQL Server 2012, PostgreSQL 9.1, Oracle 11gR2, and Sybase ASE 15.7.) Previously the client-side code that is generated for objects which incorporate BLOBs (or TEXT for SQL Server) would not have properly used the table id generators, but instead would have relied on obsolete/incorrect code for schema id generators of the same name.

All of the RAM and database implementations have regression tested using the CFDbTest 2.0 test suite.

Beta 6 and the corresponding test suite are available for download from http://sourceforge.net/projects/msscodefactory/files/.

User Journal

Journal Journal: MSS Code Factory 1.11.6008 - Beta 5 - The last of the betas

I finally reached Beta 5 with my pet project. It now supports manufacturing of code for DB/2 LUW 10.1, SQL Server 2012, MySQL 5.5, Oracle 11gR2, Sybase ASE 15.7, and PostgreSQL 9.1.

I've finally achieved what I set out to do 15 years ago -- provide a multi/cross database coding tool that automates the mapping from an abstract business model to the specifics of the database while using all of the available performance tuning options of the database. This is far more challenging and complex than something like EJB3, which just generates dynamic SQL, not stored procedures and prepared statements.

Next up will be using the tool to write an application. I'm thinking of doing something simple and straight forward, like the core of an accounting system with general ledger, accounts, subledgering, and so on. During that development I may well add in the security support I've been planning all these years, but maybe not. Time will tell.

Regardless, I'm just peaking to have finally achieved this long outstanding milestone. :)

User Journal

Journal Journal: MSS Code Factory 1.11.5365 Beta 1

The PostgreSQL 9.1 implementation has been updated to make use of stored procedures, prepared SQL statements, and every other performance-tuning trick I've learned in 30+ years of database programming. Subsequent betas will be released as additional databases are brought to the same level of integration as this release for PostgreSQL.

The PostgreSQL code should run rings around EJB3 and similar technologies that rely on dynamic SQL.

MySQL 5.5 support is as complete as it will ever be, and basic DB/2 LUW 10.1 support is also provided.

Download MSS Code Factory Beta 1 from SourceForge.

User Journal

Journal Journal: It's good to be back from my missionary work. 1


It's hard to believe that it was about 10 months ago I took a sabbatical and went on life-saving work in Africa, Antarctica and the Amazon basin. I was part of a team of 14 from Chiropractors Without Borders .

This find organization travels the world with our drop tables and performs life-saving chiropractic treatments wherever needed. Natural disaster areas, poor areas of the world, you name it. We've even been learning Veterinarian Chiropractic.

I performed my first adjustment on a penguin during the second leg of our mission (Antarctica). Dr. Mike, who specialized in Vet-Chiro, pointed out one particular penguin which wasn't moving. He carried the gentle creature over and examines its spine. "There! Right there!" he said as he positioned my finger on the bird's back. Lo and behold: a subluxation! It was amazing! "How do I treat it? This is a lot smaller than I'm used to", I asked. "Directional Non-Force Technique (DNFT) works best with avians." said Dr. Mike. I positioned my thumbs ever so gently and applied what seemed like the right amount of pressure.

I quite literally felt the subluxation melt away like butter.

We placed the penguin down. It stood still for a moment then waddled away to be with its mate. This truly was one of the happiest moments of my life. Every cell of creature on the planet has Innate Intelligence within. They know how to repair themselves, all that is needed is removal of the subluxation causing nerve communication issues.
User Journal

Journal Journal: MSS Code Factory is moving right along 1

As you can see from the MSS Code Factory project site, things are progressing steadily with my pet project. I've just finished spending a couple of weeks reworking the PostgreSQL database IOs to use PreparedStatements wherever possible instead of pure dynamic SQL. At this point, dynamic SQL is only used for cursor-based reads and index queries which reference nullable columns; all other queries and accessors use prepared statements (static SQL.)

I haven't tested the performance of this new layer with PostgreSQL, and don't intend to compare performance of dynamic and static SQL as it would require keeping copies of and debugging both versions of the code. I know from previous experience with DB/2 UDB that using PreparedStatements can result in an 80% overall performance improvement for something like loading a model into a relational database.

Unfortunately most of the performance benefits would be lost when using the code for a web server, because you have to releasePreparedStatements() at the end of each web page served, because there is the possibility that a particular vendor's implementation of PreparedStatements might have data associated with it on the server end of the connection, and the connection has to be released after serving the page.

One of the biggest advantages of switching to static SQL is that parameter binding with PreparedStatements can handle variables up to the maximum size for the type, whereas dynamic SQL is limited by the size of the statement buffer accepted by the database (which used to be a significant limitation with DB/2 UDB 7.2, though I've no doubt that limit has been expanded or eliminated.)

A key point of the use of static SQL is that the only difference between the different databases now is the specific SQL functions used to convert strings to date-time types, so I'm going to be rolling out the support for the commercial databases under GPLv3 after all, rather than trying to leverage them for profit. The differences are just too negligable for me to believe anyone would pay for the privelege of using a commercial database.

User Journal

Journal Journal: I gave up and filed for disability

I've been working as a programmer since the spring of 1987. I've travelled all over North America, worked in many cities and with some of the biggest names in technology. I've had an absolute blast working with skilled and intelligent people who were not only good at what they did, but became good friends.

But it's time to face the facts: I can no longer work "office hour" jobs due to chronic migraines. Even with complete flexibility to work from home and at odd hours, I was barely able to get in 24-30 hours per week at the last company that was willing or able to work with me on the scheduling issues caused by the migraines.

I've therefore filed for disability here in Saskatchewan, and am in the process of getting approved for the SAID program (Saskatchewan Assured Income for Disability.) I used to pay twice as much in taxes per year in the '90s than I'll be getting under SAID, but at least it'll be subsistance living.

Don't make the same mistake I did of enjoying your income while you have it. Save and invest your money like it's going to be the last dollar you earn, because you never know when you're going to be hit by the proverbial bus and find yourself disabled. It's not fun, it's not a "safety net" as some claim, and it's a very depressing future to face.

But many of you will face that future, whether due to medical issues or accidents.

Good luck.

P.S.

I'm going to try to keep Singularity One Systems, Inc. alive because every once in a while I do find a few hundred bucks worth of offsite programming I can do for someone. With the company, I can "bank" that income, and draw the $200/month I'm allowed to on disability over time, as well as running a few expenses like monitors and part of my internet/phone fees through the company instead of paying it all out of pocket.

Who knows? Maybe some day one of my pet projects will turn into a money maker. I've always said I'd program for a hobby if I weren't programming for pay, and that's where life is headed: hobby programming to keep myself from being bored silly in "retirement."

Peace.

Slashdot Top Deals

Lots of folks confuse bad management with destiny. -- Frank Hubbard

Working...