You can get the latest version from https://leanpub.com/Practical_Eclipse for FREE by choosing the $0 minimum price.
Here is the email I send to my readers:
A personal blog about: transforming Web Application Security into an 'Application Visibility' engine, the OWASP O2 Platform, Application/Data interoperability and a lot more
Showing posts with label Eclipse. Show all posts
Showing posts with label Eclipse. Show all posts
Friday, 12 February 2016
Friday, 30 May 2014
I'm delivering "Writing Secure Java EE Web Applications Training Course" (June 19,20 in London)
Next month I'm teaching a 2 day training course for JBI here in London, on the topic of "Writing Secure Java EE Web Applications Training Course"
As the description mentions (see below), this is going to be a highly interactive course, where I will customise the course depending on the attendees experiences, knowledge and focus.
The cost is £1,500 GBP and if you are interested, you can use the form on this page or ping me directly (so that I put you in touch with the right guys at JBI)
Here is the blurb I wrote for this delivery:
As the description mentions (see below), this is going to be a highly interactive course, where I will customise the course depending on the attendees experiences, knowledge and focus.
The cost is £1,500 GBP and if you are interested, you can use the form on this page or ping me directly (so that I put you in touch with the right guys at JBI)
Here is the blurb I wrote for this delivery:
Labels:
Eclipse,
Education,
O2 Platform
Sunday, 6 April 2014
Workflow to create a new LeanPub book from blogger posts
After creating a number of Leanpub based books, I've come up with a workflow that works quite well for me.
This workflow is based on Managing LeanPub book's Markdown content using Git and GitHub (synced to back to LeanPub via DropBox) which is supported by the following technologies:
This workflow is based on Managing LeanPub book's Markdown content using Git and GitHub (synced to back to LeanPub via DropBox) which is supported by the following technologies:
Monday, 17 March 2014
Published Beta version of "Practical Eclipse Plugin Development" eBook
After releasing the "Practical AngularJS", Practical Git and GitHub and Practical Jni4Net books, here is an equivalent book containing my Eclipse related blog posts.
This new book has 363 pages and is made of 33 blog posts published in the last 9 months.
As with the first release of the other books, I'm starting with the original chronological/published order, and will try later to figure out a better logical way to group these posts together.
The article's Html was converted by LeanPub into Markdown, who also created the eBook versions linked below (pdf, mobi, epub and online)
This new book has 363 pages and is made of 33 blog posts published in the last 9 months.
As with the first release of the other books, I'm starting with the original chronological/published order, and will try later to figure out a better logical way to group these posts together.
The article's Html was converted by LeanPub into Markdown, who also created the eBook versions linked below (pdf, mobi, epub and online)
Sunday, 2 March 2014
Why doesn't Eclipse community stand-up more to IntelliJ?
When I posted to reddit a link to my recent Eclipse Groovy script to remove the 'busy' image from the WebBrowser Editor post, the thread what I hoped would happen would be one around the idea of 'fixing in real time minor (but-very-annoying) issues that exist in the IDEs that we use everyday'
After all, there are very few IDE environments that allow that kind of real-time programatic access to the current running IDE (which allows the creation of new 'plugin-like functionality' without needing to run an 'IDE dev instance' on the background).
For reference, the reason why I took the time to develop the Eclispe Grovy REPL Scripting Environment, was because I did the same on this VisualStudio C# REPL extension, and knew how powerful (and useful) it was to have the ability to 'script the IDE'
Labels:
Eclipse
Saturday, 1 March 2014
Programatically changing an AngularJS scope variable and adding Firebug Lite to an AngularJs app
In this post I'm going to show two really nice tricks that help when developing AngularJS applications:
- adding Firebug Lite to the current browser
- changing the scope value outside a normal AngularJS controller, service or module
Let's say that we are inside Eclipse and have this simple AngularJS app (gist here)
Eclipse Groovy script to remove the 'busy' image from the WebBrowser Editor
Now that I'm doing AngularJS and Firebase development inside Eclipse, there was a little 'thing' that was starting to drive me crazy: The animation icon on the top right of the Eclipse WebBrowser!
Apart from the mosaic 2000s look (which is kinda ok), there is a big problem with pages that keep running for a while: the animation doesn't stop!
This means that if you are developing inside Eclipse, there is this 'thing' (i.e. the top right icon) that keeps moving and demand my brain's attention:
Apart from the mosaic 2000s look (which is kinda ok), there is a big problem with pages that keep running for a while: the animation doesn't stop!
This means that if you are developing inside Eclipse, there is this 'thing' (i.e. the top right icon) that keeps moving and demand my brain's attention:
Friday, 28 February 2014
Using AngularJS in Eclipse, Part 4) Create Components
This is the last of four posts on how to run (inside Eclipse) the examples provided in AngularJS's home page:
- Using AngularJS in Eclipse, Part 1) The Basics
- Using AngularJS in Eclipse, Part 2) Add Some Control
- Using AngularJS in Eclipse, Part 3) Wire up a Backend
- Using AngularJS in Eclipse, Part 4) Create Components
The example covered on this post is the Create Components:
Using AngularJS in Eclipse, Part 3) Wire up a Backend
This is the third of four posts on how to run (inside Eclipse) the examples provided in AngularJS's home page:
- Using AngularJS in Eclipse, Part 1) The Basics
- Using AngularJS in Eclipse, Part 2) Add Some Control
- Using AngularJS in Eclipse, Part 3) Wire up a Backend
- Using AngularJS in Eclipse, Part 4) Create Components
The example covered on this post is the Wire up a Backend:
Using AngularJS in Eclipse, Part 2) Add Some Control
This is the second of four posts on how to run (inside Eclipse) the examples provided in AngularJS's home page:
- Using AngularJS in Eclipse, Part 1) The Basics
- Using AngularJS in Eclipse, Part 2) Add Some Control
- Using AngularJS in Eclipse, Part 3) Wire up a Backend
- Using AngularJS in Eclipse, Part 4) Create Components
The example covered on this post is the Add Some Control:
Using AngularJS in Eclipse, Part 1) The Basics
This is the first of four posts on how to run (inside Eclipse) the examples provided in AngularJS's home page:
I'm doing this on an OSX laptop and the first step was to download and unzip (eclipse-standard-kepler-SR1-macosx-cocoa.tar.gz (32bit version of Eclipse's Kerpler) into the ~/_Dev/_AngularJS folder.
I fired up eclipse, chose the ~/_Dev/_AngularJS/workspace as the workspace root and installed the Eclipse Grovy REPL Scripting Environment 1.6.0 (update site) and Angular-JS Eclipse Tooling (update site) plugins.
- Using AngularJS in Eclipse, Part 1) The Basics
- Using AngularJS in Eclipse, Part 2) Add Some Control
- Using AngularJS in Eclipse, Part 3) Wire up a Backend
- Using AngularJS in Eclipse, Part 4) Create Components
I'm doing this on an OSX laptop and the first step was to download and unzip (eclipse-standard-kepler-SR1-macosx-cocoa.tar.gz (32bit version of Eclipse's Kerpler) into the ~/_Dev/_AngularJS folder.
I fired up eclipse, chose the ~/_Dev/_AngularJS/workspace as the workspace root and installed the Eclipse Grovy REPL Scripting Environment 1.6.0 (update site) and Angular-JS Eclipse Tooling (update site) plugins.
A really SIMPLE and clean AngularJS+Firebase example
As seen on the First PoC of sending TeamMentor's server-side request URLS to Firebase (and seeing it in realtime in an AngularJS page) I created a Simple AngularJS website which I'm very happy with (and I mean Simple with a capital S).
The main reason I really like the solution shown below, is because it represents a number of really nice, clean and Simple solutions for common (complex) problems that exist while developing in Javascript.
The created application is an:
The main reason I really like the solution shown below, is because it represents a number of really nice, clean and Simple solutions for common (complex) problems that exist while developing in Javascript.
The created application is an:
- AngularJS real-time viewer for HTTP requests,
- ... made to an ASP.NET web application (TeamMentor),
- ... captured by an custom C# HttpHandler filter,
- ... submitted to Firebase using its REST API and
- ... pushed back to the AngularJS app using open HTML 5 WebSockets.
Labels:
AngularJS,
Eclipse,
Firebase,
TeamMentor
Eclipse Groovy REPL script to sync a Browser with file changes (with recursive folder search via Java's WatchService)
Since I am using Eclipse to develop using AngularJS (see Creating an Eclipse UI to run AngularJS e2e tests using Karma), I needed a way to refresh the browser window every-time I made changes to any AngularJS related file (note that due to the nature of the AngularJS projects, I need the change to trigger on any change made inside the root folder and all its subfolders).
Since there didn't seem to be an easy way to do this ('auto browser refresh on file changes') in Eclipse, I used the Eclipse Grovy REPL Scripting Environment to develop a script/macro that:
Since there didn't seem to be an easy way to do this ('auto browser refresh on file changes') in Eclipse, I used the Eclipse Grovy REPL Scripting Environment to develop a script/macro that:
- Based on a title of an opened eclipse editor file:
- ... find the full path of that file, and:
- ... create a Java WatchService that monitors the file's folder and subfolders, and:
- ... when a StandardWatchEventKinds.ENTRY_MODIFY is received :
- Create/Open a new Eclipse view with a browser (called Synced Browser), and:
- ...refresh the index page
Tuesday, 25 February 2014
XSS considerations when developing with Firebase
Following my previous post on Using Firebase to sync data with a webpage (via Javascript, REST and Firebase Admin panel), here are a couple security notes and 'areas of concern', that should be taken into account when developing real-time apps with Firebase:
- Firebase will reflect any payloads sent to it
- We are talking about DOM based XSS
- The current browsers XSS protection does not protect against DOM based XSS
- It is very easy to create a vulnerability (as you will see below, all it takes is a simple change from .text() to .html())
- If powerful DOM based API-manipulation frameworks are used (like jQuery), there are many more injection points (sinks)
- By nature of Firebase applications, the XSS exploit will have wormable capabilities (i.e. it will be able to distribute and self-propagate itself VERY quickly)
- Current static-analysis tools will struggle to pick up this type of vulns
Note: I think (and I will want to double check this) that if is safe (i.e OK) to put received Firebase data/payloads, on an AngularJS auto-binded location/variable (for example {{name}} : {{message}} )
Let's use the chat application provided by Firebase to see this in action (note that as you will see below, the chat application as provided by Firebase, is secure and not exploitable)
Using Firebase to sync data with a webpage (via Javascript, REST and Firebase Admin panel)
If you haven't seen the Anant Narayanan presentation on AngularJS conference called Building realtime apps with Firebase and AngularJS you are missing something good.
Firebase really seems to fix one of the pain points that I currently have in client-server development, which is how to send/synchronise data across multiple clients (including the server).
I first heard about Firebase from the Wire up a Backend example that can be found at http://angularjs.org, and today I was able to give it a test drive (since I want to use it on the AngularJS front-ends that I'm currently developing for TeamMentor)
Firebase really seems to fix one of the pain points that I currently have in client-server development, which is how to send/synchronise data across multiple clients (including the server).
I first heard about Firebase from the Wire up a Backend example that can be found at http://angularjs.org, and today I was able to give it a test drive (since I want to use it on the AngularJS front-ends that I'm currently developing for TeamMentor)
Monday, 24 February 2014
Creating an Eclipse UI to run AngularJS e2e tests using Karma
This post shows how I created a nice set of views in Eclipse to quickly see the execution result of AngularJS e2e (end-to-end) tests, without leaving the Eclipse UI.
The image below shows this UI in action, where:
The image below shows this UI in action, where:
- The source code of the test is shown in the Eclipse Java editor
- Just below is the console out of the Karma runner (which is detecting files changes)
- On the top-right is the hooked browser (i.e. the one that will run the tests)
- On the middle-right is the simple AngularJS Hello World page
- On the bottom-right is the debug view of the hooked browser (which is what you get if you click on the Debug Button included on the top-right page)
Friday, 31 January 2014
Eclipse Plugin that allows the execution of REPL Groovy Scripts (in the current Eclipse Instance) and Fluent API for Eclipse+SWT
For the past 6 months I have been working on an Eclipse plugin that implements a Groovy REPL that makes it very easy to learn Eclipse and SWT.
I also started the creation of a fluent API for Eclipse and SWT, in order to reduce the amount of code that needs to be written when creating Eclipse plugins.
The plan is to release the next version of this plugin as an kind of Eclipse Plugin Builder, but it is already quite usable in the current state.
Wednesday, 29 January 2014
Viewing Eclipse and SWT objects (Workbench, Display and Shell) using Groovy's ObjectBrowser and using TeamMentor's Plugin ObjectBrowser
Using the Groovy REPL included in TeamMentor's Eclipse Plugin (see update site and more info here, here, and here) it is possible to view in real time a number of Eclipse/SWT objects (for example the Workbench, Display or Shell )
Using Groovy's ObjectBrowser:
Let's start with Groovy's ObjectBrowser which I used to use just about every day, since it gave me access to a live view of an particular Object's Fields, Properties (from getters) and Methods.
Using Groovy's ObjectBrowser:
Let's start with Groovy's ObjectBrowser which I used to use just about every day, since it gave me access to a live view of an particular Object's Fields, Properties (from getters) and Methods.
Tuesday, 28 January 2014
Eclipse Groovy REPL - Open TeamMentor Article in multiple formats
Part of the new TeamMentor Fortify Eclipse plugin v1.6.0 (update site here, installation instructions here) is a really powerful TeamMentor and Eclipse API which can be easily accessed via the included Groovy REPL.
In this first post (of several in this topic) I will show how to use the APIs to Open TeamMentor Article in multiple formats
The first step is to open the Util - Write Script (TeamMentor DSL) view (which is the name of the provided Groovy REPL) using the TeamMentor menu (note that the Advanced mode features config property needs to be checked, or the Advanced and Debug Features sub-menu will not be visible):
In this first post (of several in this topic) I will show how to use the APIs to Open TeamMentor Article in multiple formats
The first step is to open the Util - Write Script (TeamMentor DSL) view (which is the name of the provided Groovy REPL) using the TeamMentor menu (note that the Advanced mode features config property needs to be checked, or the Advanced and Debug Features sub-menu will not be visible):
Labels:
Eclipse,
Groovy,
TeamMentor
Monday, 27 January 2014
Fixing Coding Signing issue where Eclipse Plugin didn't install in Indigo
As mentioned in the Saga to sign an eclipse plugin with a code cert the problems didn't finish after the plugin was signed OK.
During the final QA stage Roman reported that he was Unable to install plugin on Indigo.
I was able to replicate that issue on a clean install of Indigo, where I got the following error when trying to install the TeamMentor Plugin:
During the final QA stage Roman reported that he was Unable to install plugin on Indigo.
I was able to replicate that issue on a clean install of Indigo, where I got the following error when trying to install the TeamMentor Plugin:
Subscribe to:
Posts (Atom)

