Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

Tuesday, 21 June 2011

App Deployment Tool

Completed the app deployment tool (built as a Windows Presentation Foundation client application) which compiles and deploys (/uploads) an app based on an xml description of the different languages and platforms the app has been built for (where source code for the app can be found, where the app is to be deployed, and so on). Additionally, tool can change version number of app (by declaring the different places in the source code where the version number is specified) as well as change general lines of code and move files around prior to (and as part of) a compile/deploy action.

Technical note: the 'deployment' process is multi-threaded (hence the existence of 'configuration wrapper' classes as well as 'deploy instruction' classes). The 'compilation' process on the other hand is single-threaded.

Description of the two main deploy actions:
GroupAction - Uploads each of the files/directories specified individually from the source locations to the target location, clearing the target of all its contents prior to the upload if this option has been specified.
BuildAction - Builds the gadget/zip from the source files/directories specified (according to the platform the gadget is being built for), naming the build as specified, and then uploads the build to the target location, clearing the target of all its contents prior to the upload if this option has been specified.

Description of the two main compile actions:
AndroidCompileAction - Compiles the Android project found at the project location specified and then moves (and renames) the 'apk' file built from the project's 'bin' folder (which is cleared with each compilation) to the compile rename path specified.
GWTCompileAction - Compiles the GWT project found at the project location specified according to the class paths and modules specified.

Additional actions which can be specified within the above four main actions: ChangeVersionNumberInCode,  ChangeLineInCode, CopyFileAction, CopyDirectoryContentsAction.

Thursday, 9 June 2011

Katana Sales System

Just finished the Katana Sales System for Katana management to keep track of contact/actions with individuals at specific agencies and also to keep track of the different work (case studies) done by the different agencies for the various clients they have worked for. System built using Microsoft Sql Server 2008 (database tables and stored procedures), Microsoft Visual Studio 2010 (data access layer and serving web requests) and Google Web Toolkit (client-side web interface). Built the client-side web app loosely based on the Model-View-Presenter architecture.

Wednesday, 25 May 2011

App Metrics System (Notes)

Some brief notes on the flow of information in the app metrics system I'm working on so that I remember how it works when I come back to it...

(1) An app is selected in the gui from the list of apps/projects that the user has access to.

(2) A request is sent to the server to get the xml config page which contains the css styles and the markup/layout for each of the pages (including the list of widgets contained).

(3) The xml config page is rendered on the gui and for the default ('dashboard') page a request is sent to the server to get the values for each of the widgets.

(4) A subsequent request is sent for widget values is sent to the server for each of the other pages the first time they are selected and also when refreshed.

Tuesday, 17 May 2011

Sql server column and stored procedure data types

Given a table with a column 'postcode' (for example) taking data type 'varchar(20)' and a stored procedure taking parameter '@postcode' of type 'varchar(max)'. Passing a string of length larger than 20 will throw up an exception.

On the other hand, given a table with a column 'postcode' taking data type 'varchar(20)' and a stored procedure taking parameter '@postcode' of type 'varchar(20)'. Passing a string of length larger than 20 will truncate and insert the string no problem.

Monday, 14 March 2011

WeightTracker Localisation Checklist

Checklist of things to do when creating language assets for a new locale upon receiving string and image files:

