The venerable "error_mixedcode"

hello;
SITUATION:
I have random issues in the likeness of:
http://forums.sun.com/thread.jspa?threadID=5434252
java is 6.21;
all jars are signed with external CA;
running same jars with both applet-style jnlp and application style jnlp invocations;
running on linux, windows, apple - same symptoms;
key points from jnlp config:
<security>
<all-permissions/>
</security>
<update check="background" policy="always"/>
complete jnlp files:
http://8.18.161.45/2.0/applets_testing/jnlp/01-applet-prod.jnlphttp://8.18.161.45/2.0/applets_testing/jnlp/01-application-prod.jnlp
PROBLEM:
the venerable error:
http://java.com/en/download/help/error_mixedcode.xmlshows up randomly; some time after applet/application was running already;
"yes" or "no" answer does not produce any exceptions; the application continues to run fine
(since there are NO unsigned jars) the error just serves to scare the users away;
the error is presumably because of 'update check="background" policy="always"', which I do need;
apparently there is a synchronization issue in deploy.jar, javaws.jar, plugin.jar code;
SOLUTION:
can someone relate to this? any workarounds?
can someone explain the logic jnlp uses to produce this error?
how can I get in touch with the authors of deploy.jar, javaws.jar, plugin.jar? do they have blogs?
thank you;

Yes, I agree. These things are beautiful machines. I've taken one apart before... wow! Love it.

