Kevin Lynch

I saw this interview with Kevin Lynch on http://www.macrumors.com/2010/02/17/adobe-executive-kevin-lynch-discusses-flash-on-mac-iph one-and-ipad/
He actually says that Adobe listens to end-users! He really wonders why Steve Jobs does not want this junk on a Mac.
Adobe is well aware of all the bugs in Flash, the Flash player, Fireworks and Dreamweaver. They simply pretend there is no problem and are suprised that webdesigners try to move away from Flash as much as possible. And Kevin, in case you have never used Flash on a Mac, it really does crash a lot!
To me it is simple. If the bugs in CS4 are not fixed then I consider CS5 a free update.
Microsoft needed a few years to wake up (they seem to slowly get their act together with Win7 and Win7 mobile), but Adobe is the new Microsoft. I wonder how much market share they need to lose before they change their attitude.

Your take is interesting, and also extremist.
Lets try using some logic and reason for a minute here...
85% of the top websites on the internet have Flash content on them.
The Flash Platform is only growing in popularity, not losing market share in the slightest.  The Flash IDE may be losing market share, but it is not the only tool out there to develop Flash content on.  The Flash Player is still going very strong, and growing.
With the imminent release of player 10.1 and AIR 2.0, Adobe will officially be on smart phones. The player will be on pretty much every smart phone EXCEPT the iPhone, (or be able to be anyways). The Google phone is selling at an alarming and increasing rate (as of the end of Google's past quarter it was selling 60,000 phones a day, and that number more than doubled over the quarter), which places it in direct competition with the iPhone.  Apple should find themselves losing market share soon enough, especially when people start realizing that they can browse the REAL internet if they hop over to a different vendor.
To say that Adobe is the new Microsoft is very narrow.  You look at the Creative Suite.... a place that Adobe has fallen short lately, and you could take that viewpoint, certainly.  But if you look at Adobe as a whole, they are pushing the internet, mobile and not, forward with every step.  They started the Open Screen Project, and are constantly teaming up with as many large manufacturers of hardware and software to push that initiative forward.  This is something Microsoft never cared about, and seemingly still doesn't.  Adobe wants the end users experience to be the same regardless of their OS or device, and they are constantly working to make it so.  They have a long way to go, admittedly, but they are on the right path, and, as I see it, are further along than most.
As I see it, Apple is the new Microsoft.  I am literally waiting for Apple to get hit with antitrust lawsuits.  They constantly break patents, infringe copyrights, and use their muscle as a large corporation to smooth it out.  No-one is better at this than Apple.  You realize they were recently hit with an ironclad patent infringement lawsuit from Kodak?  Also, they have had to backstep on both the iPhone and the iPad launches (legally enforced in the UK, btw) because of false advertisement in their claims. Apple is trying to control every point of their devices, and claiming that its a better experience.
And, as for the flashPlayer on the Mac......  this has been bruited about for years.  I, myself, have frequently used Apple computers, and have NEVER had a problem.  I know others that have had the exact opposite experience, but also that have had the same experience as me.  Obviously there is a problem, but it doesn't affect everyone, and Adobe has stated REPEATEDLY that they are working on fixing it.  Indeed, with player 10.1, the testing so far has shown that it is dramatically reduced, if not eliminated.
If you are going to argue a case, do it with facts, not extremist statements that have no backing.  All of the information (except that which is obviously my opinion) in this post has come from blog posts, and has been corroborated by multiple sources. Please show me a study that shows that the flashPlayer has lost ANY market share, let alone something significant.  (Remember that many companies jumped to silverlight early, and then jumped right back because silverlight wasn't up to the challenge. Also remember that over 90% of the video on the internet is still served up via the flashPlayer, because it is, arguably, the best way to serve video online)

Similar Messages

  • EasySign: Can I or can't I modify filled fields?!

    Is it just me, or is Acrobat EchoSign a user-hostile piece of garbage? I am using Reader 10.1.3. Below is a form I'd love to fill out and perhaps "sign" with a TIFF of my signature, but first I have to type in some fields. Getting to this point took me 20 minutes this morning:
    (Sorry about the furry JPEG; Adobe Forums only passively informed me after I tried saving to three non-antialiasing "content types" that it would only accept the JPEG.)
    If you will look at the name field under the "YOUR INFORMATION" section, you'll see three blue blotches reflecting three multiple-selections of zero-length text area boxes from the list at the right. Those objects are the result of my patiently left-clicking the I-beam over my name in an effort to modify the text I've entered in each field. Each time I did so, I would briefly see a blip appear under the I-beam, but it would not allow me to edit my text. The blip, of course, was a zero-length text area box being created. I persisted because at one moment I swear I did see an arrow icon and it let me make a blue selection over one patch of my text, but then for some reason when I typed nothing happened, and then the apparition vanished and I could not repeat it. And it was only after a few minutes, when in frustration I started playing with right-clicking over a text field, that I discovered the "Comments List" so useless to me.
    There are now dozens of these mini-boxes all over the sheet (just look at how the "Comments List" has 86 entries instead of the 12 that actually contain text). But this means I can't edit something once I've finished a text, doesn't it? If so, why not? Why is it not clear to me, a sophisticated user? Why the bizarre and unpredictable behavior? Or am I some kind of idiot, not having found the correct incantation? Perhaps one of Adobe's priestly programmers or myriad sycophants will now enlighten us all, tacitly suggesting that it's merely my stupidity, for They Knew the Blessed Secret Their First Time.
    I've searched pretty exhaustively for a solution to this and so far have found nothing, but perhaps that's because I've only budgeted 45 minutes for this would-be simple task. Am I going to have to pull this file into Illustrator, or print it out and mail it?
    Twenty or so years ago, I was probably the first or second person outside of Mountain View to be shown the alpha of Carousel. Since that moment -- and despite having held out hope numerous times -- I still can't easily fill out a document online without heartache. Why can't I edit a field? What am I going to have to do when I want to modify a multi-line field? My workarounds over the years have run the gamut of every possible thing you can imagine, from scanning into Photoshop or Illustrator or Quark or InDesign; to blind fields and double-exposures on a laser printer; to glue; even to hacking the fields into the PostScript with setfonts and movetos and shows.
    I've spent 40 years in the graphic arts; half of them I've wrestled with Acrobat, on some pretty complex work products having features of debatable benefit when shoehorned into PDF format. When it comes to the simple single-page monochrome Letter/A4 form -- the most abundant portable document on Earth -- we are now in Acrobat v10 and all I want to do is easily fill out a form and sign it and e-mail it back and I still can't.
    Why is life so much harder now than when I could run this through a typewriter, Adobe? What are you really doing about it for the billions? How much more of our lives' valuable moments are you going to squander?
    (P.S. What a difference almost a day makes: Hours after beginning this -- and just before submitting this article -- I myself have discovered the incantation with a few minutes' further experimentation over the many already expended. I can now recreate the arrow and edit the field. It is actually not difficult, but it is far from obvious and it is the furthest thing from good UI technique. Nevertheless, I now Know The Blessed Secret, or at least one part of it. But it does not change my position above. Can you surmise why, O Adobe Priesthood of Insufferable Sanctimony? If it takes a seasoned programmer hours to learn out the combination, what makes you think Grandma and Grandpa are ever going to figure it out?)

    You do it unconsciously; we are all forced into these mentalities by our circumstances. But all three of you experts were wrong about who listens, at least when you pray as loudly as I do:
    On Sat, Sep 1, 2012 at 2:18 PM, Kevin M Lynch <[email protected]> wrote:
    Hi Peter,
    This is Kevin M. Lynch and I run the Acrobat & Document Services business at Adobe (coincidentally our CTO is also named Kevin Lynch, but I’m not him - I run the document business). 
    I saw your forum post (http://forums.adobe.com/thread/1058887) and want to apologize for the difficulties you’re having filling out and signing a form.
    It’s certainly our intention to make this a very easy process so I’m glad you went to the trouble to let us know that it was a frustrating experience for you.
    Frustrating to me, but mainly because it is no doubt frustrating for (literally) billions of others less sophisticated than me. That is my main concern, and the ball I keep my eyes on. I feel terribly sorry for them.From what I can gather, you had no problem knowing where to go and click the “Sign” panel on the right and then clicking the add text button (and let me know if otherwise).
    Well, that's a separate issue. I intuited that it was what I might need to fill out a basic form. But most people won't get even that.
    But then there were two issues that prevented filling out and signing the form from being drop-dead easy:
    1)      After adding text the first time (which was hopefully easy – let me know if not), you couldn’t go back and correct it.  Every time you tried, you ended up inserting a new blank text block.  It would have been much nicer if we had a wider selection range so that if you clicked anywhere near a field that was already added we just selected it and allowed you to edit it.
    I don't know about the width of the selection range; it seemed to me that there was *no* selection tolerance. I was rolling all over the text looking for it to catch and it wouldn't, hence 75 null textareas. (Possibly the cursor just was refusing to change from I-beam to arrow, I reasoned, and clicked, but did not get into an edit mode.) My sense is that it was not going to give me an arrow no matter where I went. My workaround (which few of your millions will be patient enough to discover) was forcibly exit the I-beam mode by going to the "Place Signature" mode and then re-enter the "Add Text" mode, which then readily showed me an arrow whenever I rolled near/over a textarea, and then let me click into the textarea and modify it.
    I'm not on the subject machine. I'm on a brand-new laptop now and just upgraded its Reader from the factory 10.0.0 to 10.1.4 to get EchoSign and see if I can reproduce it here. On the same document, I appear now to be able to roll over created textareas and click the I-beam over them and get in. So it's not a global issue. The exhibiting machine is, I think, a Lenovo with Windows XP, but I will have to check this. If you need specific installation information to help isolate, please tell me what you need.
    But I'm seeing some wrong behaviors even now:
    While in "Add Text" mode (even when appearing to function properly, as on this installation), the elongated I-beam cursor does not morph to anything else as I roll over, so there is insufficient feedback prompting me to know I can modify the field.
    This is inconsistent with what I experience when I escape "Add Text" mode. (I find I can escape "Add Text" either by entering "Insert Signature," as I note above, or in another way, by manually closing the editing palette by clicking its close box.) When I move out, I appear to be in a free-cursor mode; it now prompts me with a change to an arrowhead cursor whenever I roll over a textarea, and then it puts me into something unexpected called "Typewriter" mode (the only surface indication of the difference is that a lozenge in the editing palette now says "Typewriter" instead of "Add Text".
    It is altogether unclear the functional difference between "Typewriter" mode and "Add Text" mode, or the purpose of having two different identities for two modes that seem to share some functions. Their behavior, however, is different enough to cause confusion. This could be streamlined quite a bit.
    Editing text (new or modifying) in either of these two text modes appears to be operating one pixel below the finished text after repainting.
    2)      You couldn’t add a TIFF image as signature.   I’ll have to have my team look into this as I can add one without any problems on my system.  However, like you, I don’t understand why we don’t have both TIF & TIFF in the filter so I’ll have to follow up with my team to see if there is any reason for that.
    This may also be local to that machine I was on Friday. When I return to Chicago I can check this, if it's important to you and if you are confident that doing so will bear fruit.
    Am I correct in that those were the two issues or were there others?  Once you went off the beaten path into comments you could see that we use the commenting capability, but our intent is to have it easy enough that you would never go there.  If it helps to clean up your document, you can select each blank comment  in the right side panel and hit the delete key to get rid of them.
    See above, which gives you some more information. As you can glean from between all of my acerbic comments, I felt that the user experience was in many places carelessly thought through. You provide another case in point above, speaking of "Comments" mode. The three modes -- "Add Text," "Typewriter," and "Comments" -- obviously are genetically related. Their respective purposes become indistinct and confusing to the casual user. The basic shift from mode to mode is confusing; tool depth level and state are uncertain; use metaphor for each tool is nonstandard, inconsistent, and counterintuitive; visual feedback is lacking or inconsistent; and I think in some generals and some specifics each tool's entry point and interface needs to be reworked. I realize that you're constrained by the Reader API UI, so you don't have infinite flexibility, but there are still some basic things you can do.
    Even with a working installation as I have here, it is confusing. On my View menu, I have two "Sign" and two "Tools" items. Why? I can't seem to find how to get back into "Typewriter" mode. What is it? Where is its entry point? Is it part of Sign or is it part of something else?
    Form filling could use some user workshopping to figure out how to make it intuitive. Starting from the top, ideally, Acrobat Forms, if implemented in a document, should be user-seamless with EchoSign. Whether a document is forms-enabled or not, ideally the tools should have the same look and feel. I am skeptical about that being easy. But George Johnson raised the point that you now have two distinct products serving (from the user's perspective) identical purposes. If Reader is going to be user-centric, that proposition needs to be taken into account right away. Starting with that, a universal text editing palette for both Forms and EchoSign (whatever the underlying difference) might be in order. Distinguishing among text "in stone" (the immutable background PDF); malleable superimposed text fields and images (e.g., signature); and comments needs to be treated.
    If I were god, just off the top of my head, tomorrow I would open all Acrobat documents by default in a basic "Add Text [e.g., fields and comments] or Image [e.g.,signature]" mode with a universal text-cum-graphics palette, similar to what you have but switchable within between text and image (consider PageMaker's old universal palette, dumbed down). If forms-enabled, the text palette would be activated and the cursor inside Field 1 ready to type. If not, you have an I-beam as the default. You could switch to Image mode within the palette and the palette would provide a signature subfunctionality (including EchoSign's capability of retaining as default signatureStamp), or other image type. Maybe outside that mode is panning and zooming, maybe panning and zooming are hierarchically equal to those two modes. I at least believe that the key to this is that text / comments // signatureStamp / images should now be as basic to Reader as pan/zoom. How to make those two modes intuitively switchable by the grandparents is probably not so tricky, but I would have to think about that a bit more.
    I appreciate the time you’ve already taken to struggle through this and provide feedback.  I personally want to eliminate the need to print out, sign, and fax back these stupid forms!
    You and a few billion others. Thanks for the prompt response.
    Regards,
    Kevin

  • ANN: Eric Meyer CSS extenstion for DW available

    This is a multi-part message in MIME format.
    ------=_NextPart_000_0096_01C7E564.0D039F60
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    We're extremely proud to announce the release of our latest
    extension to =
    Dreamweaver, Eric Meyer's CSS Sculptor. CSS Sculptor creates
    totally =
    customizable, Web standards compliant, CSS based layouts. CSS
    Sculptor =
    was developed in collaboration with Eric Meyer, the
    internationally =
    recognized HTML, CSS, and Web standards expert.
    =20
    To learn more: www.webassist.com/go/css/=20
    --=20
    Best - Joe
    Joseph Lowery
    Vice President of Marketing, WebAssist
    Author of Dreamweaver CS3 Bible
    ------=_NextPart_000_0096_01C7E564.0D039F60
    Content-Type: text/html;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
    Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; =
    charset=3Diso-8859-1">
    <META content=3D"MSHTML 6.00.6000.16481"
    name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=3D#ffffff>
    <DIV>
    <P class=3DMsoNormal style=3D"MARGIN: 0in 0in
    0pt"><FONT face=3DArial =
    size=3D2>We=92re=20
    extremely proud to announce the release of our latest
    extension to =
    Dreamweaver,=20
    <?xml:namespace prefix =3D st1 ns =3D =
    "urn:schemas-microsoft-com:office:smarttags"=20
    /><st1:PersonName w:st=3D"on">Eric
    Meyer</st1:PersonName>=92s CSS =
    Sculptor. CSS=20
    Sculptor creates totally customizable, Web standards
    compliant, CSS =
    based=20
    layouts. CSS Sculptor was developed in collaboration with =
    <st1:PersonName=20
    w:st=3D"on">Eric Meyer</st1:PersonName>, the
    internationally recognized =
    HTML, CSS,=20
    and Web standards expert.</FONT></P>
    <P class=3DMsoNormal style=3D"MARGIN: 0in 0in
    0pt"><?xml:namespace =
    prefix =3D o ns =3D=20
    "urn:schemas-microsoft-com:office:office"
    /><o:p><FONT face=3DArial=20
    size=3D2> </FONT></o:p></P>
    <P class=3DMsoNormal style=3D"MARGIN: 0in 0in
    0pt"><FONT face=3DArial =
    size=3D2>To learn=20
    more: </FONT><A href=3D""><FONT face=3DArial
    color=3D#0000ff=20
    size=3D2>www.webassist.com/go/css/</FONT></A><FONT
    face=3DArial =
    size=3D2>=20
    </FONT></P></DIV><FONT face=3DArial
    size=3D2>
    <DIV><BR>-- <BR>Best - Joe</DIV>
    <DIV> </DIV>
    <DIV>Joseph Lowery<BR>Vice President of
    Marketing, WebAssist<BR>Author =
    of=20
    Dreamweaver CS3
    Bible</FONT></DIV></BODY></HTML>
    ------=_NextPart_000_0096_01C7E564.0D039F60--

    lol .. of course. Kevin Lynch is another of those people who
    looks like he
    could be somewhere between 17 and 35 ... but closer to 17. :)
    Nancy
    "Murray *ACE*" <[email protected]> wrote
    in message
    news:fal01m$6is$[email protected]..
    > You mean *NOW*. And you're right. 8)
    >
    > --
    > Murray --- ICQ 71997575
    > Adobe Community Expert
    > (If you *MUST* email me, don't LAUGH when you do so!)
    > ==================
    >
    http://www.dreamweavermx-templates.com
    - Template Triage!
    >
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    >
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    >
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    > ==================
    >
    >
    > "Nancy - Adobe Comm. Expert" <[email protected]>
    wrote in message
    > news:fakt0c$39k$[email protected]..
    >>I got an email about this last night and had a look
    at the page. He looks
    >>like a guy who was in my 8th grade class .... ;)
    >>
    >> Nancy
    >>
    >> "Kim" <[email protected]> wrote
    in message
    >> news:faksi5$2q3$[email protected]..
    >>> You ever read a book and then watched the movie
    and the hero doesn't
    >>> look like he/she did in your head. That's how I
    feel when I see EM doing
    >>> the devil thingy with his fingers while
    looking... I'll keep that to
    >>> myself. Priceless :)
    >>>
    >>> Joseph Lowery skrev:
    >>>> We’re extremely proud to announce the
    release of our latest extension
    >>>> to Dreamweaver, Eric Meyer’s CSS
    Sculptor. CSS Sculptor creates totally
    >>>> customizable, Web standards compliant, CSS
    based layouts. CSS Sculptor
    >>>> was developed in collaboration with Eric
    Meyer, the internationally
    >>>> recognized HTML, CSS, and Web standards
    expert.
    >>>>
    >>>> To learn more: www.webassist.com/go/css/
    >>>>
    >>>>
    >>>> --
    >>>> Best - Joe
    >>>> Joseph Lowery
    >>>> Vice President of Marketing, WebAssist
    >>>> Author of Dreamweaver CS3 Bible
    >>>
    >>> --
    >>> Kim
    >>> ---------------------------
    >>>
    http://www.geekministry.com
    >>
    >>
    >
    >

  • Behaviors are outdated. Fix them

    Open up a new HTML strict document.
    Try attaching a behavior on body tag
    Dreamweaver will write out code like so
    <body onLoad="MM_StupidBehavior();">
    Hello! Isn't the doctype strict? Whats onLoad doing there?
    Now validate this flawed implementation inside Dreamweaver.
    It
    validates!! ignores its own error!!!
    Behaviors have been given the cold shoulder for the last 2
    releases of
    Dreamweaver. Most behaviors are outdated scripts that try and
    satisfy
    Netscape 4! and may not work in modern browsers!!
    The implementation of behaviors should now move on to
    unobtrusive style,
    Its time!!
    More than 3 years after Kevin Lynch noticed this flaw
    http://www.klynch.com/archives/000031.html
    nothing has been done
    Its time
    Ranjan
    www.dreamlettes.net - yeah , its been down, i know

    This page validates, ranjan -
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1">
    <title>Untitled Document</title>
    <meta http-equiv="imagetoolbar" content="no">
    <meta name="MSSmartTagsPreventParsing" content="TRUE">
    <meta name="robots" content="index,follow">
    <script type="text/JavaScript">
    <!--
    function MM_popupMsg(msg) { //v1.0
    alert(msg);
    //-->
    </script>
    </head>
    <body onLoad="MM_popupMsg('test')">
    <p>test</p>
    <p> </p>
    </body>
    </html>
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.dreamweavermx-templates.com
    - Template Triage!
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    ==================
    "ranjan" <[email protected]> wrote in
    message
    news:eb63hq$457$[email protected]..
    > Open up a new HTML strict document.
    >
    > Try attaching a behavior on body tag
    >
    > Dreamweaver will write out code like so
    >
    > <body onLoad="MM_StupidBehavior();">
    >
    > Hello! Isn't the doctype strict? Whats onLoad doing
    there?
    >
    > Now validate this flawed implementation inside
    Dreamweaver. It
    > validates!! ignores its own error!!!
    >
    > Behaviors have been given the cold shoulder for the last
    2 releases of
    > Dreamweaver. Most behaviors are outdated scripts that
    try and satisfy
    > Netscape 4! and may not work in modern browsers!!
    >
    > The implementation of behaviors should now move on to
    unobtrusive style,
    > Its time!!
    >
    > More than 3 years after Kevin Lynch noticed this flaw
    >
    >
    http://www.klynch.com/archives/000031.html
    >
    > nothing has been done
    >
    > Its time
    >
    > Ranjan
    > www.dreamlettes.net - yeah , its been down, i know

  • The Future of AIR for Mobile.... ? Uncertain?

    Just wondering what everyone elses thoughts are on this. There's a lot of chatter going on about this.
    Looking at Adobe's roadmap for Flash ( http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html )
    ActionScript "Next" development has been cancelled
    Flash Player "Next" development has been cancelled
    AIR for Windows 8 "Modern UI" has been cancelled
    Kevin Lynch (Adobe CTO) has left Adobe to go to Apple ( didnt see that one coming )
    The thing I don't get about Adobe is how they are pimping out that AIR be used only for gaming. You don't ever hear them say that AIR is a great platform for developing Multiplatform Mobile Apps.... which it is!  I would argue its the best simply because of how easy it is to develop multi-platform apps with ease.
    I work in corporate marketing in a billion dollar+ company and I'm using AIR for mobile apps and it's awesome! 
    Now looking at my own personal roadmap moving forward...  do I want to keep AIR on the radar ?
    I've also built apps using PhoneGap, etc..  and its a nightmare. It's tedius, performance is mediocre.  I really felt that AIR was moving in the right direction.
    I'm going to Adobe MAX in May.. I'm hoping that they announce something enlightening.
    What are your thoughts ?

    I think opposite. I think Adobe is failing to see what a potential it is. I agree with all of your points about how great Flash Pro is to work in. I just created a game for an arcade cabinet, iPhone, iPad, Android & BB10 all in a single build. That's pretty amazing.
    However I think the writing is on the wall at this point.
    ActionScript4 "Next" development has been cancelled
    Flash Player "Next" development has been cancelled
    AIR for Windows 8 "Modern UI" has been cancelled
    These 3 are huge.
    Also Adobe's CTO and biggest advocate for Flash leaves Adobe to go to Apple.
    Adobe is betting on HTML5. I hope that in the future Adobe releases a tool like Flash Pro that does everything the same except uses JavaScript. This would be nice.
    It's really confusing to me though ..  Adobe says "To build mobile apps use PhoneGap"  ..  but to build mobile games use AIR. 
    Why not promote how powerful AIR is at building Mobile Apps?
    Adobe MAX this year is going to be very interesting that's for sure.

  • Definitely responsive features like Reflow and Edge

    would make  Muse the ultimate program for website design

    I honestly don't understand how these guys ( http://macaw.co ) can beat Adobe at this game... I want to continue to love Reflow, it is obvious folks want the tool ( Reflow ) to do more than just prototyping RWD, don't tell me the clever engineers at Adobe can't do far more than what 2 guys at Macaw are doing. Its shameful! We need Reflow to do what Macaw does and more... Please Reflow Team! Snap out of this elementary comments about Reflow is for prototyping only without being able to use hours of work for much of anything, you guys can make Reflow do everything folks on this forum are expecting. Publish the code as production code into any editor, Dreamweaver integration for starters. Add interactivity for crying out loud right within the tool, navigation and what have you, Integration with Edge Animate and third party frameworks... I am confused why these are not being implemented, I mean you guys are gurus at doing these kinds of stuff, what gives eh?
    Maybe you guys should go back and look at Flash Catalyst, that could very be the blue print for Reflow, please!
    I have used Adobe tools for donkey years going back and beyond the days of Macromedia, ( Where is Kevin Lynch? ) today I feel like there's no clear direction as to what many of the apps CC are supposed to do and do well. Seems like most of them just lost their mojo... Half glass empty apps, can't do this here, can't do this there... Please! Rather than having all these pieces of apps, why not take them and make something awesome in one package? For example Muse, Dreamweaver and Reflow could be one app for everyone designers and coders... Man!

  • ColdFusion Builder lacking bug fix updates

    I have to say that since the product was officially launced, we had one small update that provided a few fixes.
    The question I need to ask is what about these more serious bugs that are stopping this product from being great?
    There are about 30+ bugs listed on the bug tracker that have been there for over 18 months that are still major problems today, some of these I consider major and should be pushed to getting fixed as quickly as possible.
    The number one pet hate of mine is wasting time with an Application that doesn't work correctly, so how does this affect ColdFusion Builder?
    Lets look at setting up of servers on ColdFusion Builder, this has got to be the number one most used and needed feature of this product and yet it doesn't work and has so many reported bugs that I would have thought that these would be fixed by now.
    If one is lucky, you can setup a server and start and stop this from within Builder. However I can tell you that even when you have it setup, it will stop working as well.
    Lets look at what I have setup at the moment.
    I have had ColdFusion 9 and 9.01 installed and still donot mange to be able to start and stop the server.
    I now have a mutli server version of ColdFusion 9.01 locally, and was able to get this to work briefly. And now it no longer works, with no changes to any of the settings. Don't get me started on remote servers, these are even worser trying to get working.
    And even if you do make changes to the server setup in builder, you have to close and restart the Application. This is not acceptable to me either.
    I could go on about how much of a hit and miss this feature actually is.
    So the question is if this a feature that people would want to buy this product, why is there no fixes for the problems that are still there after 18 months?

    Yes they where, they were reported in ColdFusion 7 beta program, ColdFusion beta program and ColdFusion 9 beta program.
    When it is reported that many times, and nothing is done what sort of confidence do you think this gives us users of the product?
    During the ColdFusion 9 beta program, the cfgrid had many problems that had been reported in CF8 beta program and was again reported and we had been told it was fixed. Did it get released with the initial 9.0 version? No it didn't, did it get released with the 9.01 beta program? No it didn't.
    Again what sort of confidence does this give people in this product?
    I even fought hi and low with Adobe to get these grid problems fixed, not only did they break more things but it was not even backward compatible. Evey person I spoke to refused to fix it, becuase I did not have paid support. This even went as far as Adam, and Kevin Lynch because I got feed up with the fact that 9.0 got released and it broke our application to the point when we fixed one thing it broke another, to the point that we could not get at the source of ColdFusion to fix the problem.
    Each and every time we were told there was a work around, and no work around was ever produced.
    When 9.01 was released was it fixed? No it wasn't, in fact it was even worse. And the answer again from Adobe was that unless we have paid support it will not get fixed.
    So Ray the answer is very simple, Adobe is not interested in providing more patches / hot fixes past the intial ones they have always released. Even it it effects people from moving upto the latest version...
    I can provide many examples of emails from employees of Adobe, that say the same thing no paid support no fix. Now we have to wait another 2 years and wait to see if these problems get fixed, and to me I am sorry that is not an issue that one should have to endure. When talking to people about ColdFusion the same problems exist each and every time, the lack of support and problems that never get fixed puts people off from keeping on buying the product and they end up moving on.
    I have been in two companies that began their days as ColdFusion developers, and both companies ended up moving on because of these problems I have outlined. I can understand a company like Adobe needing to make money, but at the end of the day they will continue to loose money because people will look at other options that are better supported, have more outfixes and updates.
    The amount of updates that Microsoft release in 1 year is maybe like the same amount Adobe/Macromedia/Allaire have released in 15 years.
    Do't take this the wrong way, but the debugger is buggy as hell. It works when it wants to and even to the point when you do get it working it actually gets slower and slower each time you run it. This has been a problem for now 6 years in this product and it has never gotten any attention, now that CF builder utilises this feature, I would have hoped that these bugs and problems got fixed. But they never did.
    Every major release is about throwing new features into the product, but when it comes to issues like this do any of the previous versions that have these problems get fixed? No they don't, and even the current major release is not fixing any of these previous issues either.
    The problem is one needs to draw the line, and stop putting features into a product that Adobe can't continue to support.
    And till that changes people are going to continue to get rather annoyed with Adobe, and the more they get annoyed the more customers Adobe end up loosing. I don;t make my comments very lightly when I do make them, and after 15 years I have seen it all with ColdFusion and the one thing that never changes is the lack of bugs in older features that ever get fixed.
    Sorry for the rant, but this is something that Adobe HAVE to address and address sooner than later. I know of 3 more companies that are moving away from ColdFusion, for more reasons than what I have outlined here.

  • Help with Kevin Bacon game

    I would really appreciate some help. Yes this is an assignment who in his crazy mind would try to do this just to learn or practice their java. I have some code already done but I ran out of memory. The other thing my code works like the one at Virginia University. I'm awarding 10 dukes I can award another 10 dukes. I'll let you know later, thanks in advance.
    This is the code I have:
    import java.io.*;
    import java.util.zip.*;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Set;
    import java.util.Iterator;
    * A class that download files , create Maps and search for information with
    * in the maps, giving an output of the actor that share more movies with the
    * input actor that the user gives
    public class DataBase
      private Map map1 = new HashMap( );  // actor
      private Map map2= new HashMap( );   //movies
      private int okactor = 0;
    // Main Method
      public static void main (String args [])throws IOException
        DataBase testing = new DataBase();
        System.out.println("Program was run in Pentium 4 in AUL");
        System.out.println("Starting Time : " + System.currentTimeMillis());
        testing.loadFile("C:\\My Documents\\FIU\\COP3530_Data_Strutures\\program5\\actresses.list.gz");   
        testing.loadFile("C:\\My Documents\\FIU\\COP3530_Data_Strutures\\program5\\actors.list.gz");
        //testing.loadFile("\\\\Cougar\\cop3530\\actresses.list.gz");   
        //testing.loadFile("\\\\Cougar\\cop3530\\actors.list.gz");
        System.out.println(" Ending Time of Downloading:  " + System.currentTimeMillis());
        int infiniteloop = 0 ;
           while (infiniteloop == 0)
                     System.out.println("Number of Actors and Actresses : " + testing.getActorCount());
                  System.out.println("Number of Movies: " + testing.getMovieCount());  
                      System.out.println("");
                      System.out.println("Enter a name please");
                      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                      String name = in.readLine(); 
                      testing.computeSharedMovies(name);
                  List listofnames = new ArrayList();
                  listofnames =  testing.mostSharedMovies();  
                  testing.print(name, listofnames);
    //static class actor 
      private static final class Actor
         String name;
         int    data;  // number of shared movies,
                       // determined by computeSharedMovies
         public String toString( )
           { return name; }
         public int hashCode( )
           { return name.hashCode( ); }
         public boolean equals( Object other )
           { return (other instanceof Actor) &&
                    ( (Actor) other ).name.equals( name );
    *Loads the two files files
    *@param String is the fileName to be download
      public void loadFile( String fileName ) throws IOException
           BufferedReader x = new BufferedReader ( new InputStreamReader(new GZIPInputStream (new BufferedInputStream( new FileInputStream(fileName)))));
                String line;
          int start = 0 ;
          ArrayList actorList = new ArrayList();
          ArrayList movies = new ArrayList();
          Actor key = new Actor();
          int p = 0;    //parameters
          int p2 =0 ;
          String you = null ;
          String year = null;
          String trimMovie = null;
          int par1 = 0;    //parameter
          int par2 =0;
          String addingmovie = null;
            while((line = x.readLine()) != null)
                if(line.indexOf("Name") == 0 )
                      start++;
                if(start == 0)
                continue;
                  if( start >= 1)
                                  if(line.indexOf("-----------------------") == 0)
                                          break;
                                  if(((line.trim()).length()) == 0)
                                         continue;
                                  else if(line.indexOf("----") == 0)
                                          continue;
                                     else if (line.indexOf("Name") == 0)
                                             continue;
                                  else if(line.indexOf("\t") != 0)
                                     p  = line.indexOf("\t");
                                     p2 = line.lastIndexOf(")");
                                     String actor = (line.substring(0,p));
                                       key = new Actor();
                                       key.name = actor;                              
                                        you = (line.substring(p, (p2 + 1)));
                                          if (you.indexOf("(TV)") > 0)
                                                         continue;                                                                                                
                                       p = you.indexOf("\t");
                                       p2 = you.indexOf(")");
                                      you = (you.substring(p, p2 +1)).trim();                                 
                                            if(you.indexOf("\"") == 0)
                                                    continue;                                                                                        
                                            year = you ;
                                       p = year.indexOf("(");
                                       p2 = year.indexOf(")");
                                       year = year.substring(p + 1 , p2);                                 
                                            if ( ( ((Comparable)year).compareTo("2002") ) >= 0)
                                                    continue;                                                                                         
                                     you = you.intern();                                                                  
                                     movies = new ArrayList();
                                      movies.add(you);
                                     movies.trimToSize() ;                    
                                        map1.put(key , movies);
                                           if(map2.containsKey(you))
                                                      ((ArrayList)map2.get(you)).add(key) ;
                                            else
                                                         actorList = new ArrayList();
                                                           actorList.add(key);
                                                           actorList.trimToSize() ;                                                          
                                                           map2.put(you, actorList);
                               else if(line.indexOf("\t") == 0)
                                    par1 = line.indexOf(")");
                                    par2 = line.indexOf("\t");
                                    trimMovie = (line.substring(par2, par1 +1)).trim();
                                    trimMovie = trimMovie.intern();                              
                                    String ye = trimMovie;
                                    par1 = trimMovie.indexOf("(");
                                    par2 = trimMovie .indexOf(")");                              
                                    ye = (ye.substring(par1 + 1 , par2));                             
                                     addingmovie = (line.trim());
                                           if(addingmovie.indexOf("(TV)") > 0)
                                           else if ( (((Comparable)ye).compareTo("2002")) >= 0)
                                           else  if(addingmovie.indexOf("\"") == 0)
                                           else if(addingmovie.indexOf("(archive footage)") > 0)
                                            else
                                                     if(map1.containsKey(key))
                                                                 ((ArrayList)map1.get(key)).add(trimMovie);                         
                                                              ((ArrayList)map1.get(key)).trimToSize() ;
                                                    else
                                                          movies = new ArrayList();
                                                          movies.add(trimMovie);
                                                          movies.trimToSize() ;
                                                          map1.put(key, movies);
                                              if(map2.containsKey(trimMovie))
                                                 {     ((ArrayList)map2.get(trimMovie)).add(key);
                                                     ((ArrayList)map2.get(trimMovie)).trimToSize() ;
                                            else
                                                           actorList = new ArrayList();
                                                         actorList.add(key);
                                                        actorList.trimToSize() ;
                                                        map2.put(trimMovie, actorList);
    *Compute the amount of shared movies for all actor compared to the one
    *given from the user
    *@param String actor is the actor that the user wish to search for some
    *other actors/actresses with the most shared movies with him
        public void computeSharedMovies( String actor )
             Actor actor2 = new Actor();
             actor2.name = actor;
            if(map1.containsKey(actor2))
                  okactor = 0 ;
                  Actor actor3 = new Actor();
                  actor3 = actor2;
                      for(int count = 0 ; count < ((ArrayList)(map1.get(actor2))).size() ; count++)
                           String movie = (String)((ArrayList)(map1.get(actor2))).get(count);      
                                for (int count2 = 0 ; count2 < ((ArrayList)map2.get(movie)).size() ; count2++)     
                                          Actor iuu = (Actor)((ArrayList)map2.get(movie)).get(count2);
                                          if(!(iuu.name).equals( actor3.name))
                                                     iuu.data++;
             Set entries = map1.entrySet();
             Iterator itr = entries.iterator();
                 List x2 = new ArrayList() ;
                 Actor big = new Actor();
                 big.data = 0;
                 List list = new ArrayList();
             while (itr.hasNext())
                       Map.Entry thisPair = (Map.Entry) itr.next();                 
                          Actor actorCompare = ((Actor)thisPair.getKey());                                   
                          if( actorCompare.data > big.data)
                               big.name = actorCompare.name;
                               big.data = actorCompare.data;
                               list = new ArrayList();
                               list.add(actorCompare);
                      else if (actorCompare.data == big.data)
                                list.add(actorCompare);
          }//end of if, if actor is in map
           else
                   okactor = 1;
    *Prints the final output
    *@param String actor1 is the actor pick by the user to be search
    *@param List most is the list with all the actors/actresses that had
    *the most shared movies
      public void print (String actor1 , List most)
         if(okactor == 0)
               Actor actorPrint = new Actor();
               actorPrint.name = actor1;
               Actor y = new Actor();
               y = actorPrint;
               List  list = new ArrayList();
               list = most;
               int data = ((Actor)list.get(0)).data;
               ArrayList list2 = new ArrayList();
               list2 = (ArrayList)(map1.get(actorPrint));
                  for(int getActor = 0 ; getActor < list.size() ;getActor++)
                           System.out.println(list.get(getActor) + "  :   (" +  data  + "  " + "Shared roles)");
                            Actor name3  = (Actor)list.get(getActor);
                           String na  = name3.name;
                             Map map3 = new HashMap();
                            ArrayList ji = new ArrayList ();
                            ji = (ArrayList)map1.get(list.get(getActor));
                    for (int array1 = 0 ; array1 < ji.size()  ; array1++)
                         map3.put( ji.get(array1) , na);
                    for(int count = 0 ; count < list2.size() ; count++)
                           if(map3.containsKey(list2.get(count)))
                           System.out.println("                    " + (list2.get(count))); 
             Set entries =map1.entrySet();
             Iterator itr = entries.iterator();
             Actor  actortoclean = new Actor();
                  while(itr.hasNext())
                       Map.Entry thisPair = (Map.Entry)itr.next();
                       actortoclean = (Actor)thisPair.getKey();     
                       actortoclean.data = 0 ;      
       else  //else if okactor greater than 0
       System.out.println("THE ACTOR IS NOT IN FILE PLEASE TRY AGAIN") ;
    * Coputes what actors or actresses have the most shared movies
    *return a List with all the actor that have the most shared
    *movies
      public List mostSharedMovies( )
        if(okactor == 0)
        Set entries = map1.entrySet();
        Iterator itr = entries.iterator();
        List x = new ArrayList() ;
        Actor big = new Actor();
        big.data = 0;
        List list = new ArrayList();
          while (itr.hasNext())
                  Map.Entry thisPair = (Map.Entry) itr.next();
                     Actor o1 = ((Actor)thisPair.getKey());
                          if( o1.data > big.data)
                               big.name = o1.name;
                               big.data = o1.data;                 
                               list = new ArrayList();
                               list.add(o1);
                           else if (o1.data == big.data)
                                list.add(o1);
        return list;
      else
         return null;
    *Gives the amount of actor in the map of actors
    *return an int with the quantity
      public int getActorCount( )
          return map1.size();
    *Gives the amount of movies in the map of movies
    *return an int with the quantity
      public int getMovieCount()
           return map2.size();
    }Kevin Bacon Game
    For a description of the Kevin Bacon game, follow this link http://www.cs.virginia.edu/oracle/ . Try the game a few times and see if you can find someone with a Bacon Number higher than 3. In this program you will find all persons with a Bacon Number of 8 or higher. One of these persons is a former President of the United States.
    Strategy
    This is basically a shortest path problem. After that is done, find the large Bacon numbers by scanning the bacon numbers and print out the high-numbered actors and their chains. To print out a high-numbered actor, you should use recursion. Specifically, if some actor x has a Bacon number of b, then you know that they must have been in a movie with someone, call them actor y with a Bacon number of b-1. To print out x's chain, you would print out y's chain (recursively) and then the movie that x and y had in common.
    The Input Files
    There are two data files; both have identical formats. These files are: actors file and actresses file. These files are both compressed in .gz format, and were obtained from the Internet Movie Database. Combined, they are 52 Mbytes (compressed!) and were last updated October 17, 2002. These files are available at ftp://ftp.imdb.com/pub/interfaces/
    These datafiles contain approximately 571,000 actors/actresses in a total of 192,000 movies, with 2,144,000 roles. These files also list TV roles, but you must not include TV roles in your analysis.
    Before you run on the large data sets, use the small (uncompressed) file sample.list(http://www.fiu.edu/~lmore004/cop3530/sample.list) to debug the basic algorithms. In this data file, there are six actors, named a, b, c, d, e, and f, who have been in movies such as X, Y, and Z.
    Input File Hints
    Since it is not my input file, I cannot answer questions about it. Here are some observations that I used in my program, that should suffice. You can read the input file line by line by wrapping a FileInputStream inside a BufferedInputStream inside a GZIPInputStream inside an InputStreamReader inside a BufferedReader. You may not uncompress the file outside of your program.
    There are over 200 lines of preamble that can be skipped. This varies from file to file. However, you can figure it out by skipping all lines until the first occurrence of a line that begins with "Name", and then skipping one more.
    There are many postamble lines, too, starting with a line that has at least nine dashes (i.e. ---------).
    A name is listed once; all roles are together; the name starts in the first column.
    A movie title follows the optional name and a few tab stops ('\t'). There are some messed up entries that have spaces in addition to tab stops.
    The year should be part of the movie title.
    Movies made in 2003 or later should be skipped.
    A TV movie, indicated by (TV) following the year, is to be skipped.
    Archive material, indicated by (archive footage), is to be skipped. (Otherwise JFK is a movie star).
    Cameo appearances, indicated by [Cameo appearance], should be skipped.
    A TV series, indicated by a leading " in the title is to be skipped.
    A video-only movie, indicated by (V) following the year is allowed.
    Blank lines separate actors/actresses, and should be skipped.
    Strategy
    In order to compute your answers, you will need to store the data that you read. The main data structures are a Map in which each key is an Actor and each value is the corresponding list of movies that the actor has been in, and then a second Map, in which key is a movie and each value is the list of Actors in the movie (i.e. the cast). A movie is represented simply as a String that includes the year in which it was made, but an Actor includes both the name of the actor, and a data field that you can use to store computed information later on. Thus, ideally, you would like to define a class that looks somewhat like this (with routines to compute Bacon Numbers not listed):
    public class Database
      private static final class Actor
         String name;
         int    data;  // Bacon number ,
                       // determined by computeBaconNumbers
         public String toString( )
           { return name; }
         public int hashCode( )
           { return name.hashCode( ); }
         public boolean equals( Object other )
           { return (other instanceof Actor) &&
                    ( (Actor) other ).name.equals( name ); }
        // Open fileName; update the maps
      public void loadFile( String fileName ) throws IOException
      public int getActorCount( )
      public int getMovieCount( )
      private Map actorsToMovies = new HashMap( );
      private Map moviesToActors = new HashMap( );
      Memory Details
    The description above is pretty much what you have to do, except that you must take extra steps to avoid running out of memory.
    First, you will need to increase the maximum size of the Java Virtual Machine from the default of 64Meg to 224Meg. You may not increase it any higher than that. If you are running the java interpreter from the command line, the magic option is -Xmx224m. If you are using an IDE, you will have to consult their documentation --- don't ask me.
    Second, you will quickly run out of memory, because if you find two movies that are the same, but are on different input lines, the default setup will create two separate (yet equal) String objects and place them in the value lists of two different actors. Since there are 2.1 million roles, but only 192,000 movies, this means that you will have ten times as many String objects as you really need. What you need to do is to make sure that each movie title is represented by a single String object, and that the maps simply store references to that single String object. There are two basic alternatives:
    The String class has a method call intern. If you invoke it, the return value on equal Strings will always reference the same internal String object.
    You can keep a HashMap in which each key is a movie title, and each value is the same as the key. When you need a movie title, you use the value in the HashMap.
    Option two is superior (performancewise) to option #1 and it is required that you use it to avoid memory problems.
    When you maintain the list of movies for each actor, you will want to use an ArrayList. It takes little effort to ensure that the capacity in the ArrayList is not more than is needed, and you should do so, to avoid wasting space (since there are 571,000 such array lists).
    When you construct the HashMaps, you can issue a parameter (the load factor). The higher the load factor, the less space you use (at the expense of a small increase in time). You should play around with that too; the default is 0.75; you will probably want a load factor of 2.00 or 3.00.
    You must be very careful to avoid doing any more work in the inner loops than you need to, including creating excessive objects. IF YOU CREATE EXCESSIVE OBJECTS, YOUR PROGRAM MAY SLOW TO A CRAWL BECAUSE ALL ITS TIME WILL BE SPENT IN THE GARBAGE COLLECTOR OR RUN OUT OF MEMORY COMPLETELY.
    What to Submit
    Submit complete source code and the actors/actresses with Bacon Numbers of 8 or higher. Include the complete paths for each of the actors/actresses (with shared movie titles). Also indicate how long your algorithm takes. This means how long it takes to load, and also how long it takes to run the shortest path computation (not including the output of the answer), by inserting calls to System.currentTimeMillis at appropriate points in your code, and tell me how many actors and movies there are. Also, insert this code (at the end of your program) that tells me how large the VM is:
    Runtime rt = Runtime.getRuntime( );
    int vmsize = (int) rt.totalMemory( );
    System.out.println( "Virtual machine size: " + vmsize );
    Don't forget to write in the processor speed of the computer you are using. If it's somewhat fast, or provably space-efficient, you can get extra credit. You cannot receive credit for a working program if your program fails to produce a large set of actors and actresses with Bacon Numbers of 8 or higher. Note: the data you will work on and the data the Oracle uses (and the IMDB data) are all slightly out of sync. So you might not be able to exactly reproduce the results, although I was able to get a complete set of Bacon Numbers 8 and higher when I ran my program on October 23, using the Oct 17 files.
    Due Date
    This program is due on Thursday November 14.
    Additional Notes
    The exact sizes of the data files are 36381624 and 18263563 bytes, respectively. If you download and the files are larger, then you messed up the download. Note that if you are using Windows XP, these files might be uncompressed during downloading. If so, you can use this program to recompress the file. If the files are smaller, then the download probably got interrupted before it finished and you will need to retry. Here is a gzipped sample.list for you to test that aspect of your program.
    Running on COTTON in the AUL, which is a 450 MHz Pentium III, and accessing the files over the network as "\\\\couger\\cop3530\\actors.list.gz", (and similarly for actresses.list.gz), and with no other processes running besides notepad, the data files loaded in 180 seconds. You should be able to get faster results on a faster machine. Some of the AUL machines are 1.6 GHz. You should indicate which AUL machine (with processor speed) ran your submission.
    Entries with years such as (1996/I) are optional.
    When writing and reading make sure you are using BufferedInputStream and BufferedOutputStream, as appropriate.
    Sketch of the basic shortest path computation:
    // typically invoked with Kevin Bacon as parameter
    // This is the basic algorithm; there's stuff

    I forgot to post the code, here it is:
    import java.util.LinkedList ;
    import java.io.*;
    import java.util.zip.*;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Set;
    import java.util.Iterator;
    import java.util.HashSet;
    * A class that download files , create Maps and search for information with
    public class DataBase2 implements Serializable
      private Map map1 = new HashMap((int)515927, (float)0.85 );  // actor
      private Map map2= new HashMap((int)172911, (float)0.85 );   //movies
      transient private Map map3 = new HashMap();   //movie and movie
      transient private int okactor = 0;
      transient static final int INFINITY = Integer.MAX_VALUE;
    // Main Method
      public static void main (String args [])throws IOException
        int c  = 0 ;
        System.out.println("Program was run in Pentium 4 in AUL");        
        DataBase2 testing = new DataBase2();   
        try{   
            ObjectInputStream ii1 = new ObjectInputStream (new BufferedInputStream (new FileInputStream("file2.ser")));
        catch (FileNotFoundException ex)
            System.out.println("FILE NOT ON DISK PLEASE WAIT WHILE DOWNLOADING");
            long x = System.currentTimeMillis();
            testing.loadFile("\\\\Cougar\\cop3530\\actresses.list.gz");   
            testing.loadFile("\\\\Cougar\\cop3530\\actors.list.gz");
            long y = System.currentTimeMillis();
            System.out.println("DONE WITH DOWNLOADING, USING NORMAL METHOD " +(y - x)/1000 + " seconds");                       
            System.out.println("The actors count is:  " + testing.getActorCount());
            System.out.println("The movies count is:  "  + testing.getMovieCount());
            testing.loadser(testing);      
            System.out.println("END OF DUMPING");      
            testing.findBacon();  
            c++;        
        if (c == 0 )
            long o= System.currentTimeMillis();   
            testing = testing.fastloading(testing);
            long y = System.currentTimeMillis(); 
            System.out.println("DONE WITH LOADING, FROM SERIALIZED FILES  " + (y-o)/1000 + "seconds");         
            System.out.println("The actors count is:   " + testing.getActorCount());
            System.out.println("The movies count is:   " + testing.getMovieCount());
            testing.findBacon();             
            Runtime rt = Runtime.getRuntime( );       
            int vmsize = (int) rt.totalMemory( );       
            System.out.println(" " );
            System.out.println( "The Virtual Machine size is : " + vmsize + " bytes" );
    //static class actor 
      private static final class Actor implements Serializable
         String name;
         int    data;  // number of shared movies,
                       // determined by computeSharedMovies          
         public String toString( )
           { return name; }
         public int hashCode( )
           { return name.hashCode( ); }         
         public boolean equals( Object other )
           { return (other instanceof Actor) && ( (Actor) other ).name.equals( name );}
    *Method to find the bacon number of each actor
    *and also send information, actors greater than 7,  to be print
      public void findBacon()
        ArrayList actorlist = new ArrayList();
        long time1 = System.currentTimeMillis();
        Actor actor2 = new Actor();    
        actor2.name = "Bacon, Kevin";
        actor2.data = 0;
        Set entries =map1.entrySet();
        Iterator itr = entries.iterator();
        Actor  actortoInfinity = new Actor();
        Set listofMovies = new HashSet();          
                    while(itr.hasNext())
                            Map.Entry thisPair = (Map.Entry)itr.next();
                            actortoInfinity = (Actor)thisPair.getKey();    
                            if((actortoInfinity.name).equals( actor2.name))
                                    actortoInfinity.data = 0 ;                     
                            else
                            actortoInfinity.data = INFINITY ;      
         Actor actor3 = new Actor() ;      
         LinkedList list = new LinkedList();
         list.addLast(actor2) ;
         Actor out = new Actor();
                    while (list.isEmpty() != true)
                            out = (Actor)list.getFirst();
                        list.removeFirst() ;
                                    for(int count = 0 ; count < ((ArrayList)(map1.get(out))).size() ; count++)
                                            String movie = (String)((ArrayList)(map1.get(out))).get(count);                      
                            if(listofMovies.contains(movie))
                            {continue;}
                            else
                            listofMovies.add(movie);
                                    for(int count2 = 0; count2 < ((ArrayList)(map2.get(movie))).size() ; count2++)
                                                    actor3  =   (Actor)(((ArrayList)(map2.get(movie))).get(count2) )  ;
                                            if(actor3.data == INFINITY)
                                                actor3.data = out.data + 1;
                                                list.addLast(actor3) ;
                                    if(actor3.data >= 7)
                                            actorlist.add(actor3);                                                                 
                                                             }//inner loop                
                         }//else
                     }//outer loop
                 }//while loop
         long time2 = System.currentTimeMillis();
         System.out.println("Done gettig Bacon Number(shortest path): " + (time2 - time1)/1000 + " Seconds");
                    for(int count = 0 ; count < actorlist.size() ; count++)
                                    print((Actor)(actorlist.get(count)));
    *Method used to print the chain of information within
    *each actor with Bacon number of 7 and over
    *it uses recursion to do it
      private void   printPath (Actor target)
        int c = 0 ;  
        Actor actor = new Actor();
            String movies ;
              if (target.data == 0)
                  System.out.println("-----------------------------END OF PATH-----------------------------");                           
              else
                    for(int x = 0 ; x < ((ArrayList)(map1.get(target))).size(); x++)
                    movies = (String)(((ArrayList)(map1.get(target))).get(x));
                    for (int y = 0 ; y < ((ArrayList)map2.get(movies)).size() ;  y++)
                            actor = (Actor)(((ArrayList)(map2.get(movies))).get(y));
                            if(actor.data == target.data - 1)
                                    System.out.println("* " + target + "  acted with " + actor+ " how's BK # is " + actor.data + ", both in movie: " + movies ) ;
                                c++;
                                break;                      
                     }//inner loop
                   if (c > 0)
                   break;
                  }//outer loop
              printPath(actor);
    *Gets the actor to print
    *and sends the same actor to
    *PrintInfo method to print
    *its chain
    *@param target the actor to print
      public void print(Actor target)
                            System.out.println(" " );
                                    System.out.println(" " ); 
                            System.out.println(" " );
                                    System.out.println(target.name + "'s Bacon number is: " +target.data);
                                    System.out.println(" " );
                                printPath(target);                                                                                                                                                                         
    *A method to load the Serialization file
    *so it,the file,  can be manipulated
    *@param x the DataBase object to be load
    *with all the files
    *@return the object x with all the file
    *withit
      public DataBase2 fastloading(DataBase2  target2) throws IOException
            try{ 
                    ObjectInputStream ii1 = new ObjectInputStream (new BufferedInputStream (new FileInputStream("file2.ser")));
                    target2= (DataBase2) ii1.readObject();
                    ii1.close();
        catch(ClassNotFoundException e )
           System.out.println("Error, class exception");
        catch(FileNotFoundException ex)
           System.out.println("Error, the file is not on the disk");       
        return target2;            
    *Method to write the Object DataBase2, created before, into a Serializable file
      public void loadser(DataBase2 ObjecttoLoad ) throws IOException
            ObjectOutputStream oo = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("file2.ser")));
            oo.writeObject(ObjecttoLoad);
            oo.close();
    /**Method use to download files for the first time
    *it creates maps, which contains actor and movies
    *@param fileName it gets the file to be read and
    *used to get the data into the maps
      public void loadFile( String fileName ) throws IOException
          BufferedReader x = new BufferedReader ( new InputStreamReader(new GZIPInputStream (new BufferedInputStream( new FileInputStream(fileName)))));
          String line;          
          int start = 0 ;    
          ArrayList actorList = new ArrayList();
          ArrayList movies = new ArrayList();
          Actor key = new Actor();
          int p = 0;    //parameters
          int p2 =0 ;
          String you = null ;
          String year = null;
          String trimMovie = null;
          int par1 = 0;    //parameter
          int par2 =0;
          String addingmovie = null;
            while((line = x.readLine()) != null)
                if(line.indexOf("Name") == 0 )
                    start++;                       
                if(start == 0)
                continue;                       
                if( start >= 1)
                                  if(line.indexOf("-----------------------") == 0)
                                         break;                    
                                  if(((line.trim()).length()) == 0)
                                     continue;
                                  else if(line.indexOf("----") == 0)
                                     continue;
                                      else if (line.indexOf("Name") == 0)
                                             continue;
                                  else if(line.indexOf("\t") != 0)
                                     p  = line.indexOf("\t");
                                     p2 = line.lastIndexOf(")");                               
                                     String actor = (line.substring(0,p));                                        
                                             key = new Actor();
                                             key.name = actor;                               
                                             you = (line.substring(p, (p2 + 1)));                                                                                                                                                                                                                                                                              
                                             if (you.indexOf("(TV)") > 0)
                                                            continue;                                                                                              
                                     p = you.indexOf("\t");
                                     p2 = you.indexOf(")");
                                         you = (you.substring(p, p2 +1)).trim();                                    
                                          if(you.indexOf("\"") == 0)
                                                             continue;                      
                                     year = you ;      
                                     p = year.indexOf("(");
                                     p2 = year.indexOf(")");
                                     year = year.substring(p + 1 , p2);                                 
                                           if ( ( ((Comparable)year).compareTo("2002") ) >= 0)
                                                  continue;                                           
                                           if (map3.containsKey(you))
                                               else
                                                          map3.put(you, you);                                                                                              
                                     movies = new ArrayList();
                                     movies.add(map3.get(you));
                                     movies.trimToSize() ;                         
                                     map1.put(key , movies);
                                          if(map2.containsKey(map3.get(you)))
                                                              ((ArrayList)map2.get(map3.get(you))).add(key) ;
                                          else
                                                              actorList = new ArrayList();
                                                                          actorList.add(key);
                                                                      actorList.trimToSize() ;                                                                     
                                                                      map2.put(map3.get(you), actorList);
                             else if(line.indexOf("\t") == 0)
                                    par1 = line.indexOf(")");
                                    par2 = line.indexOf("\t");                                                          
                                    trimMovie = (line.substring(par2, par1 +1)).trim();
                                    // trimMovie = trimMovie.intern();                           
                                    if(map3.containsKey(trimMovie))
                                    else
                                    map3.put(trimMovie , trimMovie);
                                    String ye = (String)map3.get(trimMovie);
                                    par1 = trimMovie.indexOf("(");
                                    par2 = trimMovie .indexOf(")");                             
                                    ye = (ye.substring(par1 + 1 , par2));                                                               
                                    addingmovie = (line.trim());
                                        if(addingmovie.indexOf("(TV)") > 0)
                                            else if ( (((Comparable)ye).compareTo("2002")) >= 0)
                                            else  if(addingmovie.indexOf("\"") == 0)
                                            else if(addingmovie.indexOf("(archive footage)") > 0)
                                        else
                                            if(map1.containsKey(key))
                                                            ((ArrayList)map1.get(key)).add(map3.get(trimMovie));                            
                                                            ((ArrayList)map1.get(key)).trimToSize() ;
                                            else
                                                    movies = new ArrayList();
                                                    movies.add(map3.get(trimMovie));
                                                    movies.trimToSize() ;
                                                    map1.put(key, movies);
                                           if(map2.containsKey(trimMovie))
                                                {   ((ArrayList)map2.get(map3.get(trimMovie))).add(key);
                                                    ((ArrayList)map2.get(map3.get(trimMovie))).trimToSize() ;
                                               else
                                                            actorList = new ArrayList();
                                                                    actorList.add(key);
                                                            actorList.trimToSize() ;
                                                            map2.put(map3.get(trimMovie), actorList);
                                      }     //end of last else if          
                        }//end of if
                }//end of while
        }//end of method
    *Gives the amount of actor in the map of actors
    *return an int with the quantity
      public int getActorCount( )    
          return map1.size();
    *Gives the amount of movies in the map of movies
    *return an int with the quantity
      public int getMovieCount()
           return map2.size();
    }//end of DataBase2 class

  • Kevin Lii's Topic List

    Welcome to visit my Topics
    worker occur afcmgf.odf error when apply patch 4334965
    when i apply patch 43worker occur afcmgf.odf error when apply patch 4334965
    tempspace's use ratio didn't reduce after database restart
    http://forums.oracle.com/forums/thread.jspa?threadID=366702
    Message was edited by:
    Kevin Lii

    As I said in my first post, emptying Safari's cache has no effect, & it is only the the "Back to Topic List" in Discussions that displays this delay. Using the path link (like the "Feedback about Discussions " link at the top of this page) is always as fast as I expect but the "Back to Topic List" one is not.
    The two links are identical except that the "&start=0" index suffix is not included in the "Back to Topic List" link. Since the page that loads for either link is identical, I assume that the index suffix has something to do with the phenomenon, but what that might be I have no clue.

  • Kevin Kirkman

    Have G5 mac and trying to reinstall CS2 photoshop etc.
    My serial number [removed]
    Activation Number which keps changing at each attempt
    Activation Type normal: 93:-12
    Need 20 digit Authorization Code . . .
    Have phoned support . .
    Phone Activation . . 
    They say it is no longer supported.
    What?
    Can anyone at Adobe help.

    "Kevin B. Kent" wrote:
    > JIMBO NIC wrote:
    >
    > > Kevin, I appreciate your responce and would love to give you a little more
    > > detail of my application, however, I keep getting a message sent back to me
    > > saying my Email is undeliverable to your address. Is there anything special I
    > > need to do? I tried to just reply and it would not work.
    > > Thanks
    > > Jim
    >
    > my e-mail is in transition and is screwy.
    > I monitor this group if al else fails try me here
    >
    > My e-mail SHOULD be [email protected]
    I lied. There should be a mail. after the @ the rest is the same.
    Attachments:
    Kevin.B.Kent.vcf ‏1 KB

  • Question for Andrew, Justin, 355099, Kevin

    Andrew/Justin/Kevin/355099,
    On an average how much time each of you spend on this forum daily ?

    For me, there is a fair amount of dead time in the course of a day (i.e. one meeting ends at 11:50, another meeting at 12) where there is time to make a couple of forum posts, but not enough to get any real work done. Same thing goes for commercial breaks if I'm watching TV, times when I need to think about something other than what I'm trying to code at the moment, etc. If I added it all up, it would probably be rather substantial, but it doesn't feel like all that much since its the remnants of my day that would otherwise be spent twiddling thumbs or surfing the web. I will note that my Slashdot time and my OTN time are inversely proportional!
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Kevin's role in forums

    Hey, Kevin... are you now the new Todd since he's gone on to become Mr. AE?

    Hi Dave,
    No one could ever hold a candle to the job Todd did in these (and other) forums. While I'm sure you'll see him here from time to time, yes, you should see more of me attempting to take up the slack (impossible as that may sound). Feel free to PM me for any questions you may have and to point me to the juicier posts that can be mined for fixes, feature requests, or whatever you think is important.
    Regards,
    Kevin

  • Anyone get this message in Safari? Using the Merrill Lynch site

    This is totally random. Using the Merrill Lynch financial site. Logged into my account.
    In getting stock quotes throughout the day. Then some days I get this error in Safari-
    Not enough storage is available to complete this operation.
    And I can't get any quotes any longer.
    Merrill Lynch say they haven't any idea. But to me the words used in the message sound so PC geek speak.
    I have tried emptying cache in Safari. I also set the default database to off. To 5MB. To 10MB. Nothing works from my end in Safari.
    I really feel it is a bug in the Merrill Lynch site. But thought I would post here just in case someone else has experienced this?
    And this only happens getting stock quotes on Merrill Lynch. And the rest of the Merrill Lynch site works fine throughout the day. Just stock quotes.
    Thanks
    Safari Version 3.1.1 (5525.20)
    Message was edited by: musicmaker

    Photoshop installer should have installed a ScriptingSupport Plugin in each version of Photoshop you installed. Scan your system for ScriptingSupport I found six on my windows system. Here where I found them:

  • HT3275 what if it says The backup disk image "/Volumes/TimeMachine/Kevin's iMac.sparsebundle" is already in use.

    in Time Machine what if it says The backup disk image “/Volumes/TimeMachine/Kevin’s iMac.sparsebundle” is already in use.

    First, restart your iMac and Time Capsule. In most of the cases, this should solve that problem.
    If it doesn't work, see > http://pondini.org/TM/C12.html

  • ** (firefox:6083): WARNING **: Wrong permissions for /home/kevin/tmp/orbit-kevin

    Firefox is starting to crash a bunch. I am running pclinuxos and after the last crash I typed "firefox" in konsole and got the following:
    ** (firefox:6083): WARNING **: Wrong permissions for /home/kevin/tmp/orbit-kevin
    What is happening?
    I checked the permission for that folder and it says kevin for user and group, and owner, group and others can view and modify content.
    I have the following extensions:
    downloadhelper 4.8.6
    evernote
    firefox sync 1.7
    quickprint 0.1.2

    Uups. Now, why didn't I think of that? Last update had 1GB of size installed. pacman -Scc fixed it, of course.

Maybe you are looking for