Meta tags:
Headings (most frequently used words):
2011, diver, monday, march, tuesday, december, 2010, about, rigor, eclipsecon, del, alt, ctrl, pages, september, august, friday, 25, 14, 21, blog, archive, me, followers, when, becomes, mortis, new, version, of, available, reflections, on, tracing, web, apps, using, is, finalist, for, an, eclipse, community, award, see, you, at, interview,
Text of the page (most frequently used words):
the (178), that (105), and (83), you (64), diver (49), for (36), your (36), are (34), can (33), web (28), jboss (24), have (23), been (22), this (22), just (22), server (21), trace (20), will (17), make (17), with (17), there (17), java (17), eclipse (16), software (16), all (16), has (14), from (14), app (14), work (13), what (13), but (13), #eclipsecon (12), get (12), research (12), del (11), set (11), run (11), about (10), using (10), more (10), launch (10), project (10), new (10), masters (9), how (9), engineering (9), 2011 (9), tool (9), time (9), able (9), great (9), not (9), into (8), out (8), one (8), really (8), community (8), though (8), tracing (8), would (8), need (8), reverse (7), posted (7), like (7), working (7), other (7), going (7), sure (7), some (7), arguments (7), difficult (7), they (7), developer (6), years (6), when (6), rigor (6), excellent (6), way (6), code (6), many (6), best (6), problems (6), than (6), filters (6), apps (6), people (6), post (6), version (6), had (6), only (6), own (6), application (6), now (6), since (6), computer (6), thesis (6), claims (6), participants (6), view (5), victoria (5), march (5), source (5), developers (5), talk (5), understand (5), program (5), very (5), see (5), help (5), such (5), solutions (5), analyze (5), first (5), used (5), little (5), running (5), deployed (5), well (5), things (5), could (5), use (5), default (5), start (5), real (5), tab (5), jar (5), them (5), visible (5), technology (5), too (5), science (5), experiments (5), large (5), technologies (4), university (4), support (4), december (4), comment (4), making (4), select (4), yet (4), selected (4), finalist (4), almost (4), focus (4), applications (4), isn (4), thing (4), small (4), deploy (4), before (4), then (4), classes (4), suggest (4), their (4), data (4), also (4), main (4), over (4), good (4), same (4), think (4), off (4), requires (4), create (4), don (4), publish (4), academic (4), results (4), doing (3), 2010 (3), home (3), jaxenter (3), interactive (3), which (3), open (3), hands (3), check (3), interview (3), tuesday (3), won (3), found (3), part (3), everyone (3), come (3), put (3), already (3), haven (3), past (3), trying (3), helps (3), even (3), problem (3), find (3), comments (3), long (3), sequence (3), particular (3), features (3), moving (3), number (3), always (3), few (3), easier (3), traces (3), any (3), however (3), jetty (3), makes (3), lot (3), build (3), actually (3), workspace (3), specific (3), unfortunately (3), far (3), might (3), want (3), doesn (3), where (3), debug (3), based (3), analysis (3), allows (3), runtime (3), means (3), being (3), unless (3), started (3), these (3), bat (3), its (3), bin (3), share (3), important (3), name (3), following (3), onto (3), enough (3), page (3), jars (3), alt (3), needs (3), monday (3), article (3), was (3), projects (3), become (3), while (3), last (3), future (3), ten (3), academia (3), papers (3), kind (3), researchers (3), complete (2), researcher (2), february (2), november (2), may (2), august (2), becomes (2), mortis (2), september (2), posts (2), older (2), com (2), dynamic (2), views (2), processes (2), wondering (2), http (2), award (2), hope (2), org (2), submissions (2), written (2), happy (2), thank (2), swamped (2), got (2), today (2), environment (2), couple (2), hard (2), solve (2), associated (2), understanding (2), know (2), among (2), vibrant (2), solution (2), every (2), designed (2), works (2), diagram (2), asked (2), times (2), instructions (2), hopefully (2), still (2), done (2), tweaking (2), copy (2), another (2), javascript (2), errors (2), jsps (2), setting (2), tools (2), least (2), normally (2), typically (2), war (2), file (2), directory (2), after (2), methods (2), those (2), instance (2), take (2), aware (2), launching (2), button (2), shutdown (2), bugs (2), versions (2), earlier (2), recorded (2), defined (2), gets (2), speed (2), checked (2), apply (2), documentation (2), pause (2), likely (2), interested (2), named (2), configuration (2), end (2), manually (2), gathering (2), information (2), look (2), should (2), script (2), variables (2), jdk (2), measure (2), sun (2), oracle (2), argument (2), ones (2), dprogram (2), xshare (2), dsun (2), rmi (2), dgc (2), gcinterval (2), 3600000 (2), launcher (2), our (2), created (2), choose (2), possibly (2), jdt (2), directly (2), install (2), sourceforge (2), experience (2), innovative (2), interesting (2), anymore (2), gave (2), california (2), world (2), back (2), releasing (2), execution (2), ability (2), without (2), around (2), here (2), group (2), capable (2), chisel (2), available (2), student (2), theory (2), academics (2), involved (2), publications (2), published (2), conference (2), chairs (2), does (2), claim (2), demonstrate (2), modest (2), scenarios (2), seem (2), exciting (2), seems (2), better (2), strong (2), produce (2), statistical (2), significance (2), pool (2), randomly (2), ask (2), try (2), kinds (2), several (2), etc (2), needed (2), lag (2), behind (2), convince (2), day (2), opportunity (2), smart (2), offered (2), microsoft (2), ctrl (2), awesome, inc, theme, powered, blogger, followers, profile, seven, currently, studying, ides, improved, 2009, january, june, blog, archive, subscribe, atom, online, magazine, recently, interviewed, bringing, ordinary, offer, 32838, html, felt, morning, email, certain, https, www, view_talk, php, 2099, dear, myers, pleased, accept, proposal, committee, received, include, helping, lately, afraid, devote, much, blogging, news, category, along, side, python, language, baby, respect, honour, incorporate, everyday, improve, pydev, unfamiliar, forgotten, lets, easily, actions, advanced, workbench, artifacts, told, possible, given, detailed, remedy, notes, illustrate, points, official, release, because, testing, pointing, browser, enabled, tomcat, includes, invoked, 1ga, reason, servers, assume, ready, probably, test, localhost, rather, deployment, machine, keeps, compact, manage, strictly, necessary, offers, powerful, example, involve, copying, changes, rebuild, redeploy, match, calls, various, capturing, events, happen, inside, ideally, interact, fire, gotten, fortunately, programs, functionality, grab, bit, housekeeping, give, clean, shut, down, stop, force, quit, leave, undefined, state, opening, console, command, type, presenting, users, coding, record, compare, tell, fun, stuff, video, tutorials, documenation, absolutely, method, call, rejected, during, separate, step, reject, stored, enable, none, process, traced, define, described, selecting, option, adding, packages, area, watch, nothing, mostly, useless, inclusion, filter, technically, tweak, efficient, slow, introduces, overhead, minimize, something, discovered, did, inspecting, sets, bunch, variable, valid, normal, jre, depending, compile, knew, throwing, java_home, resolve, resources, jboss_home, sake, tells, anyone, different, loaded, flag, aren, rid, linux, heap, perm, gen, sizes, according, liking, maxpermsize, 256m, xms128m, xmx512m, client, dorg, resolver, warning, true, configured, supplied, require, passed, both, gather, dialog, class, simple, configurations, preparation, looking, once, menu, jump, settings, add, external, path, libraries, enter, properties, navigator, package, explorer, appropriate, dependencies, cause, isolated, called, extension, launches, mean, installed, right, files, platform, preparing, jboss_root, server_name, svn, net, svnroot, development, thanks, week, write, short, reflection, experiences, steal, traffic, link, above, centric, heavy, top, level, follow, reality, reflect, interests, seen, everything, diminish, built, tonne, integrated, daily, barely, notice, compliment, admit, wednesday, conversations, shout, guys, ericsson, funders, heard, each, funny, head, bye, cold, rainy, rain, palm, trees, reflections, friday, defended, figured, celebrate, dynamically, anyway, enhancements, including, junit, tests, diagrams, generated, marketplace, apologize, active, finishing, updates, finished, personally, remaining, pass, worked, field, associate, advantage, meant, free, investigate, ideas, theories, obligation, provide, product, generate, profit, learned, critical, known, mantra, must, perish, studies, grants, fellowships, awarded, curriculum, vitae, dry, funding, market, value, adjudicated, journal, editors, reviewed, fair, paper, design, implement, careful, belief, often, complex, reviews, technique, predecessors, situations, average, task, impossible, pull, unbiased, usage, reaction, form, generalizations, why, most, access, never, criteria, met, analyzing, insurmountable, supervisor, others, performed, study, total, took, months, transcribe, review, videos, logged, gain, taken, fast, realm, turn, frustrating, innovations, commercial, production, professionals, participate, cost, terms, money, reward, perform, evaluate, goals, perspective, success, programming, solving, workable, hand, fosters, innovation, technical, spite, recognition, year, outside, distinct, feeling, bigger, impact, toward, building, worth, leaving, chapter, life, job, tomorrow, creative, inspiring, within, truly, believe, changed, develop, products, designing, implementing, added, bonus, pays, wage, planet, wish, greatest, blessings, music, contact, resume, pages,
Text of the page (random words):
oduce experiments that have statistical significance when you are working with a new technology that means that you need to pull from a large pool of unbiased randomly selected participants that you can ask to try the technology so that you can measure their usage of it ask them about their reaction to it and try to form some kind of generalizations and a theory about why the technology does or doesn t work the problem is that most researchers don t have access to a large pool of participants and the participants almost never can be randomly selected even if these criteria can be met the problem of gathering and analyzing data from these kinds of scenarios can become almost insurmountable for my thesis i my supervisor and several others designed and performed a study that involved ten participants in total with only ten participants it took us several months to transcribe and review the videos analyze logged data from the application etc etc if we had as many participants as we needed to gain statistical significance it would have taken us years to complete the research in such a fast moving realm as computer science and software engineering this kind of long turn around time is very frustrating it makes research seem to lag behind the innovations of commercial and open source projects it also makes it difficult to do future research since the results lag behind the results of production software it is difficult to convince professionals to participate in experiments it is a large cost in terms of time and money for what they see as a small reward this will make it more difficult in the future to perform academic experiments that are able to make strong claims it might be time for academics to re evaluate the goals of computer science and software engineering research what kinds of problems are they trying to solve and what is really important from my perspective my own research has been a success i started my masters not as an academic but as a software developer i had problems in my day to day programming that needed solving my masters work gave me the opportunity to work with some excellent and smart people and come up with a workable solution i was able to produce the diver tool and hand it to the eclipse community which has always been a community that fosters innovation and excellent technical solutions the results of the work however have been difficult to publish in spite of the recognition that diver got by being named a finalist for best developer tool of the year the results of our research have yet to be published outside of my masters thesis i get the distinct feeling that i can make a bigger impact by working toward building real solutions for real developers than i can by trying to convince conference chairs that the solutions are worth while so i m leaving the diver project in the capable hands of the chisel group at the university of victoria and moving onto a new chapter in my life i ve been offered a job at microsoft and i start tomorrow it has been great working at the university of victoria there are some really smart creative and inspiring people there it has also been great working within the eclipse community i truly believe that the work done with eclipse has changed the way that people develop software the community is great and so are the products in the end i m really just interested in designing and implementing good solutions to real world problems microsoft has offered me what seems to be an exciting opportunity to do just that as an added bonus it pays better than the wage of a masters student so this will be my last post to planet eclipse thank you everyone for your support over the years and i wish you all the greatest blessings the diver project is still available on sourceforge if you like you can find my masters thesis here posted by del at 11 24 pm 7 comments monday august 8 2011 new version of diver available so i just defended my masters thesis today and i figured that i would celebrate by releasing a new version of my thesis project dynamic interactive views for reverse engineering it s a tool that allows you to dynamically trace the execution of your software and focus in on particular features and bugs to help you analyze and understand it first of all i m going to apologize for not being very active around here since eclipsecon i ve been too swamped with finishing off my thesis but in the last little while i ve been able to work on diver and make some updates unfortunately since i am finished my masters now i won t be personally releasing new versions diver anymore but it is remaining with the chisel group at the university of victoria and it will hopefully pass to other capable hands more about that though in a future post anyway there are a couple of enhancements to diver including the ability to trace your junit tests and the ability to view sequence diagrams that are generated directly from source code without the need to create an execution trace more information can be found on the diver web page you can install diver using the eclipse marketplace or by following the instructions on the diver web page posted by del at 5 13 pm 5 comments friday march 25 2011 reflections on eclipsecon thanks to everyone at eclipsecon this past week for making it a great experience jaxenter asked me to write a short reflection about my experiences i don t want to steal traffic from them so you can see the article by following the link above the article is technology centric it was difficult for me to choose from among the many great things that are going on with eclipse since it is such a vibrant and innovative community the technologies in the article have heavy support from the top level projects so they will be interesting to follow also in reality they only reflect my own interests and experience and i could not have possibly seen everything going on at eclipsecon that isn t to diminish any of the other great technologies that are built on eclipse there are a tonne of them that have become so integrated into my daily work that i barely even notice them anymore that s a real compliment i think the best thing really though is the community i have to admit that it was a little difficult to get to talk to people before i gave my talk on wednesday after that though i had a few great conversations i d like to make a shout out to the guys over at ericsson for the past while we have been working on the same set of problems with support by the same funders we had to go all the way to california for eclipsecon before we had heard about each other though it s a funny world oh well time to head back home good bye cold rainy california i ll be going back to the rain and palm trees of victoria posted by del at 9 07 am 1 comment monday march 14 2011 tracing web apps using diver diver is a tool designed to help java developers understand how unfamiliar or long forgotten software works it lets developers easily trace the actions of java software and analyze it using an advanced sequence diagram view and some workbench filters that help focus on the software artifacts associated with particular features of the software with more and more applications moving to the web i ve been asked a number of times can diver trace web apps i ve always told people that it is possible to do but i haven t given detailed instructions on how to do it this post will hopefully remedy that first a few notes the version of diver used to illustrate the points in this post is 0 3 1 it isn t an official release yet because there is still some testing to be done i ve had to do some tweaking to diver though to make tracing web apps a little easier so you can get your copy of diver 0 3 1 by pointing p2 to http diver svn sourceforge net svnroot diver development another thing diver only traces java not javascript so diver can t be used to help get at any javascript errors that are running in the browser it can however trace java apps that have been deployed on a java enabled web server such as jetty tomcat or jboss that includes code invoked from jsps in this post i ll be using jboss 5 0 1ga there is no particular reason for that i ve used diver to trace applications deployed in jetty as well install and deploy your web app the focus of this post is on tracing web apps not on setting up web servers so i assume that you have your server ready to go it s probably best though that you run on a small test server on your localhost rather than on a deployment machine that just keeps things compact and easier to manage diver works best if you have the source code for that app it isn t strictly necessary but it makes the tools that diver offers a lot more powerful at the very least you have to be able to deploy your app into your own web server you can just build and deploy your web app the way you normally would for example in jboss this would typically involve copying a war file into the jboss_root server server_name deploy directory when you are tracing your app diver will actually be tracing the copy that has been deployed on your server not the version that is in your workspace so after you make any changes to your code be sure to rebuild and redeploy before running your trace then diver will be able to match the calls to various methods classes in the deployed war to those classes in your workspace making it a lot easier to find things preparing for launch when tracing a java web app what we are really doing is capturing specific events that happen inside a java web server instance so the application we will be tracing is the java web server ideally diver would be able to interact with the eclipse web tools platform so that you could just fire up a trace of a web server launch unfortunately i haven t gotten that far yet fortunately though programs like jboss are really just java applications so we can use the java application trace functionality of diver to grab a trace but it will take a little set up first the diver java application trace is just an extension of the jdt java application launch the jdt requires that the applications it launches are visible in the workspace so diver requires the same that doesn t mean though that you have to have all of the jboss source to get started you can launch directly from your installed jboss instance to get jboss to run you just need to make the right jar files visible this is how you do that i suggest that you make the appropriate jars visible in their own project you could possibly create dependencies to jboss or jetty or what have you in your web app s project but that could cause build problems or runtime errors if your web app needs its jars to be isolated from the server i just create a small java project called jboss once the project is created you need to make the jboss launch jar visible to do that just select the jboss project in the package explorer or the navigator and choose file properties alt enter from the menu jump over to the libraries tab of the java build path settings page and select add external jars the jar that you are looking for is run jar it s just the jboss launcher on my computer it is found in c jboss 5 0 1 ga bin that s all that you need for preparation now we can get onto the launch setting up the trace now that the jboss launcher is visible to eclipse we can get onto running it to gather a trace of our web app open up your run or debug configurations dialog and create a new java application trace in the main tab set the project to the one we created earlier the main class that we will use is just org jboss main simple enough your web server will likely require a number of arguments to be passed both into the program and into the vm go to the arguments tab jboss requires the following arguments program arguments c server where server is the name of the configured server that you deployed your web app into i typically just use default one supplied by jboss so my program arguments are c default vm arguments xshare off dprogram name run bat server dorg jboss resolver warning true dsun rmi dgc client gcinterval 3600000 dsun rmi dgc server gcinterval 3600000 xms128m xmx512m xx maxpermsize 256m xshare off is a sun oracle specific vm argument that is there for diver s sake it tells the vm that this launch will not share its classes with anyone the java vm allows different processes to share the same loaded classes unless this flag is set if you aren t using the sun oracle vm get rid of this argument the other ones are there for jboss the really important ones i think are dprogram name run bat or run sh if you are running on linux and server you can set the heap and perm gen sizes according to your liking working directory jboss_home bin on my computer this is just c jboss 5 0 1 ga bin this has to be set so that jboss can know where it is running from and resolve all of its own resources if you are wondering how i discovered what all of these arguments should be i did it by inspecting the run bat script that is used to launch jboss the script just sets a bunch of default variables and i used those another thing that you should be aware of is that you need to have your java_home environment variable set to a valid jdk a normal jre might work but depending on the version of your server it may not be able to compile jsps unless you have the jdk i m sure you already knew that but i m just throwing it out there for good measure tweaking the trace that is all you technically need to do to get started now you can just select the run button and start gathering information like you normally would with diver see the diver documentation but there are a few things that you can do to tweak the trace and make sure it is efficient web apps can be slow as it is tracing them introduces i o overhead that we would like to minimize go over to the java trace tab of your configuration and set it up to look something like this first of all you are likely only interested in the things that your web app is doing so i suggest selecting the set filter manually option and adding only the packages that are a part of your web app to the inclusion filters area by default diver will analyze the trace and only watch for methods defined in the project that is named in the main tab of the launch configuration in this launch there is nothing but the jboss launching jar so the analysis would end up being mostly useless unless you set the filters manually i also suggest making sure pause on start and apply filters at runtime are checked pause on start is the default and it just means that none of the start up process of the program will be traced you can define what actually gets recorded in real time using the eclipse debug view as described in the diver documentation older versions of diver 0 2 and earlier recorded absolutely every method call and rejected data based on the defined filters during a separate analysis step since version 3 0 diver allows you to reject that data before it gets stored...
|