Similar Messages

  • The Venerable ThinkPad W540 – A Journey in Multiple Parts: Part 2

    Missed Part 1?  Catch it here
    Part 2: System / BIOS setup.
    For the average consumer machine, users can get the most out of it without ever having to contemplate these advanced setup procedures. A ThinkPad, however, requires the user to take a peek at them at least, because the default settings certainly do not fit all usage scenarios. From hardware settings, performance and power setup, to security, OS installation and enterprise deployment, almost everything is configurable. Having your ThinkPad wrongly configured in BIOS can slow down OS booting, disabled features you need are not showing up in OS and enabled features you don‘t need will produce unwanted activity / battery drainage etc.
    For every ThinkPad I‘ve ever bought, sold or maintained through the years, the BIOS setup is the first thing I ever perform. This is particularly vital today, even before loading up any OS on it, because of the default legacy pre-installed Windows 7 or UEFI BIOS pre-installed Windows 8/8,1 OS, which like in the case of the former, upgrading your Windows 7 pre-installation to Windows 8 instead of clean installing will give you a legacy installed Windows 8 and thus fail to take advantage of some of the UEFI features that are built into the OS. I‘ll get into some of the differences between Legacy/UEFI installations in Part 3 as well as the main only and secondary hard drive dual booting.
    NB. Although this setup is for the W540/T540p, most of the options are identical to other ThinkPad models and serve the same function, but being a fully loaded W540, it has several options that other models don‘t have, and thus a perfect machine demonstrate this on.
    To enter the ThinkPad UEFI BIOS there are several methods you can use.
    Press F1 on the Lenovo screen to bring up the BIOS setup instantly. (Only possible during restart or when started up again from a full shutdown, which you can have your machine enter if you hold down Shift while clicking Shutdown in Windows 8/8.1).
    Press Enter on the Lenovo screen, again, only possible using the same restart methods as above, to bring up the Startup Interrupt Menu, and then select F1 for the BIOS setup.
    From within Windows 8/8.1:
    Open the Charm Bar by pressing Win+C key combination.
    Click on Settings
    Click on Change PC Settings
    Click on General (Win 8) Update and Recovery (Win 8.1)
    Scroll to the bottom and click on Advanced Startup -> Restart Now (Win 8) Select Recovery -> Advanced Startup -> Restart Now (Win 8.1)
    Click on Troubleshoot
    Click on Advanced Options
    Click on UEFI Firmware Settings
    Click on Restart
    NB. By default, a Windows 8/8.1 shutdown is not a real shutdown. Instead, it is hybrid shutdown where contents of memory are saved to disk. This allows for a faster startup. However, turning on the PC after a hybrid shutdown does not allow for pressing F1 or F12 during startup. To disable this behaviour and for further information on booting Windows 8/8.1 pre-installed machines head over to this page: Windows 8/8.1 boot instructions - Lenovo.
    If you have a ThinkPad with a Legacy BIOS, just press F1 on the ThinkPad screen.
    On the main screen you can see various important information about your ThinkPad such as the serial and MTM numbers, information on your installed CPU and RAM, OS Licence and Secure Boot status. On the image above, I‘ve annotated where you can find the various categories of settings for your machine.
    My W540 is setup as non-enterprise, standalone workstation, so the first things I do is turn off AMT (Intel Active Management Technology) and all Wake/Boot from LAN settings, as my machine won‘t be either booted up from LAN nor managed remotely.
    To turn these settings off, open up your Config screen and select Network and toggle your preferred settings between Enabled / Disabled. I disable all options. The Intel AMT settings are also found on the Config screen, which I set to disabled. NB, do not select Permanently Disabled if you plan on reselling your machine later on, as permanently disabled means just that.
    There are a couple of other features that I disable in the Config section, which is the Intel Smart Connect Technology, which powers on your machine on regular intervals to check for mail and social media updates and the Power – Intel Rapid Start Technology, which I don‘t need on my W-series machines, but I do keep it enabled on my ThinkPad travelmates, such as the T440s.
    Walking through the other settings I change on the Config screen, on USB I have everything set to Enabled and USB 3.0 set to Auto. I am particularly fond of the USB always on and Charge in battery mode, as my ThinkPads that have large 9 cell batteries have managed to save my phone from running out of power on countless occasions. Finally, I set my display options for standalone operation, but if you have your machine docked and connected to one or more external monitors, you need to set these accordingly.
    On to the Security screen, where many mission critical options reside. Many of these options should not be played with, as setting them wrongly can have serious consequences. Particular care should be taken when setting one or more Passwords for access control, as there is no fallback or fix that can reset a forgotten password.
    Leaving the Security settings at their default is fine in most usage scenarios, but some features are disabled by default, like Virtualization, and need to be enabled for them to work. The Security Chip is initially set to Inactive, which means it is visible in your OS, but inactive. I set mine to Active as it is required by the Security Reporting Options, which I do monitor if something comes up as well as enabling the Intel Trusted Execution Technology (TXT) options, which I also have set to Enabled.
    The UEFI BIOS Update Option is self-explanatory and in addition you can prevent older BIOS flashing by turning the Secure Rollback Prevention to Enabled. Memory Protection and I/O Port Access are all enabled by default and no restrictions or access control to your hardware is set. The Internal Device Access option is for the Bottom Cover Tamper Protection, which works in conjunction with the Supervisor Password, so if no Supervisor Password is set, the Tamper Protection won‘t take effect even if set to Enabled. The Anti-Theft module is active by default, and thus you‘ll get popups in your Windows OS regarding enrollment. If you do not wish to see those or you won‘t be using the feature, just set the AT Module to Disabled. Same as with the Intel AMT Control, the AT Module can be permanently disabled as well.
    Lastly, the Secure Boot option is something that is always enabled by default on all machines that come with a Windows 8/8,1 sticker from manufacturer. Secure boot defines how platform firmware manages security certificates, validation of firmware, and a definition of the interface (protocol) between firmware and the operating system. Secure boot prevents “unauthorized” operating systems and software from loading during the startup process.
    Quick summary of the Secure Boot feature:
    UEFI allows firmware to implement a security policy.
    Secure boot is a UEFI protocol not a Windows 8 feature.
    UEFI secure boot is part of Windows 8 secured boot architecture.
    Windows 8 utilizes secure boot to ensure that the pre-OS environment is secure.
    Secure boot doesn’t “lock out” operating system loaders, but is a policy that allows firmware to validate authenticity of components.
    OEMs have the ability to customize their firmware to meet the needs of their customers by customizing the level of certificate and policy management on their platform.
    Microsoft does not mandate or control the settings on PC firmware that control or enable secured boot from any operating system other than Windows.
    I will go deeper into the Secure Boot settings and functionality in Part 3, where the OS installation will be the topic, but unless you‘re clean installing a new OS or upgrading from Windows 7 to Windows 8, these settings as well as the OS Optimized Default setting on the Restart screen can be left at their defaults.
    The Startup section is one that I always clean up and only leave the boot devices I regularly use active on the Boot Priority Order. Don‘t use it? Lose it. This eliminates your machine having to go through all possible boot options on cold boot / restart but a temporary boot device can always be selected through the F12 Boot Menu if you need to boot your machine from a device you don‘t regularly use.
    I use my machine as UEFI OS only, as setting it up as dual booted Windows / Linux in UEFI mode has become much simpler, and effective in the last couple of years. However, dual booting a UEFI and a legacy OS, or legacy only is also an option, and will be further discussed in my next instalment.
    For detailed information on the W540 System Setup, refer to the User Guide available here:
    ThinkPad T540p and W540 - User Guide
    Click here to read Part 1 of AtliJarl's mods to his W540, which is one of the machines we had passed to him for use.

    Good write-up ;-)

  • When, if ever will Android 5.1.1 come to the venerable Note 3?

    I was wondering when and if  ATT with bring Android 5.1.1 to the Note 3. I suspect it won't be until after the release of the Note 5 so as to encourage more Note 3 owners to buy the Note 5?

    Hi Glimmerman,
    My cousin has a Note 4. Roms are not all equal even within the same
    device and operating system/firmware. They vary in speed as well as in
    other aspects such as battery life. It is the battery life of 5.0 which has
    me pining for 5.1.1. Anyway my 2 years are soon up and other options will
    present themselves.

  • Home network 101: How to get 3 Macs to feed photos off the same external HD

    This has to be a super simple setup but the search I did reveals a lot pf pieces to the puzzle but not the basic idea.
    I currently have three Macs running 10.4.10: an old iMac G3 500Mhz, an iMac G4 1Ghz and an iBook 1.4Ghz. They are all connected via generic ethernet cables (RJ45) I installed throughout the house to a Lynksis BEFSR41 EtherFast Cable router in the garage. That one is then connected to a Motorola SB5101 cable modem for our internet connection. Each computer lives happily by itself at the moment and when I need to transfer something from one to the other I temporarily turn Personal Sharing On, do the transfer and then turn it off again. So Sharing is Off 99% of the time because I read that even though they all have passwords, this is the safest way to keep them.
    One problem that we are facing more and more is that four people in the family use these computers and we each have downloaded pictures in iPhoto on all computers. This creates a bit of a mess so I would like to have a central 500GB hard drive next to the router in the garage that would host all the iPhoto files and be permanently visible by each computer.
    I read that the new Airport would offer this possibility. However, I am not interested in wireless because I have already run ethernet cable throughout the house. So my questions are these:
    - What is the best way to accomplish this scenario in terms of safety, speed and cost?
    - Ethernet cable is still safer and faster then wireless, correct?
    - I will be replacing the old iMac G3 with a new 24inch intel one as soon as they are introduced, hopefully this week. Would this old G3 one be useful as a server that the 500GB drive would be attached to? Or would its bus speed be so slow it would bring iPhoto on each machine down to a crawl? It wouldn't really be doing any work, just sit there with the 500 attached to its Firewire port so I can add it to the Lynksis chain.
    Is the Lynksis now too old and slow to allow 3 computer to access that HD at firewire speed? If so, what would be a better choice?
    Again, the three key factors and speed, safety nd cost. (But then again that's always the case, isn't it???) I really appreciate any help or redirection to existing threads or articles that I might have missed.
    Thank you very much.
    Bo

    Not likely...
    They'd need your Passwords & Usernames, then your Router would have to Forward Port 548 to a particular machine, then the icing on the cake is that almost all of this is being done by Bots looking for Internet Explorer running from Drive C:\ and an OS that can execute .exe, .pif, .com, .bat, .etc. files!
    So, if your Macs & Router aren't set up to allow you access from the outside world, nobody else can either... if they are then it's still very unlikely someone else could, but if you want to be as anally paranoid as me, then...
    ClamXAV, free Virus scanner...
    http://www.clamxav.com/
    Little Snitch, stops/alerts outgoing stuff...
    http://www.obdev.at/products/littlesnitch/index.html
    HenWen/Snort combo, that is a free MAJOR Firewall...
    http://seiryu.home.comcast.net/henwen.html
    Then the venerable old Brickhoues/Flying Buttress Firewall...
    http://personalpages.tds.net/~brian_hill/downloads.html
    WaterRoof is a firewall management frontend with bandwidth tuning, NAT setup, port redirection, dynamic rules tracking, predefined rule sets, wizard, logs, statistics and other features.
    http://www.macupdate.com/info.php/id/23317
    But really... no need to worry yourself YET with a Mac... I once challenged a group of people that poo-pooed Mac Security, by running a Machine as Root, gave them the IP, and a few more hints, and nobody got in at all. (There weren't many attempts though).

  • I have tried VERY unsuccessfully to install iphoto 9.2.3 update...it says it has successfully updated - then on opening says: iPhoto cannot be opened because of a problem. Check with the developer to make sure iPhoto works with this version of Mac OS X.

    I have tried VERY unsuccessfully to install the new iphoto 9.2.3 update.
    I have installed it several times both from the appstore and from Apple Support downloads...it says it has 'successfully updated' - then on opening iphoto, a dialogue box pops up and says:
    iPhoto cannot be opened because of a problem.
    Check with the developer to make sure iPhoto works with this version of Mac OS X. You may need to reinstall the application. Be sure to install any available updates for the application and Mac OS X.
    Click Report to see more detailed information and send a report to Apple.
    Insane...I have all my updates including Lion 10.7.3 why does APPLE KEEP SENDING BETAS AS A REAL PRODUCT?
    Does anyone know how to copy over a backup from a twinned drive Backup? What files etc.
    Thanks tons...

    Thanks Terence,
    I did get it working finally...and your last advice was what I needed.
    I am embarassed that I was an early adopter...SHOULD HAVE KNOWN BETTER and read the problems before creating some for myself.
    This was an excercise in frustration, because of the obtuse division between the appstore and Apple Support downloads... it was a bit of a circuitous route...strange that with all the security reciepts and tracking that Apple goes to to prevent piracy... which Steve by his own admission used to build Apple...
    Why aren't the server scripts smart enough to say…”HEY DUMMY you can't use this download because you purchased the last iPhoto upgrade from the appstore...and… DON'T WASTE YOUR TIME and precious data BUDGET downloading this gargantuan file which will eat 20% of your expensive 5Gb monthly data allotment!!!…and NOT WORK…only pretend to…and then foul your system….kill your productivity and turn your hair whiter…even worse than LION did.
    I am just so antagonized by the inept scripts in recent installations that don't do a diagnostic before allowing installation that is going to corrupt things...I had less effort and frustration when I ran my ATARI with a MAC emulator...rarely lost any productivity to nonsense.
    I AM TIRED OF BETAs dressed as products...designed and rushed out for Apple toys that once were tools of the creative trade...COREL...may still have a chance at a comeback if Apple keeps pumping out toys instead of the venerable tools we once adored as income enhancers.

  • Plz help me on the hangman code

    Consider the venerable "hangman" game, in which a player attempts to guess a word one letter at a time. If you are unfamiliar with hangman, simply google it; you'll be playing in no time.
    Consider the following abstract view of hangman. The input is an unknown word and a sequence of character guesses. There is also an implicit parameter, which is the number of incorrect guesses that may be made before losing the game. Even though you wouldn't implement an interactive hangman game this way, let's model this as:
    static public int hangman (String puzzle, String guesses, int limit)
    Requires: puzzle != null, guesses != null, limit >=0
    Effects: returns the number of the guess that solves the
    puzzle within the given limit on incorrect guesses.
    If the puzzle is not solved within the limit, returns -1.
    e.g.
    hangman ("cat", "abct", 1) is 4 (solved)
    hangman ("cat", "abct", 0) is -1 (hit the limit)
    hangman ("cat", "abcd", 5) is -1 (gave up)
    I wrote the following code but it gives me an error of array index out of bounds exception though it compiles correctly. If someone can help me in correcting the code or point out my mistake.
    public class hangman
    public static int hang(String puz,String gue,int lim)
         int i,j,flag=0,ret=0;
         char p[],g[];
         p=puz.toCharArray();
         g=gue.toCharArray();
         one:
              for(i=0;i<g.length;i++)
                   two:
                   for(j=0;j<p.length;j++)
                        if(g==p[j])
                             //take the element off the p array and resize p
                             if(p.length==1)
                             break one;
                             else
                             char b[]=new char[p.length];
                             for(int k=j+1;k<p.length;k++)
                                  p[k-1]=p[k];
                                  b=p;
                                  p=new char[p.length-1];
                             for(int l=0;i<p.length;l++)
                             p[l]=b[l];
                             continue one;
                        else
                        if(j==p.length-1)
                             flag++;
                        else
                        continue two;
              if(flag>lim)
              return -1;
              else
              return 0;
    public static void main(String args[])
    int ret;
    ret=hang("cat","abct",1);
    System.out.println(ret);

    I wrote the following code but it gives me an error
    of array index out of bounds exception though it
    compiles correctly.I just want to point out a fundamental misunderstanding that this statement suggests you have.
    Compiling just converts your source code into equivalent bytecode. The only errors you'll get during compilation are if the syntax is bad (like you forgot a semicolon, misspelled a method name, have an extra closing brace, etc.) or if you're trying to ues a vairialbe that the copmiler can't be sure will have been initialized, etc.
    Compilation does NOT execute your code, and it has no way to determine the logical problem with, for instance, int[] arr = new int[0];
    int x = arr[999]; The fact that x has zero elements and you're trying to access element 999 only comes to light at execution time.
    So "I get an error at runtime even though it compiles fine" is kind of meaningless.
    Note that I'm not trying to pick on you here. I just want to shift your thinking away from this fundamental misconception you seem to have.

  • Is their a limit to the number of recipients in an single message

    i sent a mail using an address list of just over 50 email addresses and the message "Too Many Recipients" appeared. however the message appeared in the sent items and I have no way of knowing if it has been delivered to all recipients, shor tof asking them all individually. Does anyone know how to resolve this?

    '''@AirMail '''
    They probably are Airmail.... the array of addresses will be limited to 64K (2 to the power of 16) because 20 years ago the default allocation unit for C++ was 16 bits. The corollary is no one has seen a pressing need to change it as Mailing lists are a preferable way of multiple addressing anyway.
    The article also mentions the 2 and 4Gb limits on folders. That has been history on IMAP accounts for years. It will also see it's final death knell in 38 with the last bug being fixed in the last 12months to enable greater than 4Gb files. The 2Gb limits for older Linux systems will continue as that is a limitation of the filing system used, not Thunderbird.
    It is also noteworthy that the venerable MBOX will become optional in Version 38 with individual mail in their own files. This may be a boon for some and will certainly remove any limit on the size of a folder.
    '''@Martin'''
    Your assumption is correct. Thunderbird does not even know what limits your particular provider has imposed. This can be a low of 50 at Comcast to unlimited. I have not seen less that 50. Gmail limits you to 100 from a mail client or 500 from their web site (capricious limits abound) This site lists some of the more popular providers and their respective limits. http://www.massmailsoftware.com/blog/smtp-email-sending-limits-and-rates-for-hosting-providers-and-free-email-providers/

  • Need the contact info

    We are a new campus on iTune U(Morehead State University). I got an email recently which shows that Our iTune U application is approved and our authorized signing person (my boss) should get an email for detail instruction. However, he didn't get it. Can anybody help me? Is there a contact info of the iTune U team? I have tried to search it. I didn't find anything.

    Vishal,
    As always, your best point-of-contact for local iTunes U issues is your school's Apple Account Executive (otherwise known as an "AE"). This person has direct links to the iTunes U marketing and engineering teams and can vouch for your ownership of UMKC's iTunes U site.
    If someone else at UMKC created your iTunes U site, it's very unlikely that Apple would provide you with that person's Apple ID and password (in fact, it's almost certainly impossible for Apple to retrieve the password). Without a valid Apple ID/password combo, it will be impossible for you to get your site's base URL and shared secret. The iTunes U team could certainly send these to you but, as they are largely based in Cupertino, they cannot know "for sure" that it's correct to do so. That's where the local Apple folks, the account executives, come in. They do know you and the other principals at your school, they can help establish that you are the new owner of your UMKC's iTunes U site for Cupertino.
    Notwithstanding iTunes U, I find it's valuable to ping my AE and SE every week or so. Both of my local Apple reps are great…my current AE is Ty Beckmann (who also serves as the AE for about half of Chicago's higher ed institutions) and my SE is Jason Bruder, who has done yeoman's work for us. In a pinch, I might bug my former AE/SE (the venerable Jack McLaughlin and the brilliant Mike Miley respectively)…but both have moved on to other schools/roles at Apple, so I'd have to be pretty desperate first.
    Long story short, it's good to know who is your Apple account executive and who is your Apple service engineer. If you have a bookstore that sells Macs on campus (or some entity that sells Apple stuff on behalf of your campus), someone there will -know- who your Apple AE is.

  • Sign the Applet code using pfx certificate got Error?

    I use my existing certificate (.pfx) to sign my applet code as follows (without any key gen. before, directly sign by this certificate)
    jarsigner -storetype pkcs12 -keystore C:\mycert.pfx AppletCode.jar keyEntries
    Although the code can be signed, when i view this page, it prompts me "Certificate not verified" and with error:
    java.security.cert.CertificateException: Check leaf key usage failed in certificate.
    What is wrong? Any body can help me?
    * I try to geneate the self-certificate by keytool to sign my code, it can be viewed properly.

    1) Check if your .pfx certificate has the following purposes (read it using the venerable Internet Explorer):
    Ensures software came from software publisher
    Protects software from alteration after publication
    2) Put your certificate in the cacerts file

  • Update to iOS 4 states "You have the latest version of iTunes"

    When syncing my iTouch 2nd Gen 16GB via iTunes, the Summary page tells me to click Update to instal iOS 4, but when clicking on Update I only get a message telling me that I have the latest version of iTunes... which I know already!
    However, having scanned the discussions on iSO 4, I get the impression that it is causing more problems than benefits, so it may be better to wait until the kinks are sorted, especially for the more mature status of the venerable 2nd Gen???
    If not, how do I get Update to actually update to iOS 4, please?

    Yes, it was very early Sorry to keep you waiting.
    Okay, so on your summary page, there is a button "Check for Update". If it is not visible, make sure you have the latest version of iTunes i.e *iTunes 9.2.1.5*
    Go to the Apple Software Update in the Windows Start Menu or in the Macintosh Finder in 'Applications'.
    Yes, there are some problems with iOS4 and 2nd Gen iPod Touch, as the processor is not fully compatible with the software and operation becomes a little slower and often, customers and owners of 2nd Gen complain that their device CAN handle the features that iOS4 offers the newer generation of iPod, but are not able to, hence why they turn to jailbreaking to enable such features.

  • Is there a way of combining From and To columns in Mail?

    I've just tumbled to the fact that Mail displays separate From and To columns--rather than an integrated Who or Correspondent one.
    In Thunderbird, with the add on Show InOut, or in the venerable Eudora, by default, there is a single column that shows you who the correspondent was and neatly italcizes your sent messages, so you can tell at a glance whether it was something you sent to the person or something they sent you.
    It's bizarre having to look back and forth at From and To to figure that out rather than scanning down a single column.  Having to display both columns also takes up needless room!
    Is there any way in Mail of combining those columns so that it works like Eudora or Thunderbird with its addon?
    Does Mail have an add on systems or take extensions?

    No application can change how the built in Contacts app works, or the Contacts list within Phone. To access your contacts, you'd need to use a third-party app that pulls the data from your contact info and shows it differently.
    But I don't know if there is one that offers the layout you describe--search and compare screenshots. Sometimes I find it easier to browse this website than the App Store in iTunes:
    http://appshopper.com/search/?search=contacts
    Maybe this one?
    http://appshopper.com/social-networking/pokemian
    For changes to the built-in apps, you'd need to ask Apple:
    http://apple.com/feedback

  • Talkin' Bout My Generations: A Brief History of Intel-based Portable Macs

    During my first four years here at Discussions, I came across a fairly common problem while trying to help folks using Windows on a Mac: very few people I responded to could tell mewhat kind of system they were using. Many were users of portable Macs, so to try and help them out identifying the machines they used, I thought of making a guide to portableidentification.  But as I was writing this article two years ago, I got thinking about a more detailed history of the MacBook family from 2006 to 2010. I’ve taken many of the news snippets I’ve read from Macworld magazine and other sources to provide the historical content in this guide and combinedthem with my personal opinions on each model. Specifications where used have been verified by Brock Kyle’s EveryMac.com and by Apple support documents as well as keynote speeches from Apple execs.  The opinions provided are those of the author and are independent of Apple, Inc, so in other words, if you feel differently about these machines…
    DON’T SHOOT THE MESSENGER!
    And now, the guide.  Enjoy!
    First generation (1G):
    These are the only 32-bit Intel Mac portables in the field, sporting Intel Core Duo (“Yonah”) processors from 1.83-2.16 GHz (Early '06, including Glossy)
    MacBook
    This long-awaited upgrade of the iBook has a port setup comparable to the Mid-'05 iBook--2 USB 2.0, 1 FW400, audi oout, mini video.   Also uses an inset keyboard, which drew some groans from the community-at-large when it first launched.  Internally, uses an Intel GMA950 graphics system that borrows up to 64 MB as video RAM and adds 16 MB overhead. 
    Case type: Solid white or black polycarbonate shell
    Chipset: Intel 945GM
    Standard RAM: 512 MB (432 MB usable)
    Maximum RAM: 2.00 GB PC2-5300 DDR2 SDRAM(1968 MB usable)
    Pros: Solid performance vs. iBook, goodbasic machine for the Web, hard drive is user-serviceable.
    Cons: Poor graphics make this unit ascratch for mid-level business work, games or creative apps; limited RAM, no64-bit support
    MacBook Pro
    This was Apple's Intel debut, along withthe iMac (Core Duo).  Apple flashed a1.67 GHz prototype at Macworld Expo ‘06 that was scratched in production for a1.83 GHz model.  Supply chain economicsresulted in an optical drive downgrade to a standard single-layer drive fromthe double-layer drives in the late '05 PowerBooks.  It's also the only model in the MacBook Procontinuum not to bear a FireWire 800 port.  Although functionally similar to the MacBookthat followed it, this line has discrete graphics by way of AMD's RADEONX1600--up to 256 MB.  Slightly revisedversions, rolled in by mid-year, included a glossy display and improved videoRAM. 
    Case type: Anodized aluminum compositewith plastic edging.
    Chipset: Intel 945GM
    Standard RAM: 1 GB
    Maximum RAM: 2.00 GB PC2-5300 DDR2 SDRAM
    Pros: Good step up from PB '05, can runpro apps and games with ease
    Cons: limited RAM, no 64-bit support, no DVD±DL support, lack of FW800 abother for some
    Second generation (2G):
    The 2G portables (“Late 2006” in Applespeak) were a mild speed bump of the 1G lines, replacing the 32-bit Core with the 64-bit Core2 (“Merom”).  Processor speeds ranged from 2.0 GHz-2.33 GHz. Apple fixed many 1G shortcomings here, but retained the 945 family chipsets until well into 2007.  As aresult of the 945 family’s addressing limitations, usable RAM is limited to 3GB, even when 4 GB can be installed. (See http://www.everymac.com/systems/apple/macbook_pro/faq/macbook-pro-core-2-duo-3-g b-memory-limitation-details.html)  Further, Apple has chosen to limitWindows support on these units to Vista; anything else is “use at own risk”.
    On the plus side, these 2G portables arethe absolute earliest qualifiers for Mac OS X Lion, albeit with a significantlylimited user experience—that is, many features of note simply are not possible given the nature of the 2G internals. 
    MacBook
    No visible markers set these units apart from the 1G models, and all internals are the same save for the Core2 CPU.  These units were slightly revised in 2007 toenable draft 802.11n support; those models shipped in October 2006 and onward could download an update to enable 802.11n. The only way to confirm a 2G MacBook is via software; the Model ID iseither ”2,1” or “2,2”
    Case type: Solid white or blackpolycarbonate shell
    Chipset: Intel 945GM
    Standard RAM: 1 GB (944 MB usable)
    Maximum RAM: 3.00 GB PC2-5300 DDR2 SDRAM (2992 MB usable)
    Pros: Core2 offers 64-bit support and modest speed boost, max RAM up
    Cons: Still comes up short forhigh-demand applications.
    MacBook Pro
    Functionally similar to its predecessor while retaining the AMD X1600 graphics, the 2G Pro had three notable differences.  This line marks the permanent return of the FireWire 800 port—this one’s on the right side. Also back for an encore is the double-layer SuperDrive; Apple’s suppliers finally had the size of optical drive that Apple needed.  Like the MacBook, it also gets a lift from the new Core2 CPUs with twice as much L2 cache as their predecessors and their trendier plastic-clad siblings.
    Case type: Anodized aluminum composite with plastic edging.
    Chipset: Intel 945GM
    Standard RAM: 1 GB
    Maximum RAM: 3.00 GB PC2-5300 DDR2 SDRAM
    Pros: FW800 is back, as is DVD±DL; max RAM up, graphics still strong
    Cons: Speed improvement only nominal, Windows Vista support still lacking inspots (X1000-series chips are not DX10 qualified)
    Third generation (3G):
    The “Mid/Late 2007” portables were somewhat of a redesign from the inside, though they remained similar to 2G models when viewed from without.  Common to both lines is the Intel 965 chipset family, best known by its Intel codename, “Santa Rosa”; with it, the system bus got ramped to 800 MT/s while the memory bus remained at 667 MT/s.  Here, the Core2 gets another modest speed bump, with standard frequencies ranging from 2.1 GHz-2.4 GHz.  At this time, the RAM ceiling was lifted, allowing 4 GB to be used in all models and making theseMacs capable 64-bit machines.  Windows x64 variants will run on this class, but it requires Boot Camp 2.1 or higher and some finesse with installing individual software packages since Apple’s installer places a soft block on these units.
    Also of note: 3G and 4G MacBook Pros were particularly susceptible to a defect in the NVIDIA graphics chip, which left unchecked would cause these units not to display video, or to show scrambled video.  Apple has a current repair program to fixthis issue if you should run across it, but time is running out.  Unless you are aware that the defect has been repaired, these models are best avoided
    MacBook
    By the time the 3G models surfaced, the2G models were dealing with heavy criticism for not being refreshed in sync with the Pro models.  Apple had three convincing reasons for such a delay. First came the iPhone EDGE, for which development was a top priority.  The delay actually bought some time for Apple to reveal the other two reasons; Intel was providing the GMA X3100 as a companion to the GM965, which in itself was a modest improvement over the GMA 950 used in the first two iterations; and Apple had been working on its latest flagship OS, “Leopard”, released just days before the new MacBook surfaced on All Saints’ Day (11/1).  One might say that waiting does indeed payoff, judging from Macworld’s bench scores of the 3G MacBooks, 2007 was a good year to upgrade the old iBook to something better.
    Case type: Solid white or black polycarbonate shell
    Chipset: Intel GM965
    Standard RAM: 1 GB (880 MB usable)
    Maximum RAM: 4.00 GB PC2-5300 DDR2 SDRAM (3952 MB usable)
    Pros: Better graphics, potentially faster WLAN support, improved speed, conservative energy usage
    Cons: Poor graphics in Windows, game support on both platforms limited to casual titles (many FPS/RTS/MMO games not supported)
    MacBook Pro
    The 3G Pro underwent a massive interior overhaul in June 2007, sporting NVIDIA GeForce 8600M GT graphics and—for the first time in an Apple portable—an option to build a Core2 Extreme into the unit at 2.6 GHz.  These were the first portables to carry 802.11n as a standard option, as well as the first Apple portables touse an LED-backlit display.  The 3G Pro also meets or exceeds all Windows Vista operating requirements, and was one of the best performing computers to run Vista, according to PC World.
    Unfortunately for longtime notebook users, the 3G lines of the MacBook Pro also mark some “lasts”.  The line of 3G Pros was the last line of portables to have officially shipped with Tiger, the last portables to includean Apple Remote as standard equipment, and, perhaps more notably, the last tobear a traditional numeric keypad.
    Case type: Anodized aluminum composite with plastic edging.
    Chipset: Intel GM965
    Standard RAM: 2 GB
    Maximum RAM: 4.00 GB PC2-5300 DDR2 SDRAM
    Pros: Significantly improved graphics, greater energy efficiency over 2G units due to chipset and display upgrades, fastest unit of its time for current OSes, solid all-around performance, potentially faster WLAN support.
    Cons: Not quite “future-proof”
    Fourth generation (4G)
    The “Early 2008” portables were met with fervent anticipation, as Apple hinted about “something in the air” at what would be CEO Steve Jobs’ final Macworld Expo address. Notebooks were all the rage, as was the upcoming iPhone software upgrade that gave rise to application development and the App Store.  Exciting news indeed, it was.  Yet, as was the norm in Jobsian monologues, he had “one more thing” to show off. Inter-office memos?  Nope, but it did arrive in the classic manila envelope used for such.  It was the first-generation MacBook Air, partof a 4G lineup that saw revamped Core2 CPUs ranging from 1.6 GHz all the way upt o 2.6 GHz depending on model and build options.
    The new CPUs were based on Intel’s latest “Penryn” cores, some of which received a drop in L2 cache versus the “Merom” cores used in 2G and 3G units.  However, the drop in cache did little to impact performance; the new CPUs were actually faster by a slight margin at the same speeds as prior Core2’s, per Macworld’s bench scores.  As there were few changes in case designapart from removing the keypad from the MacBook Pro, only software can separate a 4G unit from a 3G unit.
    The 4G units, and all units following, officially support x64-native Windows via Boot Camp 2.1 as included on their Install Discs, or ondiscs with future versions of OS X and Boot Camp.
    MacBook
    The 4G MacBook saw the processor upgrade and little else,but the bump was likely enough to convince any but the hard-core 12” PowerBookenthusiasts to cross over to Intel. Because it’s still based on the Santa Rosa (GM965) platform, the 20-pluspercentage point improvements touted by tech-savvy bloggers and enthusiastsites are never realized. Rather, some sources have documented a roughimprovement of between three percent and ten percent over the 3G units.
    Sadly for some, this model is the last MacBook to bear anysize and speed of FireWire port.
    Case type: Solid white or black polycarbonate shell (as of late 2008, white only)
    Chipset: Intel GM965
    Standard RAM: 2 GB (1904 MB usable)
    Maximum RAM: 4.00 GB PC2-5300 DDR2 SDRAM (3952 MB usable)
    Pros: Still a solid machine for light work, cheap, fast for its price
    Cons: It’s the only cheap way to make your FireWire gear work
    MacBook Air
    The new kid on the block this go-around;the MacBook Air is Apple’s first sub-notebook since the PowerBook Duo of the early 1990’s. Classified as a “thin and light”, the Air is a very strikingdefinition of that term.  At three pounds weight and 0.16” to 0.76” thickness, and with logic circuitry the length of a standard No. 2 pencil, Apple could crow about making “the world’s thinnest notebook” and still pack more punch into a space of 14 inches at a time when other sub-note vendors were still trying to shrink their wares.  These vendors, according to Jobs, started shrinking items that shouldn’t be shrunk. Where most sub-notes had 11” or 12” screens, for example, the Air packed in a 13-incher; and when a keyboard was needed for the Air, Apple went with a full-size board identical to the then one-and-a-half-year-old MacBook design, complete with inset keys.  From the MacBook Pro, the Air gained an aluminum finish as well as a backlit keyboard.  On its own, the Air introduced solid-state storage (colloquially “flash drives”) as hard drives for the Mac.  However, this option added $1,000 to the Air’s asking price and dropped its already limited storage capacity from80 GB to 64 GB.  To add insult to injuryin some minds, the Air also dropped common expansion options and an internal optical drive to acquire its legendary dimensions.  Left after shrinkage: a single USB port, an audio jack, and a “micro-DVI” video port. Despite these sacrifices, the 1G MacBook Air still outclasses other sub-notes where it counts because its chipset is the same GM965 used in the 3G and 4G MacBook offerings in addition to having the fastest low-voltage CPU’s of the day in custom quarter-sized packages. Its performance in comparison to full-featured notebooks is lower by way of processor speed being lower, and yet normal for a portable of its class.
    Case type: Anodized aluminum
    Chipset: Intel GM965
    Standard RAM: 2 GB onboard (1904 MB usable)
    Pros: Size and weight offer maximumportability, big screen and keyboard offer comfort for travelers, multi-gesturetrackpad has large surface for easy usability, and price is on par for class.
    Cons: Limited expansion options, limited storage, and service-removable battery ,costly add-ons required for use in environments where WLAN isn’t an option, not well suited to Windows variants beyond XP.
    MacBook Pro
    Not much new here from the 3G lines, save for the absentkeypad.  Base specs were upped by small increments, and dedicated VRAM doubled for all models.   Nonetheless, the 4G Pro can make a capable,if not solid gaming unit (as if the 3G unit wasn’t competent in its own right).  Like the 3G unit, it is also well suited to Vista and its 64-bit variant, and it can easily run Windows 7 in its many forms as well.
    Case type: Anodized aluminum composite with plastic edging.
    Chipset: Intel GM965
    Standard RAM: 2 GB
    Maximum RAM: 4.00 GB PC2-5300 DDR2 SDRAM
    Pros: Robust graphics, flexible options,and multi-gesture trackpad
    Cons: What’s not to like?  If you liveor die crunching numbers, it’s tougher, but doable.
    Fifth generation (5G)
    As is done in every odd generation, Apple reworked the entire line of notebooks from within for the “Late 2008/Early 2009” cycle.  In addition, Apple was hard at work on atotally new and totally trend-setting casing process for its portables.  The result: an extreme makeover not seen in Apple’s portable lines since the 68K-to-PowerPC transitions of the early 1990’s.  To rework the interior of the MacBook family, Apple went to NVIDIA—not Intel—for a high-performance logicsolution to be used in notebooks.  NVIDIAwas working on a desktop chipset at the time; but if Steve Jobs’ statement at Apple’s October ‘08 notebook event is to be believed, Apple designers asked NVIDIA to make it mobile, and the company delivered an MCP logic set dubbed“GeForce 9400M” unto Apple.  All linesthus benefited from markedly faster graphics and the adoption of ultra-fas tDDR3 memory.  Here, the 5G MacBook and 2G MacBook Air became passable all-around units, with the 5G MacBook Pro sportingdynamically switchable graphics engines.
    For the exterior makeover, Apple Senior Designer Jon Iverevealed that Apple’s latest process created a “unibody” enclosure that waslighter and required fewer parts to produce, for it was milled entirely fromone sheet of aluminum.  To complete themakeover, Apple drew on its experience with the Aluminum line of iMac desktopsand fused all-glass displays into the new assemblies.
    For some models, the fifth generation held well into 2010,and so received only incremental upgrades to the CPU, GPU, and system RAM
    All models from this generation, save for the whiteMacBook, include a button-less, customizable multi-gesture trackpad.
    MacBook and MacBookPro (15”)
    Because the two lines had converged in this iteration, only subtle visual differences kept them apart. Both lines dropped the FireWire 400 port and exchanged their respectivevideo outputs for a common Mini DisplayPort, based on an emerging standard.  The loss of certain status quofeatures on both lines  (FW400 on theMacBook, traditional keyboard on the Pro) drew some whining in certain circles,but such things happen when Apple does this sort of retooling.
    With the 5G notebooks, Apple further blurred the line thatonce separated MacBook from MacBook Pro, allowing the former a backlit keyboardin its fullest build.  Apple hoped that thiswould swing “fence people” toward the MacBook instead of a low-cost Windows PC since these are folks that would be forced to spend $2,000 on a MacBook Probecause they want to play games in either Mac OS or Windows, casually orotherwise.
    Case type: Anodized aluminum unibody
    Chipset: NVIDIA GeForce 9400M MCP (withGeForce 9600M GT GPU in Pro models)
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM: 8.00 GB PC3-8500 DDR3 SDRAM( 7936 MB usable)
    Pros: Fast graphics, lighter, moredurable, energy efficient, hard drive is user-serviceable, wealth of optionsavailable
    Cons: Changes in port makeup require conversion adapters; may frustrate some
    MacBook Pro (17”)
    At MacWorld Expo ’09, Apple SeniorVice-President Phil Schiller spent more than 90 minutes touting the company’slatest software offerings.  In typical Apple style, however, Schiller couldn’t let Apple make what would be its finalcurtain call without a fantastic final act. The 5G-notebook lineup would be rounded out with a stunning revision to one of Apple’s crown jewels: the 17-inch MacBook Pro.  Though it’s fundamentally similar to its smaller siblings and received the same makeover from its 4G incarnation that the others received, its battery puts it in a class of its own; Apple claimed not only that the battery will last an unheard-of 8 hours, but also that it would continue to function at nearly 100% potential after 300charge cycles and drop to 80% potential after 1000 cycles, thereby lastingthree times longer than most conventional notebook batteries, including itsown.  The reason for this is thebattery’s adaptive charging circuitry, which requests that charge be directedonly to the cells that require it instead of the system charging the battery uniformly across all cells.  Real world testing of Apple’s claims yielded figures closer to 5 hours.  Still, the fact that the battery is fixed inplace seemed irrelevant.  Fixed batteries have been a source of worry for many gadget lovers since the original iPoddebuted in 2001.
    Nonetheless, Apple’s flagship retained manyof thee same advantages and disadvantages of its 5G fellows, and yet it remaineda solid machine for those fortunate enough to afford its nearly $3,000 base sticker price.  Build-to-order modelsnearly eclipsed the 3 GHz mark—but as Don Adams would have said, missed it by that much.
    Case type: Anodized aluminum unibody
    Chipset: NVIDIA GeForce 9400M MCP with GeForce 9600M GT GPU
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM: 8.00 GB PC3-8500 DDR3 SDRAM (7936 MB usable)
    Pros: Powerful, lighter, more durable,energy efficient, hard drive is user-serviceable, wealth of options available
    Cons: Changes in port makeup require conversion adapters; may frustrate some ,expensive entry price, fixed battery
    MacBook Air (Second Generation and Third Generation)
    How do you improve on the world’s most eye-catching notebook?  Apparently, you improve uponit from within, as CEO Jobs outlined during the October event introducing the5G-notebook architecture.  Like itsfull-sized siblings, the 2G Air ships with an NVIDIA 9400M MCP and 2 GB of fast DDR3 RAM onboard even as the ultra-low voltage Core2 CPU at its heart has seenonly miniscule improvements in overall clock speed.  Hard drive options have seen more modest gains, with the standard drive adding 50% more space than its predecessor and the SSD option doubling to 128 GB.  With these adjustments, the Air becomes more palatable to travelers willing toaccept certain tradeoffs in exchange for size and weight.  For Windows users under Boot Camp, the Air also becomes a more capable, if still underpowered, Vista unit, albeit one that won’t gain much from an x64-based variant thereof. 
    Case type: Anodized aluminum unibody
    Chipset: NVIDIA GeForce 9400M MCP
    Standard RAM: 2 GB onboard (1792 MB usable)
    Pros: Size and weight offer maximumportability, big screen and keyboard offer comfort for travelers, multi-gesturetrack pad has large surface for easy usability, and price is on par for class,better storage options than previous model.
    Cons: No change in onboard RAM to offset new hardware overhead, add-ons still required where WLAN isn’t available, adapter required for new Mini DisplayPort with most displays
    MacBook (’09 White)
    A surprise refresh in early 2009 brought an entry-level MacBook under $1,000 with most of the 5G features above.  To keep it that affordable, Apple ended up blending a third-gen polycarbonate MacBook exterior with a modified 5G-logicassembly.  Users of this model got the same fast graphics engine as the one in the mainstream aluminum MacBooks, all the while keeping the single and now scarce FW400 port; but they also gave up niceties such as the multitouch track pad and the slightly quicker DDR3 RAM.  Nonetheless, this 5G model was mostlikely aimed at those looking to start with a Mac and get a full-fledged computer.
    Case type: Polycarbonate unibody shell
    Chipset: NVIDIA GeForce 9400M MCP
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM:  4 GB (3840 MB usable)
    Pros: Solid construction, cheaper than prior models, few if any changes from previous model
    Cons: Limited trackpad motion support, RAM capped at 4 GB, looks less classy
    Sixth generation (6G)
    Perhaps the only generation not to offer a significant step up from the previous one, the sixth generation opened with a minor redesign of the white MacBook, which at long last had caught up with the earliest 5G models and therefore offered a better value than its previousmodel.  MacBook Airs also see but a minorspeed bump.  True improvement is not achieved until the arrival of the first mobile processors to use the emerging “Nehalem”microarchitecture and to see the return of multithreading support.  The processor’s redesign also affords the ability to shut down inactive processor cores whilst boosting the clock speed of those that remain active. Unfortunately, MacBook Pros are the only models to receive this welcome upgrade, even if it only comes in a dual-core package to start with.  All other models run on the last knownreleases of the “Penryn” core—a harbinger of things to come, maybe?
    MacBook
    From Mid 2009 onward, MacBooks continued to shadow their upper-crust siblings, but in the process, they ultimately catch up—to 2008’s lineup.  It’s from here that these modelstake a multitouch glass-backed trackpad, a fixed battery, and the Mini DisplayPort monitor connection.  A remolded unibody design gives this model a curved front.  FireWire finally drops, as does the IR receiver; Apple found that many consumers buying the MacBook just didn’t care for either add-on.  Still, subtle bumpsin CPU speed and battery life may have been enough to justify an upgrade from previous generation models.
    Case type: Polycarbonate unibody shell
    Chipset: NVIDIA GeForce 9400M MCP
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM:  4 GB (3840 MB usable)
    Pros: Long battery life, sleeker and slimmer design,slightly lighter
    Cons: Almost no change from 5G setup; ports dropped
    MacBook Pro (15” and17”)
    As mentioned above, the 6G Pro offered little in the way of improvements over the 5G lineup—or so it might seem at first glance.  Externally, they appear very much like the  5Gmodels, except that Apple has added an SD card slot to the port array—a big upgrade for camera buffs whom usually resorted to carrying cheap and oft-clunky card readers to dangle from a USB port.
    Internally, these two flagship units make several changes to accommodate the Intel “Nehalem” architecture mentioned above.  No longer could a third-party chipset be used—the direct result of a protracted battle between Intel and NVIDIA over the terms of the deal that allowed the Core2 to run on a non-Intel logic set.  In its place, Intel supplied the “Arrandale” Core i-series multipurpose processors along with the then-new 5 series logic sets.  Arrandale brought with it a completely new bus known as QuickPath Interconnect, which in theory was much improved over the traditional front-side bus. Also making their debut were Turbo Boost, which shut down one core and turned up the other based on demand, and the Intel HD Graphics core, a welcome boost over previous Intel offerings that for their part lacked muscle; this new engine could render 720p HD where 2007’s X3100 had to feign it.  Last but certainly not least, Hyper Threading Technology, absent since the last of the Pentium 4 600 series CPU’s were cas tin 2006, returns to little fanfare but grants users twice the effective coresduring heavy workload.
    Flash storage, introduced on MacBook Airs, makes its way into the mainstream lines with this generation and all that will follow it, though the drives’ expense and potential loss of storage space were not always justifiable, even though flash storage delivers on the promise of improved read/write access speeds.
    Despite these huge gains, users anticipating quad-core chips on Macs when high-end Windows notebooks already had such were at the very least disappointed
    For the discrete graphics engine, Apple again turned to NVIDIA for its 300-series chips, these being significantly more powerful than the 9-series previously used. Video RAM remained unchanged.
    Case type: Anodized aluminum unibody
    Chipset: Intel 5 Series/HD Graphics with NVIDIA GT 330M
    Standard RAM: 4 GB (3840 MB usable inlow-energy modes)
    Maximum RAM: 8.00 GB PC3-8500 DDR3 SDRAM (7936 MB usable in low-energy modes)
    Pros: Big lift from i-Series CPU’s, SD cards now usablewithout extra hardware, more starting RAM, SSD options for better performance
    Cons: Low-energy modes use a graphics engine that is a drag on gaming for some (per user reports), still dual-core.
    Seventh generation (7G)
    There may be some discussion as to whether a seventh generation of Mac portables exists, or whether this line should be part of the sixth generation instead.  Apple’s internal naming schemes for the mainstream models did indeed point to a seventh generation, so on that basis, here’s a definition: Seventh-gen models were, as the sixth-gen models, a mild refresh. This time, though, the refresh targeted only those models not receivingthe Arrandale i-Series upgrade.  All models received the final upgrade of the Penryn Core2’s, as well as replacing NVIDIA’s 9400M MCP with a more robust version in the 320M.
    With Windows XP in decline from 2009’s release of Windows 7, this became the last iteration of Mac portables to run the nearly-decade-old platform.  Vista, too, would meet its end here, though Microsoft still considers it in mainstream support untilmid-2012.  Perhaps Apple wished to streamline their Windows support to a single version—or perhaps it realized what so many others outside of itself knew from experience: Vista was a disaster, and it was best left to rot with its distant ancestor, Windows Me, inthe depths of history’s sewers.
    MacBook
    The trusty steed of many a cheapskate since its 2006 intro received what would be its last upgrade ever in mid 2010.  The Penryn processor gets a slight bump from 2.1 GHz to 2.4 GHz, and NVIDIA 320M graphics round out the package.  Otherwise, there’s not much new, for its reign as King of Value would quickly come to a close.
    Case type: Polycarbonate unibody shell
    Chipset: NVIDIA GeForce 320M MCP
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM:  4 GB (3840 MB usable)
    Pros: Modest gains for CPU and GPU—but that’s it
    Cons: Still cheap looking with a plastic shell—and you paid WHAT?
    MacBook Pro (13”)
    Now firmly rebranded as a Pro model, Apple’s 13” aluminum notebook was poised to gain clout with “prosumers” and other types that loved the aluminum look but did not want to pay extra for the new CPU’s of the 15” and 17” models.  Still, these units made big gains from the new NVIDIA MCP and Penryn chips up to 2.66 GHz. All in all, this seemed a very well-balanced unit for one a full generation behind its peers, and one that was well worth its $1,200 entry fee
    Case type: Anodized aluminum unibody
    Chipset: NVIDIA GeForce 320M MCP
    Standard RAM: 4 GB (3840 MB usable)
    Maximum RAM: 8.00 GB PC3-8500 DDR3 SDRAM (7936 MB usable)
    Pros: Full featured for the size, hits a“sweet spot” for the price
    Cons: Aging architecture now at limit, no i-Series chips to be found
    MacBook Air (Fourth Generation)
    The head-turning Air gets a late 2010 all-around makeoverwhile expanding the family of portables to include Apple’s smallest notebook since the 12” PowerBook made a splash in 2003. Even at the new 11.6” size, the Air gets a slightly thicker body than its previous two models.  The extra thickness isn’t enough to keep it from being the thinnest, but it is enough to add a much-requested second USB port and to eliminate the clumsy door covering the initial USB port and the video port in addition to exposing the MagSafe connector, making the once-awkward connection more accessible.  This also gives it a more rectangular profile in line with Apple’s other models.
    The upgraded 13” model doubles onboard flash storage andadds the SD card slot from the MacBook Pros.
    Both models now feature factory upgrades to storage andRAM—up to 256 GB and 4GB respectively-- as well as new options from theultra-low-voltage Penryn Core2’s.  Bothmodels also benefitted from NVIDIA’s 320M MCP Starting at 1.4 GHz with 64 GB ofstorage and 2 GB RAM for $999, the MacBook Air slowly began to earn its place as the value leader, costing just as much as the venerable white MacBook.  Even so, with so many options for this model,there was something to fit every budget.
    These models are the first to carry a specific OS requirement when running Boot Camp, despite running Snow Leopard as previous models can.  Windows 7 is a must, though one would be hard-pressed trying to squeeze it into a minimally configured 11” unit
    Case type: Anodized aluminum unibody
    Chipset: NVIDIA GeForce 320M MCP
    Standard RAM: 2 GB (1792 MB usable)
    Maximum RAM:  4 GB (3840 MB usable)
    Pros: Still thin and light, wealth of options available,extra USB port, ports much more accessible
    Cons: Options fixed at time of order, Boot Camp needs toospecific for some users
    What About Sandy Bridge?
    As of February 2011, Apple was one of the first manufacturers to introduce Intel’s Sandy Bridge platform to the world, ushering in the eighth and current generation of portable Macs.  With this generation, quad-core, eight-thread i-Series CPU’s are a staple of the 15” and 17” high end, while dual-core ,quad-thread models still populate the lower end.  Nonetheless, all models now benefit from the same new technology with none fully ahead of or behind the others. 
    All models also feature a breakthrough in peripheralconnectivity that combines bandwidths of both PCI Express and DisplayPort intoa bus markedly faster than any bus presently in use.  Christened “Thunderbolt”, the new interface offers enormous potential with its theoretical 10 gigabit-per-second bandwidth.  However, devices using Thunderbolt are only beginning to emerge on the market,thus it is still too early to offer any concrete opinion regarding thistechnology.
    As these models are currently on sale (and have recentlybeen updated) at the Apple Store and Apple Authorized Resellers worldwide, to proffer any opinion of current models defeats the purpose of this, anhistorical document of Mac portable evolution.
    Conclusion and Final Thoughts
    To have witnessed and tracked the evolution of Apple’snotebook lines from 2006 to the present is no small feat.  One could say that doing so is in fact opening a window on the history of Apple itself, for it is in Apple’s notebooks that we have seen the greatest innovations both from the company and in computing itself.  From their inceptionin 2006, Apple’s Intel notebooks have evolved into some of the best and mostreliable notebooks on the market today. To be able to run Windows as well asthe Mac OS only solidifies that position.
    Yet, with each stage of their evolution, the MacBook, MacBookPro and MacBook Air, while they have made significant forward progress, havehad to sacrifice features that some users find essential.  Still, while the complaints roll in with each generation of notebooks, time must march on. Apple is a computer company after all, and must continually update its wares if it is to remain in its current position near the top of the industryat large.
    The stark realities of Apple’s business, however, should never be used as an excuse to buy the latest and greatest hardware even if yours seems less capable than someone else’s. Holding onto older Apple hardware may actually put you at an advantage, since you may still be able to work with hardware that newer models don’tsupport.  This is one of many reasons Macs tend to stick around longer than most Windows PCs.
    I certainly hope you have enjoyed this look back at Apple’s Intel notebook lines.  As a proudmember of the Mac community for almost eight years and a volunteer whose role connects him to computing past, I find this knowledge of the past fascinating; and yet it is vital to maintain such a background, as it can give us as users an idea of where the industry will be in the months and years to come. 

    Due to a copy/paste glitch, some necessary spaces have inadvertently been removed.  If I could fix this, I would.

  • Monitor other account access to a server

    Hello,
    I am administrator of a server used exclusively for backups. About 15 people use a simple, fast and cheap utility (synk standard) on their macs to automatically connect to the server and back up their data every day.
    For some reason, some of them may "forget" to run the backup procedure.
    I would like to see who might have "forgotten", from the server side.
    Is there a terminal command, once logged in as root, to display the last time all the users has accessed the server?
    Thanks,

    Unless you enable some other/additional logging, I think you'd have to run a Script every once in awhile to execute either...
    w
    or
    who
    in terminal every so often.
    Depending how they are connecting, there may be Logs in console.
    Then there are these that can enable lots of logging features...
    HenWen/Snort combo, that is a free MAJOR Firewall... er logging combo, may be outdated now...
    http://seiryu.home.comcast.net/henwen.html
    Then the venerable old Brickhoues/Flying Buttress Firewall...
    http://personalpages.tds.net/~brian_hill/downloads.html
    WaterRoof is a firewall management frontend with bandwidth tuning, NAT setup, port redirection, dynamic rules tracking, predefined rule sets, wizard, logs, statistics and other features.
    http://www.macupdate.com/info.php/id/23317
    http://www.hanynet.com/waterroof/index.html

  • Any idea how you can safely use ONE computer for BOTH work and internet?

    I'm planning to set up a small music project studio, built around a powerbook, that I will be sharing with a friend of mine. My friend is going to use the computer for music AND heavy internet use, but I will only use it for music work (off-line).
    The thing is then that I am slightly worried about viruses, worms, spyware and similar unwanted stuff 'sneaking in' when the laptop is online. Even with firewall and anti-virus I guess there is always a risk.
    Any idea if there is a way of keeping things completely separate?
    How about if I had a bootable external hard drive for my work, with the Mac OS system on. Then when I'm working I could boot up from that drive (and use the computer off-line).
    Maybe we could even remove the internal hard drive from the powerbook (?), and use the powerbook with two external hard drives instead: One bootable drive for me and another bootable drive for my studio partner (and then only connect one hard drive at the time).
    Any idea if this would work well..? (I'm not sure if i.e. a virus could sneak in anyway, through the PRAM, L2 cache or the RAM or something similar) Or does anyone have any other suggestions...? Any ideas much appreciated. Thanks!

    Not too much worry with Macs, but get an Ethernet Router, skip Wireless, use strong Passwords.
    How about if I had a bootable external hard drive for my work, with the Mac OS system on. Then when I'm working I could boot up from that drive (and use the computer off-line).
    Excellent idea, especially if the heavy Net user doesn't have Admin rights.
    One bootable drive for me and another bootable drive for my studio partner (and then only connect one hard drive at the time).
    Just about foolproof! Just need 2 more drives for backup. Not sure why you'd want to remove the internal HD though.
    No Viruses yet in OSX land, in fact the only Malware I know about requires you to install it for itself!
    You'll be OK, that separate drives idea is pure genius.:-)
    Most don't need it on Macs, but here ya go on the Mac side...
    ClamXAV, free Virus scanner...
    http://www.clamxav.com/
    Little Snitch, stops/alerts outgoing stuff...
    http://www.obdev.at/products/littlesnitch/index.html
    HenWen/Snort combo, that is a free MAJOR Firewall...
    http://seiryu.home.comcast.net/henwen.html
    Then the venerable old Brickhoues/Flying Buttress Firewall...
    http://personalpages.tds.net/~brian_hill/downloads.html
    WaterRoof is a firewall management frontend with bandwidth tuning, NAT setup, port redirection, dynamic rules tracking, predefined rule sets, wizard, logs, statistics and other features.
    http://www.macupdate.com/info.php/id/23317
    Monitor net usage...
    http://mac.softpedia.com/get/Dashboard-Widgets/Information/Videotron-Internet-Us age-Monitor.shtml

  • [b]Tutorial:[/b] Simplify Developing OLE Automation Code Using VBA

    INTRODUCTION
    Automating Office applications from Oracle Forms can be a tedious, frustrating, and time-consuming process. Because the OLE2 and CLIENT_OLE2 built-ins do not validate the automation commands that they relay, code that compiles without errors often dies at runtime with a not-so-helpful error code. This tutorial will demonstrate how to simplify the development of automation code using a tool that ships with all Microsoft Office editions -- the Visual Basic for Applications (VBA) IDE.
    The VBA IDE, a core Office component, is a full-fledged development environment featuring code completion, basic syntax highlighting, context-driven help and a runtime debugger. Its Object Browser provides a convenient means of browsing the Word object model, as well as searching by keyword.
    For those who may not interested in following this tutorial in detail, I would like to stress the usefulness of the Object Browser as a tool for inspecting the functions supported by OLE server applications and, perhaps more importantly, valid values for function arguments. Whether/not anyone buys the assertion that starting with VBA prototypes is far more productive than pounding out OLE2 code from the very start, they will find the Object Browser invaluable as a reference -- I rely on it exclusively for this sort of documentation.
    A BRIEF INTRODUCTION TO THE VBA IDE & THE OBJECT BROWSER UTILITY
    Try this:
    1. Open Word
    2. Launch the VBA IDE by pressing <Alt><F11>
    3. Open the Object Browser by pressing <F2>
    The Object Browser allows you to visually navigate Word's class hierarchy. Its user interface is a bit crowded, so controls are unlabeled. Hovering the mouse cursor above a control will display a tooltip explaining that control's purpose. The browser's scope can be narrowed by using the Project/Library combo. Typing a keyword or substring in the Search Text combo and clicking on the Search button will cause all classes/members whose name contains the specified search text to be listed in the Search Results pane. Selecting an item from this list will update the two panes below it, showing the selected class, and its members. Beneath the Classes and Members panes is an untitled pane, gray in color, which displays details for the selected class/member, including hyperlinks to relevant information such as arguments, their types and allowable values. If Visual Basic Help is installed, pressing <F1> will display help on a selected class/member. (This feature can be installed from your Office install CD, if necessary.)
    NOTE: While it is possible to cut-and-paste the code examples that follow, I highly recommend that they be typed in by hand. Doing so will provide a better understanding of how the IDE's code completion behaves. Use code completion most efficiently by not using the mouse or <Enter> key when selecting from completion lists. Instead, just type enough letters to select the desired list element, then continue along as if you had typed the entire element, typing the next operator in your statement. It really is slick!
    HELLO WORLD - VBA-STYLE
    1. Open Word
    2. Launch the VBA IDE by pressing <Alt><F11>
    3. Select Module from the Insert menu.
    4. In the blank area that appears, enter the following code:
      Public Sub HelloWorld()
          Documents.Add
          Selection.TypeText ("Hello, world!")
      End Sub5. Press <F5> to run the code.
    If you switch back to Word by pressing <Alt><F11>, there should appear a newly-created document containing the text Hello, world!.
    A MORE AMBITIOUS EXAMPLE
    In this example, we will launch Word, type some text, and alter its formatting. For the purposes of this tutorial, consider it the process we wish to automate from within Forms.
    1. If Word is running, close it.
    2. Open any Office application except Word, such as Excel, Outlook or PowerPoint
    3. Launch the VBA IDE by pressing <Alt><F11>.
    4. Select References from the Tools menu -- a dialog should pop up.
    5. From within this dialog, locate and select Microsoft Word <version> Object Library, then click OK.
    6. Select Module from the Insert menu.
    7. In the blank area that appears, enter the following code:
    Public Sub LaunchWord()
        Dim app As Word.Application
        Set app = CreateObject("Word.Application")
        app.Visible = True                          '!!! IMPORTANT !!!
        app.Documents.Add
        With app.Selection
            .TypeText "This is paragraph 1."
            .TypeParagraph
            .TypeText "This is paragraph 2."
            .TypeParagraph
            .TypeText "This is paragraph 3."
        End With
        With ActiveDocument
            .Paragraphs(1).Range.Words(3).Bold = True
            .Paragraphs(2).Range.Words(3).Italic = True
            .Paragraphs(3).Range.Words(3).Underline = True
        End With
    End Sub8. Press <F5> to run the code.
    A new Word session should have been launched. Switch to it, to view the results of our handiwork!
    TAILORING VBA CODE INTENDED FOR OLE2 CONVERSION
    Now, things get a bit uglier. The code listed above gives a good idea of how concise VBA code can be, but With blocks and chained object references do not translate readily into OLE2 code. Here's the same process, rewritten in a more OLE2-friendly style. Note the numerous intermediate object references that have been declared.
    Public Sub LaunchWord()
        Dim app As Word.Application
        Dim doc As Word.Document
        Dim docs As Word.Documents
        Dim pars As Word.Paragraphs
        Dim par As Word.Paragraph
        Dim wrds As Word.Words
        Dim sel As Word.Selection
        Dim rng As Word.Range
        Set app = CreateObject("Word.Application")
        app.Visible = True                          '!!! IMPORTANT !!!
        Set doc = app.Documents.Add
        Set sel = app.Selection
        sel.TypeText "This is paragraph 1."
        sel.TypeParagraph
        sel.TypeText "This is paragraph 2."
        sel.TypeParagraph
        sel.TypeText "This is paragraph 3."
        Set pars = doc.Paragraphs
        'select third word of first paragraph and make it bold
        Set par = pars.Item(1)
        Set rng = par.Range
        Set wrds = rng.Words
        Set rng = wrds.Item(3)
        rng.Bold = True
        'select third word of second paragraph and italicize it
        Set par = pars.Item(2)
        Set rng = par.Range
        Set wrds = rng.Words
        Set rng = wrds.Item(3)
        rng.Italic = True
        'select third word of second paragraph and underline it
        Set par = pars.Item(3)
        Set rng = par.Range
        Set wrds = rng.Words
        Set rng = wrds.Item(3)
        rng.Underline = True
    End Sub
    TRANSFORMATION: CONVERTING VBA CODE INTO PL/SQL
    Here is the PL/SQL counterpart to our previous VBA routine. Compare printouts of the two and note their similarities. Notice the need for argument lists -- this causes the code to fluff up quite a bit, and really interferes with readability.
    PROCEDURE LAUNCH_WORD IS
      v_app OLE2.OBJ_TYPE;     -- Application
      v_doc OLE2.OBJ_TYPE;     -- Document
      v_docs OLE2.OBJ_TYPE;    -- Documents collection
      v_pars OLE2.OBJ_TYPE;    -- Paragraphs collection
      v_par OLE2.OBJ_TYPE;     -- Paragraph
      v_wrds OLE2.OBJ_TYPE;    -- Words collection
      v_sel OLE2.OBJ_TYPE;     -- Selection
      v_rng OLE2.OBJ_TYPE;     -- Range
      v_args OLE2.LIST_TYPE;   -- OLE2 argument list
    BEGIN
      /* launch Word and MAKE IT VISIBLE!!! */ 
        v_app := OLE2.CREATE_OBJ('Word.Application');
        OLE2.SET_PROPERTY(v_app, 'Visible', TRUE);
      /* initialize key object references */ 
        v_docs := OLE2.GET_OBJ_PROPERTY(v_app, 'Documents');
        v_doc := OLE2.INVOKE_OBJ(v_docs, 'Add');
        v_sel := OLE2.GET_OBJ_PROPERTY(v_app, 'Selection');
      /* type first paragraph */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 'This is paragraph 1.');
        OLE2.INVOKE(v_sel, 'TypeText', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        OLE2.INVOKE(v_sel, 'TypeParagraph');
      /* type second paragraph */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 'This is paragraph 2.');
        OLE2.INVOKE(v_sel, 'TypeText', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        OLE2.INVOKE(v_sel, 'TypeParagraph');
      /* type third paragraph */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 'This is paragraph 3.');
        OLE2.INVOKE(v_sel, 'TypeText', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
      /* set reference to Paragraphs collection */
        v_pars := OLE2.GET_OBJ_PROPERTY(v_doc, 'Paragraphs');
      /* select third word of first paragraph and make it bold */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 1);
        v_par := OLE2.INVOKE_OBJ(v_pars, 'Item', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        v_rng := OLE2.GET_OBJ_PROPERTY(v_par, 'Range');
        v_wrds := OLE2.GET_OBJ_PROPERTY(v_rng, 'Words');
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 3);
        v_rng := OLE2.INVOKE_OBJ(v_wrds, 'Item', v_args);
        OLE2.SET_PROPERTY(v_rng, 'Bold', TRUE);
      /* select third word of second paragraph and italicize it */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 2);
        v_par := OLE2.INVOKE_OBJ(v_pars, 'Item', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        v_rng := OLE2.GET_OBJ_PROPERTY(v_par, 'Range');
        v_wrds := OLE2.GET_OBJ_PROPERTY(v_rng, 'Words');
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 3);
        v_rng := OLE2.INVOKE_OBJ(v_wrds, 'Item', v_args);
        OLE2.SET_PROPERTY(v_rng, 'Italic', TRUE);
      /* select third word of second paragraph and underline it */
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 3);
        v_par := OLE2.INVOKE_OBJ(v_pars, 'Item', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        v_rng := OLE2.GET_OBJ_PROPERTY(v_par, 'Range');
        v_wrds := OLE2.GET_OBJ_PROPERTY(v_rng, 'Words');
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, 3);
        v_rng := OLE2.INVOKE_OBJ(v_wrds, 'Item', v_args);
        OLE2.SET_PROPERTY(v_rng, 'Underline', TRUE);
    END;
    REFACTORING FOR REUSABILITY AND READABILITY
    While the previous procedure runs without errors, it suffers from poor readability which, in turn, makes it difficult to maintain. Here, we address those issues by moving repetetive low-level operations into separate procedures.
      PROCEDURE LAUNCH_WORD IS
        v_app OLE2.OBJ_TYPE;    -- Application
        v_doc OLE2.OBJ_TYPE;    -- Document
        v_docs OLE2.OBJ_TYPE;   -- Documents collection
        v_sel OLE2.OBJ_TYPE;    -- Selection
        v_args OLE2.LIST_TYPE;  -- OLE2 argument list
      BEGIN
        /* launch Word and MAKE IT VISIBLE!!! */ 
          v_app := OLE2.CREATE_OBJ('Word.Application');
          OLE2.SET_PROPERTY(v_app, 'Visible', TRUE);
        /* create a new Word document */ 
          v_docs := OLE2.GET_OBJ_PROPERTY(v_app, 'Documents');
          v_doc := OLE2.INVOKE_OBJ(v_docs, 'Add');
          v_sel := OLE2.GET_OBJ_PROPERTY(v_app, 'Selection');
        /* add a few paragraphs */
          PRINT_PARAGRAPH(v_sel, 'This is paragraph 1.');
          PRINT_PARAGRAPH(v_sel, 'This is paragraph 2.');
          PRINT_PARAGRAPH(v_sel, 'This is paragraph 3.');
        /* apply formatting */
          APPLY_FORMATTING(v_doc, 1, 3, 'Bold', TRUE);
          APPLY_FORMATTING(v_doc, 2, 3, 'Italic', TRUE);
          APPLY_FORMATTING(v_doc, 3, 3, 'Underline', TRUE);
      END;
      PROCEDURE APPLY_FORMATTING(
        v_doc OLE2.OBJ_TYPE,
        v_paragraph_num NUMBER,
        v_word_num NUMBER,
        v_attribute VARCHAR2,
        v_value BOOLEAN) IS
        v_pars OLE2.OBJ_TYPE;   -- Paragraphs collection
        v_par OLE2.OBJ_TYPE;    -- Paragraph
        v_wrds OLE2.OBJ_TYPE;   -- Words collection
        v_rng OLE2.OBJ_TYPE;    -- Range
        v_args OLE2.LIST_TYPE;  -- OLE2 argument list
      BEGIN
        /* set reference to Paragraphs collection */
          v_pars := OLE2.GET_OBJ_PROPERTY(v_doc, 'Paragraphs');
        /* get specified paragraph */   
          v_args := OLE2.CREATE_ARGLIST;
          OLE2.ADD_ARG(v_args, v_paragraph_num);
          v_par := OLE2.INVOKE_OBJ(v_pars, 'Item', v_args);
          OLE2.DESTROY_ARGLIST(v_args);
        /* get words for specified paragraph */
          v_rng := OLE2.GET_OBJ_PROPERTY(v_par, 'Range');
          v_wrds := OLE2.GET_OBJ_PROPERTY(v_rng, 'Words');
        /* apply formatting to word found at specified index */
          v_args := OLE2.CREATE_ARGLIST;
          OLE2.ADD_ARG(v_args, v_word_num);
          v_rng := OLE2.INVOKE_OBJ(v_wrds, 'Item', v_args);
          OLE2.SET_PROPERTY(v_rng, v_attribute, v_value);
      END;
      PROCEDURE PRINT_PARAGRAPH(v_sel OLE2.OBJ_TYPE, v_text VARCHAR2) IS
        v_args OLE2.LIST_TYPE;
      BEGIN
        v_args := OLE2.CREATE_ARGLIST;
        OLE2.ADD_ARG(v_args, v_text);
        OLE2.INVOKE(v_sel, 'TypeText', v_args);
        OLE2.DESTROY_ARGLIST(v_args);
        OLE2.INVOKE(v_sel, 'TypeParagraph');
      END;
    CONCLUSION
    It is my hope that this tutorial, despite it's introductory nature, has demonstrated the value of the VBA IDE, the ease with which automation processes can be prototyped using VBA, the noticeable similarity between VBA automation routines and their Forms PL/SQL counterparts, and the advantages of testing automation processes within the VBA IDE. Please feel free to follow up with any specific questions or concerns you may have.
    Thanks,
    Eric Adamson
    Lansing, Michigan
    FINAL NOTE: These examples use the OLE2 built-in, and will operate correctly when called from forms running in the Form Builder OC4J. Deploying them to an Oracle Application Server will launch Word on the server itself (if available), which is usually not the developer's intent! Automating Word client-side via web forms requires adding WebUtil support. Adapting the code for WebUtil is trivial -- just replace all instances of OLE2 with CLIENT_OLE2. Adapting forms for WebUtil and configuring OLE support into your Oracle Application Server, however, are beyond the scope of this tutorial.
    REVISION HISTORY
    This promises to be something of a 'living document'. I've snuck changes through without comment in the past, but in the future, I'll try to document significant changes here.
    2006-08-21
      * Prefaced boring subject line with text: 'Tutorial:' to clarify purpose
      * Added emphasis on value of Object Browser as a reference

    Thanks James, for your kind words. I do hope this information will help folks out. I honestly believe that tinkering around in the VBA IDE will prove highly gratifying for automation developers. It can be assured that learning to make Word jump through hoops is much more straight-forward in this environment. I'm not one for mottos, but if I were pressed for a cheesy motto, I would say: First, make it work. Then, make it work in Oracle!
    Once the idea has sunk in, that Visual Basic routines for automating Word are exact analogs to their OLE2 counterparts, we can remove keywords like Oracle and PL/SQL from our Google searches on Word automation which, at least in this context, are the proverbial kiss of death. Suddenly we find ourselves liberated by the possibility of steal-, ahem... borrowing ideas from the Visual Basic* community!
    As for links, my link of choice is invariably http://groups.google.com -- if you don't already use it at least ten times a day, you must try it. This is the venerable USENET archive, including the holdings of now-extinct DejaNews. Another possible site of interest is http://word.mvps.org/FAQs/MacrosVBA, which may serve as a good starting point for those who wish to learn how to do fancy tricks with Word using VBA.
    If these links don't prove immediately helpful, please feel free to give specifics on the sort of operations you are interested in automating, and I'll see if I can post an example that addresses it.
    Regards,
    Eric Adamson
    Lansing, Michigan
    PS: I do hope, as people read my posts, with every other acronym being VBA, that they are not mistakenly hearing a call to learn Visual Basic. I say this, not because I believe learning VB would be a Bad Thing, but because I assume that few of us feel we have the time to learn a new programming language. Despite having come to the Oracle camp already knowing VB/VBA, and having acquired a fair bit of experience with automating Office applications as an Access developer, I remain confident that what I am suggesting people attempt does not rise to the level of learning a language. What I am suggesting is that they learn enough of the language to get by.
    *VB vs. VBA
    Just a quick word on this, as readers may wonder why I seem to use these terms interchangeably. Visual Basic (VB) can refer to either a development platform or a programming language. Visual Basic for Applications (VBA) is a language -- more precisely, it is a subset of the Visual Basic language. One purchases VB, usually quite intentionally. VBA is included with Microsoft Office, as is VBA's development environment, the VBA IDE. The key distinction between VB and VBA is that VBA cannot be used to create self-contained executables. Rather, VBA relies on VBA-enabled applications, such as Microsoft Office applications, to serve as a container for VBA code, and to provide a runtime environment for that code. For the purposes of discussing OLE Automation, VB and VBA are quite interchangeable.

Maybe you are looking for