(1) Android strings: Need to copy in...
(a) '..._helpText_...'
(b) '..._facebookpost_...'
... strings from the gwt strings file, and need to put in...
(c) 'mobile_2_newentry_1_b_2_UK_ONLY_RadioButton' (if missing)
(d) 'url_...'
(e) 'fbpost_...'
(f) 'marketHelpline' (null value if 'mobile_6_options_1_a_5_disclaimer' doesn't have a 'marketHelpline' string placeholder)
(g) 'stones'
(h) 'pounds'
(i) 'kilograms'
... key-value pairs, and need to manually tinker with...
(j) 'mobile_5_goal_2_update_1_a_3_Paragraph' (change placeholder to "{n}")
(k) 'web_6_help_1_a_2_helpText_1' (put in [] placeholder)
strings. See the equivalent English strings for examples.

(2) Android images: Create folders (hdpi, ldpi, mdpi) in language assets for the locale specific images for the language in question.

(3) GWT strings: Need to put in and fix up
(a) 'url_...'
(b) 'region_...'
(c) 'fbpost_...'
(d) 'mobile_2_newentry_1_a_8_feeling'
strings, and remember to combine
(e) 'web_dashboardscreen_e_1_Paragraph_0'
with
(f) 'web_dashboardscreen_e_1_Paragraph_1'
and remove extra sentence (if extra sentence there) from
(g) 'web_homescreen_c_2_Paragraph_0'
string, and remember to add [] text placeholders in
(h) 'web_dashboardscreen_c_1_Paragraph_0'
(i) 'web_6_help_1_a_2_helpText_1'
(j) 'web_3_editgoal_1_a_8_Paragraph' (change placeholder to "{n}")
(k) 'web_3_editgoal_1_b_7_Paragraph' (change placeholder to "{n}")
(l) 'web_homescreen_b_2_Paragraph'
strings. See the equivalent English strings for examples.

(4) GWT Windows: Create folder in language assets to contain
(a) Locale-specific 'docked_bg.png' image.
(b) 'war/WeightTracker_WINDOWS_flyout.html' and 'war/WeightTracker_WINDOWS.html' files. Remember to change 'alli_locale' meta-variable as appropriate.
(c) 'war/gadget.xml' file. Remember to change 'name', 'info url' and 'description' properties as appropriate.

(5) GWT Mac: Create folder in language assets to contain
(a) 'war/WeightTracker_MAC.html' file. Remember to change 'alli_locale' meta-variable as appropriate.
(b) 'war/Info.plist' file. Remember to change 'CFBundleDisplayName' key value as appropriate.

(6) Server facebook resources: Add 'btnFBLogin_xx.png' and 'fbcrossdomain_xx.aspx' for the region (xx) being added, as well as any other images and files required.

When deploying the Android, Mac and/or Windows app/gadget for a particular locale, copy in the required "language assets" to the 'war' folder for the GWT Mac and Windows gadgets and to the 'res' folder for the Android app. Additionally, for the Android app:
(1) Change 'ALLI_LOCALE' variable in 'AlliCore/User.java'.
(2) Change 'CURRENT_REGION' variable in 'AlliCore/User.java'.

Notes for future:
(i) Create string with value "Saving. Please wait..." (and remember to include in translations).
(ii) Create string with value "Account Error" (and remember to include in translations).

Friday, 4 March 2011

WeightTracker app different Web.config files

Web.config - local test
Web.config2 - our online one for our servers/api/db
Web.config3 - our servers; their api
Web.config4 - their servers; their api

Friday, 22 October 2010

Job found...

... alhamdulillah! Got a job with Kickstart Digital. Set to start early January insha-Allah. Lots to learn!

Wednesday, 20 October 2010

Job hunting

Spent a few weeks researching a few companies (Reuters, Autonomy and Accenture notably) and realised it was just taking too long to research companies, apply for a job etc so stuck my CV up last Monday afternoon and I've had back to back calls from recruitment agencies. I've had a few tests/interviews already (with Corefiling, Gloucester Research, Kickstart Digital, Civil Service Technology in Business Fast Stream, Metaswitch, OpenSymmetry) and I'm realising how poor my computing/programming industry knowledge is! If I don't get something by mid next week I'm going to take a time-out for a month or two and get my computing/programming knowledge/abilities up to scratch insha-Allah.

Thursday, 7 October 2010

Governmental uses of technology

eDemocracy - e.g. the websites run by mySociety.org (TheyWorkForYou, FixMyStreet etc).

Opening up government data - e.g. data.gov.uk.

Digital data storage/preservation.

(Note: Post still in progress.)

Tuesday, 5 October 2010

Insight Onsite Tessella Placement write-up

As part of the agreement for participation in the Insight Onsite programme just wrote a short case study about my experience of the placement to go up on Imperial College Careers Service's website, as follows:
The Insight Onsite placement for me was an opportunity to brush up on my software development skills knowing I wanted to move into a software engineering role following completion of my PhD. Moreover, almost four years on from my previous industrial work placement it was an opportunity to get some fresh experience down on my CV and to talk about at forthcoming job interviews. My work placement was with Tessella Plc, an international technology and consultancy firm specialising in R&D. The placement was conducted four days a week over a period of five weeks, allowing me one day a week to continue with PhD commitments. I was delegated a well-defined self-contained assignment as part of a larger project (The Mantid Project) based at Rutherford Appleton Laboratory in Didcot, Oxfordshire aimed at providing a platform which supports high-performance computing on neutron and muon data. The particular assignment delegated to me involved building a central repository system (client- and server- side) by means of HTML, Python, Python Server Pages, MySQL, JavaScript and Subversion (revision control system) for scientists to share and search scripts/algorithms as part of the Mantid Project. The work involved learning and applying the necessary technologies with the help of colleagues as well as working closely with the project manager to ensure user requirements were correctly understood and met within allocated time. As part of the placement I was also given the opportunity to meet and speak with various teams/employees at Tessella’s head office in Abingdon, Oxfordshire to get a broader understanding of the various technology roles on offer and I was even granted the opportunity to sit in on meetings with clients and senior management, which was greatly beneficial. All in all, the placement was a positive experience which I would strongly recommend and which I am thoroughly glad to have partaken in.

Thursday, 16 September 2010

Insight Onsite application

Posting here my response to the question "How do you believe that participation in the Insight Onsite project will further your career planning?" which I forgot to Blog when I sent it off last February prior to my internship at Tessella:
I intend to pursue a career in industry following my PhD which is due to be completed mid-2010. My area of interest is information technology and software development in particular, and I would hope to find myself in a company where I can utilise both the practical and analytical skills acquired during my undergraduate and doctorate degrees. The Insight Onsite placement would be an ideal way to find out more about my options whilst awaiting my final examination. The placement at Tessella specifically offers exposure to a wide range of projects and careers in my area of interest. It would be extremely useful to get a taster for some of the different software engineering and consultancy services Tessella provides, as well as the knowledge and skills I would need and develop working for such a company. In addition, I look forward to meeting and speaking with employees in different positions and roles, and thereby gaining an invaluable insight into work life and the work environment. I would appreciate immensely this opportunity to experience first hand the range of careers I could expect to opt for when applying for a job.
Writing (starting) my first covering letter today!

Sunday, 6 June 2010

Tessella Work Placement

I am starting a one-month work placement at Tessella tomorrow. I will be based at Rutherford Appleton Laboratory working under Nicholas Draper on the Mantid project. The Mantid project is described as follows: "The Mantid project provides a platform that supports high-performance computing on neutron and muon data."