Thursday, 8 November 2012

Windows 8 Development Resources

I found following set of resources which gives more in depth knowledge about Windows 8 Development which include metro apps using HTML5 / JavaScript as well.

Here I compile everything into one post for my future reference , hope it might help others as well.


1. Windows 8 Development in 31 Days
    This is series of  blogs by Jeff Blankenburg about windows 8 development, new chapter every day. It is great to follow his tutorial kind of post which small and clear to understand. 

http://www.jeffblankenburg.com/category/31-days-of-windows-8/


2. Programming Windows 8 App With HTML, CSS and JavaScript, a free ebook

http://coolthingoftheday.blogspot.sg/2012/10/windows-8-apps-with-html-css-and.html

Except this http://coolthingoftheday.blogspot.sg/   contains many .net and windows related great stuff coming out every day. Worth to check this blog every day.

3. Windows 8 Design Handbook
     A grade developer guide for designers, a lot of nice things


http://www.windows8designhandbook.com/


These are few of my top reading list at the moment, but you can still find a lot from this site,   compiled a lots of resources into one post, need to look into them as well

http://danrigby.com/2012/11/05/windows-8-developer-links-2012-11-06/


Thanks




Monday, 27 August 2012

Getting start with windows 8 Development

Windows 8 is the MicroSoft's next operating system which will be used innTraditional desktop and laptops, tablets and smart phones. Windows 8 provides a new platform and concepts to develop software and apps, called metro style apps.

This blog post compiles most of the resources needed to start developing applications in windows8 using XAML, C#, C++, HTML5 and JavaScript.

http://www.jeffblankenburg.com/2012/08/24/getting-started-with-windows-8-development/


Saturday, 25 August 2012

Cross platform mobile app using HTML5 , CSS , JavaScript : phonegap SDK

PhoneGap is open source SDK which supports mobile app developement for 7 different  mobile platform including iOS , Andriod and Windows.

PhoneGap enable the developers to write code in open standards using HTML5, CSS and JavaScript and run it on any platform. The PhoneGap manages how to generate the native code for each for the platform on which the app is running.

This is Codeproject article which gives a sample application developed using PhoneGap and installed in three different mobile platforms.







""There has been a growing trend in the use of HTML5 for development of cross-platform mobile applications. This technology allows a developer to write an application using platform-neutral web technologies that can be delivered to a broad range of smartphone devices. This capitalises on modern smartphones generally having highly capable browsers, with good support for HTML5 / CSS3 features.

This article uses Apache Cordova (previously called PhoneGap), an open source framework, that provides a mechanism for packaging HTML5 content (HTML, JavaScript, CSS, images) as a native executable for Windows Phone, iOS, BlackBerry and Android. Cordova also provides a JavaScript interface for native phone functionality that is not accessible using HTML5 technologies (e.g. camera, accelerometer, compass)."

Thursday, 23 August 2012

iPhone & iPad screen sharing over the internet

http://mgalligan.com/post/29978268510/screen-share-iphone-live-on-internetInternet

This is an excellent post about iPhone and iPad screen sharing using Reflection App and Skype or google group.

http://mgalligan.com/post/29978268510/screen-share-iphone-live-on-internet

Wednesday, 22 August 2012

Become a Programmer in 8 weekends, a good experience sharing

This is one of blog I read in recently, I would like share this in my blog space and keep for future reference


To a lot of non-developers, learning to code seems like an impossibly daunting task. However, thanks to a number of great resources that have recently been put online for free - teaching yourself to code has never been easier.
I started learning to code earlier this year and can say from experience that learning enough to build your own prototype is not as hard as it seems. In fact, if you want to have a functioning prototype within two months without taking a day off work, it’s completely doable.
Below, I’ve outlined a simple path from knowing nothing about software development to having a working prototype in eight weekends that roughly mirrors the steps I took.
Reference :

http://tech.yipit.com/2012/08/21/how-i-taught-myself-to-code-in-8-weeks/

Monday, 15 February 2010

Software Re-Engineering for Real- XML Based Framework for Program Analysis Tool

Reference : 
An XML-Based Framework for Language Neutral Program Representation and Generic Analysis.By Raihan Al-Ekram and Kostas Kontogiannis

