Meta tags:
Headings (most frequently used words):
2012, november, the, what, types, for, thursday, friday, is, more, in, groovy, dsls, contraptions, programming, wednesday, march, 12, 2014, june, 2013, 23, saturday, 17, tuesday, july, 31, april, blog, archive, about, me, unshackling, mylyn, from, desktop, where, memory, leak, this, cloud, thing, lots, of, beer, pizza, and, coding, jsdoc, than, just, documentation, scripted, examples, next, so, using, eclipse, to, make, your, friendly, slides, light, weight, ide, extensibility, custom, lesson, simple, type, record, functions, user, defined, union, node, support,
Text of the page (most frequently used words):
the (80), and (44), you (23), for (20), this (18), are (17), can (17), types (17), scripted (16), that (16), some (14), type (14), eclipse (12), jsdoc (11), from (10), with (10), #function (10), 2012 (9), your (9), andrew (8), eisenberg (8), using (8), more (8), posted (7), talk (7), have (7), code (7), was (7), project (7), march (6), november (6), mylyn (6), here (6), slides (6), like (6), well (6), groovy (6), javascript (6), way (6), all (6), about (5), june (5), blog (5), comment (5), ide (5), projects (5), list (5), but (5), our (5), closure (5), compiler (5), signatures (5), not (5), parameter (5), what (5), hackathon (5), task (5), simple (4), april (4), source (4), into (4), github (4), orion (4), still (4), has (4), there (4), boolean (4), string (4), define (4), return (4), declare (4), annotation (4), defined (4), first (4), just (4), complete (3), february (3), may (3), september (3), july (3), eclipsecon (3), see (3), get (3), light (3), weight (3), dsls (3), comments (3), also (3), should (3), editor (3), use (3), since (3), uses (3), support (3), currently (3), specify (3), number (3), provides (3), information (3), variable (3), record (3), its (3), then (3), param (3), node (3), them (3), dojo (3), ext (3), widget (3), specifies (3), sig (3), optional (3), doc (3), coding (3), were (3), these (3), been (3), working (3), their (3), open (3), thank (3), who (3), programming (3), memory (3), leak (3), back (3), closurewriter (3), developers (3), api (3), october (2), 2013 (2), unshackling (2), desktop (2), 2014 (2), posts (2), looks (2), work (2), something (2), extensibility (2), custom (2), friday (2), available (2), start (2), version (2), zip (2), make (2), early (2), stages (2), features (2), post (2), files (2), help (2), many (2), which (2), annotations (2), recognizes (2), subset (2), kinds (2), combined (2), complex (2), object (2), other (2), examples (2), content (2), assist (2), signature (2), names (2), parameters (2), user (2), one (2), possible (2), point (2), union (2), they (2), interpreted (2), following (2), where (2), example (2), interesting (2), class (2), name (2), will (2), give (2), google (2), next (2), thursday (2), lots (2), beer (2), pizza (2), huge (2), had (2), committers (2), through (2), introduced (2), interested (2), now (2), even (2), hard (2), lot (2), fun (2), presentation (2), cloud (2), during (2), part (2), being (2), around (2), each (2), while (2), references (2), stuck (2), enclosing (2), instance (2), static (2), always (2), useexistingreference (2), time (2), when (2), hosted (2), interact (2), contraptions (2), theme, powered, blogger, view, profile, december, 2009, august, 2010, 2011, archive, subscribe, atom, home, older, conversion, slide, rocket, didn, quite, would, hoped, animations, text, missing, going, better, update, access, play, sample, dsl, descriptors, snapshot, import, two, file, workspace, best, place, questions, answered, mailing, gr8, conf, repository, gr8conf, friendly, tuesday, labels, recently, released, editing, focus, semantically, aware, already, compelling, show, how, provide, inferencing, most, flavors, standard, style, documented, self, consistent, parser, understanding, tags, docs, only, relevant, supported, course, produce, built, optionally, capitalized, breaks, semantics, flexibility, programmers, tolerated, affect, inferred, showing, typing, hovers, navigation, ctrl, click, navigate, definitions, literal, include, ignored, want, recognized, confusion, whatever, finally, dependency, analysis, infer, modules, extremely, helpful, callbacks, obscure, specifying, req, res, meaningful, cases, handle, common, idiom, constructors, qualified, libraries, could, accomplish, possibly, additionally, nice, options, configuration, constructing, likely, upcoming, good, extra, inferencer, often, trouble, recognizing, dynamic, moving, ahead, quickly, feedback, send, message, fork, group, lends, constructor, typedef, var, functions, arg0, arg1, mynum, myobject, window, positional, must, correspond, actual, named, argument, declaration, doctrine, than, documentation, say, second, vancouver, success, several, based, represented, hackers, spread, across, patches, accepted, codebases, three, submission, process, great, social, world, perhaps, new, contributors, become, holding, any, area, feel, free, contact, know, works, doesn, big, leads, helped, helping, newcomers, fixing, bug, bigger, everyone, worked, stayed, late, another, look, photos, tasktop, ian, skerret, flew, ottawa, nieraj, leo, take, moment, relax, getting, started, jdt, saturday, ubc, alumni, download, demo, wrote, came, thing, few, days, ago, tracking, down, yourkit, pointed, vastly, oversimplified, enough, prove, stores, metadata, abstract, syntax, tree, byte, creation, profiler, told, thousands, instances, kept, length, compile, roughly, program, amount, bothered, couldn, figure, out, why, occurred, reference, keeps, pointer, changing, disappeared, java, inner, classes, unless, sure, need, lesson, week, giving, side, really, excited, discussing, public, truly, ground, breaking, became, 2005, revolutionized, manage, over, abundance, though, used, loved, evolving, same, rate, expectations, tend, less, tied, git, command, line, browser, email, tablet, however, demoing, gather, tasks, multiple, repositories, jira, bugzilla, etc, store, server, mix, rest, websockets, allows, build, clients, ways, never, before, hope, coming, wait, until, later, write, proper, bring, gunnar, wagenknecht, wednesday, nifty, things, mostly, aspectj,
Text of the page (random words):
contraptions for programming contraptions for programming this is a blog about some of the nifty things i have been working on mostly i talk about eclipse groovy and aspectj wednesday march 12 2014 unshackling mylyn from the desktop next week at eclipsecon i ll be giving a talk with gunnar wagenknecht on our side project to bring a hosted task list to mylyn this is something that i m really excited about and it will be the first time we are discussing this project in public the mylyn project was a truly ground breaking project when it first became an eclipse project back in 2005 it revolutionized the way that developers work with and manage the over abundance of information in the ide now even though it is still a well used and loved project it has not been evolving at the same rate that developers expectations have since being introduced developers tend to be less tied to their ide using git on the command line github in the browser and email on a tablet however the mylyn task list is stuck in the ide in our presentation we ll be demoing a hosted task list that can gather tasks from multiple task repositories jira bugzilla etc store them on a server and then provides an open api to interact with them the api is open using a mix of rest and websockets and this is the interesting part since the api allows you to build clients that interact with your task list in ways that were never possible before if you re interested i hope you re coming to eclipsecon so you can see our talk if not you ll have to wait until later when i have some time to write a proper blog post about this posted by andrew eisenberg at 9 17 pm 1 comment thursday june 6 2013 where s the memory leak a few days ago i was tracking down a memory leak through yourkit and i was pointed to this code vastly oversimplified but just complex enough to prove my point this code is part of a compiler and stores some metadata on an abstract syntax tree node during byte code creation the profiler told me that there were thousands of closurewriter instances being kept around for the length of the compile roughly one for each closure defined in the program while not a huge amount of memory this bothered me for a while i couldn t figure out why these references stuck around then it occurred to me that each reference to closurewriter useexistingreference class keeps a back pointer to the enclosing closurewriter instance by changing the useexistingreference to static the leak disappeared what s the lesson in java always always declare your inner classes as static unless you are sure that you need back references to the enclosing instance posted by andrew eisenberg at 9 41 pm 6 comments friday november 23 2012 what is this cloud thing here are the slides from my ubc alumni presentation on programming for the cloud you can also download the demo code that i wrote during the talk here on github thank you all who came it was a lot of fun to give the talk posted by andrew eisenberg at 9 32 am 1 comment saturday november 17 2012 lots of beer pizza and coding lots of beer pizza and coding i d say that our second vancouver eclipse hackathon was a huge success we had committers from several eclipse and eclipse based projects mylyn p2 jdt orion and scripted were all represented we had 30 hackers spread across all of these projects currently we have 7 patches that have been accepted into codebases and three more that are working their way through the submission process the hackathon was a great and social way to be introduced into the open source world and perhaps some of these new eclipse contributors can become eclipse committers if you are interested in holding an eclipse hackathon or any hackathon in your area feel free to contact me i now know what works and what doesn t just getting started all working hard nieraj and leo take a moment to relax ian skerret flew all the way from ottawa for us a big thank you to all the project leads who helped and are still helping some newcomers fixing their first bug and an even bigger thank you to everyone who worked hard and stayed up late just to do some coding it was a lot of fun for another look at the hackathon and more photos see the tasktop blog posted by andrew eisenberg at 1 59 pm 1 comment thursday november 1 2012 jsdoc is more than just documentation in scripted recently we released the scripted editor for editing your javascript it s still early stages but our focus on a light weight and semantically aware editor already has some compelling features in this blog post i ll show you how you can use jsdoc in your javascript files to provide scripted with some inferencing help since scripted uses the orion editor most of this jsdoc support is also available in orion there are many flavors of jsdoc and there is no standard but the google closure compiler uses a style that is well documented self consistent and complete we use doctrine as the jsdoc parser which has a complete understanding of the jsdoc annotations of the closure compiler currently scripted recognizes a subset of jsdoc tags type type sig optional doc specifies the type of a variable declaration param type sig param name optional doc specifies the type of a function parameter parameter annotations are not positional they must correspond to an actual named argument of the function return type sig optional doc specifies the return type of a function the docs for the closure compiler specify many kinds of type signatures only a subset are relevant to and supported in scripted scripted recognizes simple types eg window boolean boolean record types eg mynum number myobject function types eg function arg0 string arg1 boolean function return types eg function number and of course type signatures can be combined to produce more complex signatures the built in types boolean number string and object can optionally be capitalized this breaks from the semantics of the closure compiler but provides more flexibility to programmers other kinds of signatures are tolerated but do not affect the inferred type examples with this information we can start showing some examples scripted uses typing information for hovers navigation e g ctrl click to navigate to definitions and for content assist simple type here is a simple jsdoc comment to define a string variable record types using a record type signature you can define the type of an object literal functions you can specify that a variable is a function as well as include its parameter names and return types parameter types are currently ignored for function type signatures it looks like this if you want to declare the types of function parameters then you should be using the param annotation like this user defined types user defined types are recognized as well union types one possible point of confusion is with union types they are interpreted by scripted as whatever the first signature is so in the following is interpreted as a string node support and finally scripted s jsdoc support can be combined with its dependency analysis to infer types defined in other modules this is extremely helpful for node projects where the use of callbacks can obscure the parameter types in the following example by specifying the types of the req an res parameters you can get some meaningful content assist for them what s next there are some more interesting cases that we should handle a common idiom in javascript is to declare constructors using qualified names libraries like dojo and ext js for example you can define a class name in ext js like this ext define scripted widget and in dojo var widget dojo declare scripted widget we could accomplish this using the typedef annotation or possibly the constructor annotation additionally the lends annotation provides a nice way to specify options and configuration for constructing types and will likely make it into an upcoming version of scripted so using jsdoc in your javascript files is a good way to give some extra help to the inferencer which often has trouble recognizing some of javascript s more dynamic features scripted is still in its early stages and is moving ahead quickly we like feedback you can send a message to the google group and fork us on github posted by andrew eisenberg at 9 36 pm no comments labels eclipse javascript jsdoc orion scripted tuesday july 31 2012 using groovy eclipse to make your dsls more friendly here are slides and source code for my talk at gr8conf us 2012 the source code and slides are available as a zip you can also access the slides and source code from the gr8 conf us 2012 github repository to play with the sample projects and dsl descriptors you should start with a snapshot version of groovy eclipse 2 7 1 and import the two projects from the zip file into your workspace the best place to get your questions answered is on the groovy eclipse mailing list posted by andrew eisenberg at 1 02 pm no comments friday april 6 2012 slides light weight ide extensibility for custom dsls in groovy here are my slides from my eclipsecon 2012 talk light weight ide extensibility for custom dsls in groovy update uh oh looks like the conversion to slide rocket didn t work quite as well as i would have hoped and the animations as well as some of the text is missing i m going to see if i can get something better up here posted by andrew eisenberg at 7 15 pm 1 comment older posts home subscribe to posts atom blog archive 2014 1 march 1 unshackling mylyn from the desktop 2013 1 june 1 2012 7 november 3 july 1 april 1 march 1 february 1 2011 11 november 1 september 1 june 3 may 3 april 1 march 2 2010 17 october 2 september 2 august 2 july 1 june 2 may 2 april 1 march 4 february 1 2009 17 december 2 november 3 october 1 september 1 june 2 may 2 march 2 february 4 about me andrew eisenberg view my complete profile simple theme powered by blogger
|