XML based tools are very useful in re- engineering era, because XML representation of source code gives the flexible way to analysis the high level information about the system using text based source code. XML is easy to understand, portable, open standard, extensible and interoperable. AST which is hierarchical representation of source code and tightly coupled with programming language's grammar. There are various XML based applications are available to represent the source code written in different languages. JavaML, CppML, srcML, PascalML XMLizer, Agile Parsing and GXL are some of them which produce complete or partial ASTs for specific programming languages. Moreover AST abstracts the program at a very fine level of granularity and hence not suitable to be used directly for higher level sophisticated program analysis. For a complete analysis of a source code, we need generic program analysing tool which support various languages and should give ability to analysis high level abstraction such as data flow and control flow among these blocks/components. Dataflow and control flows of a program can be represented using graphs in programming language independent way. Following graphs are some form of representations, used to represent high level abstractions.
Control Flow Graph (CFG) is used to represent the execution paths of program, widely used for code optimization, data flow analysis and testing. Program Dependence Graph (PDG) is used to represent both data and control dependencies, used for code optimization, parallelism and loop fusion. System Dependency Graph (SDG) is an extension of PDG, constructed by connecting individual PDGs using edges. Call Graphs are used to represent relationship between caller and callee in the program procedures for traditional inter-procedural analysis. Program Summary Graph (PSG) is an extension to Call Graph, considering global variables and reference parameters at individual call points.
The following figure shows architectures of “Generic Program Representation Framework” which is based on XML application developed for specific programming languages and concept such as object oriented programming, data flow diagram and control flow etc. It is consist three major abstracted layers. 

1. Source Code:[Layer 0]: Original source text of the program to be analysed.
2. AST Level Representation [Layer1]: First level of abstraction of program in terms of AST of program. [JavaML, CppML, CML, PascalML]. This layer also contains another sub layer which contains Object Oriented Mark-up Languages[OOML] and Procedural Mark-up Language[ProML] which are generic models for represent oriented languages and procedural languages respectively. These models are derived from generalising mark up language model for OO and Procedural languages respectively.
3. Higher Level Representation [Layer 2]: next level of abstractions in terms of intra- procedural and inter-procedural graphs. This layers has two sub layers Layer2.1 represent the basic fact of the program in FactML format, and Layer 2.2 is representation of intra-procedural and inter-procedural dependence and flow graphs of the program expressed as CFGML, PDGML,SDGML and CGML. Where;
FactML is used to represent the building blocks of programs such as classes, association among them using XML and corresponding DTD. These building blocks include Types, Variables, Statements, Functions and association classes. CFGML - CFG is a directed graph indicating basic blocks in program and possible flows of control from one to another. This is also represented using XML and corresponding DTDs. PDGML and CGML are XML representation of PDG and Call Graph. These XML based representations are derived from UML Class diagrams for each level.
Transformation tools are used to convert representation from one level to another level. Transformers may be source code transformer or XML to XML transformers. 

Thanks
TS

Thursday, 7 January 2010

Software Re-Engineering for Real : Legacy Information Systems

Reference:  Legacy Information System
                  By George Bakehouse & Tony Wakefield


A legacy information system (LIS) represents a massive, long-term business  investment. Unfortunately, such systems are often brittle, slow, and non-extensible. Capturing legacy system data in a way that can support organizations into the future is an important but relatively very difficult and expensive. Generally the system which developed in 60’s, 70’s and 80’s are considered as legacy system but these systems are still running in businesses and more  reliable, secure and have lot of priceless information about the business. However owners of these systems are unable to compete in the market due to restricted characteristics.

Organization which are using legacy systems, are unable to invest money on new  project and  technologies, as they have to invest a lot in maintaining legacy  systems. In other hand replacement for legacy systems also very high risk and  high investment project, as they have hold valuable business information with  them. The decision to replace the existing legacy systems is derived by number of  factors such as lack of openness and non-extendable characteristics, they  doesn’t allow to integrate with new systems, and very difficult to adopt new  changes as they have been  deteriorated by continues changes and lack of documentation leads to maintenance programmers to spend more on understanding the system. To be an competitor in market, owners of these  systems should update their systems to meet the new challenges and demands, otherwise they will be affected negatively. Mergers and acquisition of organizations have also impacted on development of legacy system, M&As can result in the need to integrate two or more incompatible legacy systems or to upgrade the systems in the dominant partner to meet the requirements of the new acquisition which cause further replacement of legacy  systems. It is always better to replace the legacy systems when they are no longer productive or beneficial, replacement will give more benefit such as reduced   maintenance costs, improved productivity, and reduced number of staff dealing with system, reduced training time and ability to compete effectively.  Software re-engineering is the methodology to update / replace the legacy systems in more efficient way without lost of information data, document the system by understanding the code and then design and develop the new system with the data gathered. But still it costs a lot as; it is difficult and expensive to find people who are excellent in old technologies as well as newer.

Thanks
TS