Friday, August 27, 2010

Working from home - experiments

I'd like to draw some attention to a great Apache Karaf post on Ade Trenaman's blog. If you have any interest in Karaf or Servicemix then I'd suggest reading it :)
As this post was intended for talking about experiments, I wanted to post a quick pic of a pair of Dell 1850 1U servers I picked up for trying out new bits of code in Karaf/Servicemix. Fun times driving around town with a pair of 1Us in the trunk of my car - thanks Jon for lending hand saving these machines from the dump.

The following pics are for the benefit of my team mates that ask from time to time what I'm making for lunch - here was today's kitchen experiment:
The dish is composed of Tandoori Chicken, Madras Chick Peas & Lentils, and Buttered Chicken Basmati rice served atop fresh Na'an bread.

Thursday, August 26, 2010

Technology Associations in Newfoundland

After covering various software development studios in Newfoundland, I'd like to end this series of posts with the different technology associations here on the island.
 
Newfoundland and Labrador Association of Technology Industries:

"NATI works to enhance and improve the advanced technology business climate in Newfoundland and Labrador by delivering programs and services that are of value to our membership, providing advocacy on behalf of the sector to ensure a competitive business climate in which to succeed, and deliver positive results to the bottom line of our growing membership.  We will always investigate how we can effectively and efficiently deliver the right services, at the right time, and in collaboration with the right partners."

Strategically, NATI works to provide:

  • Advocate for a favorable business environment in Newfoundland and Labrador;
  • Support research and development, and commercialization of products and services;
  • Facilitate a culture of innovation and export in our growing advanced technology sectors; 
  • Encourage youth to consider science and technology as part of their education and career; and 
  • Influence the process of accessing financial capital to continue to grow our knowledge-based economy.
IEEE Newfoundland and Labrador:

Our local branch of the IEEE - the worlds largest professional association for the advancement of technology. The IEEE NL page contains notices on events and other issues to IEEE members in the province.

CIPS Newfoundland and Labrador:

"We are the association of IT Professionals in Newfoundland and Labrador. Through local programs, our standards of practice and national and international certification, we provide the professional product the IT professional needs to stand out in our industry. "

This group is relatively new in the province, so I haven't had much interaction with them.


High Technology Crime Investigation Association - Atlantic Canada Chapter:

"The High Technology Crime Investigation Association (HTCIA) is designed to encourage, promote, aid and effect the voluntary interchange of data, information, experience, ideas and knowledge about methods, processes, and techniques relating to investigations and security in advanced technologies among its membership. As a not-for-profit organization, the Atlantic Chapter of the HTCIA strives to educate the public on the safe use of technology in their everyday life. The Atlantic Chapter of the HTCIA holds at least one regional security and privacy seminar annually which is open to the public. These education seminars are "vendor neutral", where the technology or issue is discussed rather than specific product lines or services. There are currently 38 HTCIA Chapters around the world with 5 in Canada. "


As noted earlier on this blog, ATL-HTCIA will be hosting a conference this October in St John's. For anyone interested in security it should be a great event. 

ACE-NET:

I've included this group in the association listings as they represent some of the cutting edge research occurring on the island.

"The Atlantic Computational Excellence Network (ACEnet) is a pan-Atlantic network of world-class, High Performance Computing (HPC) Clusters.  ACEnets resources allow researchers in the Atlantic Provinces to be at the forefront of innovation, and to push their work to new heights through collaboration opportunities, instant access to data and ultra high speed computing.
ACEnet Currently operates as a partnership between ten Atlantic Canadian Universities: Dalhousie University, Memorial University, St. Francis Xavier University, Saint Mary’s University, University of New Brunswick, Mount Allison University, Acadia University, University of Prince Edward Island, and Cape Breton University."

Monday, August 23, 2010

Software Development in Newfoundland?

In my previous posts I've talked about web, embedded, and video game development in Newfoundland, in this post I'd like to talk about software development in general. 
Over the years a diverse ecosystem of development shops have established their-selves in the market, making Newfoundland into an IT hotbed of innovation. The industries they serve are varied as the local weather ;) In the following lists I'll highlight a few of the shining stars, with the company descriptions harvested from their respective home pages.


The first group of development shops I'd like to highlight are the pure application studios. These shops have conceived, developed, marketed, and support their application(s) on the global market (for more examples see my previous "* in Newfoundland?" posts):

Verafin:


"Verafin is one of North America's leading BSA/AML Compliance and Fraud Detection software providers. [They were] founded in 2003 by a team of computer engineers with a background in artificial intelligence and pattern recognition. [They] have become recognized as a thought leader for delivering an innovative solution to the financial services industry by introducing unconventional and sophisticated artificial intelligence technologies that traditionally have only been used in the field of science."

Camouflage Software Inc:


"Camouflage Software Inc. has emerged as the global leader in data masking solutions, aiding organizations in meeting their data privacy and security needs. Camouflage, under the Plato Group Inc. banner, was founded in 1997 as a technical and business consulting company. The development of Camouflage® is the main priority of our software technical team. Our developers comprehensive understanding of and experience with databases is why we are database experts. Added to this mix are experienced human personnel in statistics and math with PhD’s and domain expertise who know exactly what they are building."
International Communications and Navigation (ICAN):

"ICAN's head office is based in Mt. Pearl, Newfoundland, Canada. ICAN designs and implements sophisticated navigation and communications software including Electronic Charting Systems (ECS) designed on the IMO specification for ECDIS. The company also provides AIS Infrastructure, consulting services, system design, and project management. ICAN has a US based office in Huntsville, Alabama with additional employees based in Virginia Beach, Virginia, and Sherborn, Massachusetts. The US office provide sales, technical support and administration for US customers of ICAN’s Electronic Charting Systems and related hardware. The operations of ICAN and ICAN Inc. are closely integrated to create a unified ICAN brand in the market."


The next group of shops offer a mixed service of application support and development. Some projects are in-house created, sold, and maintained, while others are in support of their customers unique applications:

Compusult:

"Compusult is an information technology company committed to providing tools and systems that make our lives easier and help us make better decisions when dealing with our environment.
From geospatial data warehousing to information publishing, from asset management and system integration to speech technology and workplace adaptation products, Compusult Limited is a world leader in advanced software solutions and information management systems.
At Compusult, we bring products and services to our customers through innovative teamwork and by placing the highest priority on our clients' requirements. We continually deliver reliable, affordable and feature-rich software and hardware"

ZedIT:

"Established in 1992, zedIT Solutions Inc. (commonly referred to as 'zed') is one of Atlantic Canada's largest IT Consultancies. Headquartered in the heart of Canada's oldest city, downtown St. John's, Newfoundland, zed provides IT Consulting, Systems Design and Development, Application Maintenance and Support, and outsourcing services to our clients in both the public and private sectors. In addition to [their] IT Consulting services, zed also has a product development division. As a certified SAP Software Solutions Partner, zed has developed a suite of web enabled add-on products that fully integrate with the SAP Business One solution."

"Plato Consulting has built a solid reputation as a leading IT solutions provider since 1997. With its corporate headquarters based in Newfoundland and Labrador, Plato consistently helps clients across Canada and throughout North America become more – more efficient, more effective, more streamlined and more successful. Plato is committed to delivering superior IT solutions for our clients.  We strive toward continuous improvement beyond the traditional view of consultancy; our approach is to deliver to clients tangible business outcomes through partnership and collaboration, focusing on our clients' short-term and long-term goals."

Web Development in Newfoundland?

In researching web development in Newfoundland I found myself learning a lot more about what I thought were just web design & development studios. Most of these shops specialize in providing dedicated services to support or promote their clients. The below list is not exhaustive in depth, with the company descriptions harvested from their respective home pages.

Breton Solutions

Has "been delivering professional Web & Multimedia Design, Business Intelligence, SharePoint Services, Web Hosting, Outsourcing, Onsite and Remote Technical Support since 2001."

Applecore Interactive

Provide a wide array of services, including; web design and development, social media optimization, internet marketing, and branding. They are also one of the first interactive agency in Atlantic Canada with ISO 9001:2000 certification. Their also one of the few local companies that engage their clientèle with workshops aimed at educating them on advancements and cutting edge trends in their field.

Bluedrop Performance Learning


"Is one of the most pedigreed training development companies in North America—and with over 17 years in operation, we’ve also got some of the most longevity. Bluedrop was one of the early pioneers that recognized and harnessed the potential of the Internet as a training tool—in fact, when most organizations were still debating the benefits of having a Web site, Bluedrop was working with a multinational pharmaceutical company to develop a clinical trial training system that would work over the Internet. Not only did this successful project represent a first for the industry, it was also among the very first Web-based business and training applications ever developed for a Fortune 1000 company. Since our inception in 1992 as an engineering company, we’ve spent the better part of two decades providing custom content development to our clients. Now we leverage that engineering discipline and custom development expertise to help clients maximize their human capital through effective performance learning." I'd like to add to their description that they have also been listed twice in Progress Magazine’s Top Twenty Places to Work in Atlantic Canada.

Webevolution

Is another Newfoundland based company that specializes in designing and hosting websites for small and medium size businesses. I've included this company as being representative of the many web development firms in the province that provide outstanding service and quality from their highly skilled & talented developers.

Sunday, August 22, 2010

Apache Camel podcast on The Basement Coders

The Basement Coders recently posted a podcast on Apache Camel. The talk is a pretty good introduction to the concepts behind Camel and is worth listening to if your just becoming familiar with the project. They also cover some of the reasons why it's a good idea to use Camel in Servicemix :)

Friday, August 20, 2010

Release-driven Development

The following development pattern is presented as an Anti-Pattern to Test-driven Development. Any development team finding their selves following RDD will be quick to point out that this is not how things should be done, and are working towards a more sustainable model. 

Release-driven Development (RDD) is a software development technique that relies on pushing out software releases as often as possible to satisfy stake holders.
RDD focuses on establishing a release date with one or more critical patches for a particular user, then attempts to stuff as many other updates and patches as possible into that timeline. The particular fit of individual changes do not matter as much as the quantity.

Requirements:

Release-driven Development requires developers to avoid creating system tests in an attempt to fit even more changes to the code base. Developers often create unit tests to help maintain correct behavior as systems change, and to assist in any refactor tasks as their code base evolves. RDD tries to get by with a minimal of test updates, essentially just doing enough to make builds succeed.

Benefits:
  • Releases come out on time, pleasing stake holders.
  • Active release cycle promotes appearance of steady advancement of project.
Vulnerabilities:
  • Unit and System test suites become increasingly irrelevant as they are tweaked just enough to allow builds to pass (see technical debt).
  • Few important issues are resolved per a release.
  • Minor or Trivial issues get resolved faster due to it being perceived as easier to tackle low-lying fruit in tight time line situations.
Notes:

Seen in organizations of all sizes, does not appear to be technology stack dependent.

Chasing Time

Working in open source can be challenging on the global scale. The contributors and committers on any given Apache project can be far spread, touching almost every corner of Earth - some of us even participate while off shore ;)

Logging into one of our IRC chat rooms, our global scale becomes even more apparent. Each morning I log into irc.codehaus.org and join the karaf and servicemix rooms. Normally there are dozens of users & devs actively participating in the EU and Africa, and if I'm online really early there will also be some late night programmers in Asia. Sometime towards noon (my timezone) most of these developers are starting to call it a day and log out while many new users & devs in the Americas are coming online. It's an interesting transition to observe.

Living in Newfoundland the mornings are definitely the toughest time to jump in, my coffee is just poured but the conversations are already in full swing. So if your on IRC and decide to 'ping' hello, please understand if I'm a few minutes before replying 'pong' ;)

Monday, August 16, 2010

Embedded in Newfoundland?

Another industry that has been growing on the island has been the embedded scene. The players in this industry use FPGAs and/or micro-controllers, among other machines, connecting to sensors and other cool bits of kit. The below list is not exhaustive in depth, with the company descriptions harvested from their respective home pages. I hope that this post helps to shed some light for students and other industry professionals on some of the possibilities in this field here in Newfoundland. 

Avalon Microelectronics


"Avalon Microelectronics is a recognized leader in delivering a variety of IP cores for OTN, SONET/SDH and Ethernet applications to Telecom Equipment Manufacturers, Application Specific Standard Product (ASSP) vendors and Optical Test Equipment Manufacturers. Avalon provides silicon-proven, customized IP to accelerate Time-to-Market of Next-Generation Optical Networks.
Avalon's products have been deployed in customer networks worldwide. Our portfolio of Fully-Featured Virtual-ASSP Products includes solutions for network applications ranging from the newly standardized ODU0 up to 40G and 100G. Avalon seeks to reduce the expensive development times associated with FPGA development by providing standardized, hardware-verified solutions that address the needs of quickly evolving Next-Generation Optical Networks."

IDBlue

"IDBLUE is a Radio Frequency Identification (RFID) products and services company offering a range of RFID solutions aimed at the aerospace, oil & gas and industrial markets. For almost 10 years, IDBLUE has delivered end to end auto-ID solutions that provide organizations with enhanced asset and supply chain visibility. A privately held Canadian firm, the company is headquartered in St. John’s, Newfoundland, with presence in Ottawa, Montreal, and Dubai."

Marport

"Marport is a world leader in the design and development of Software Defined Sonar® - a software-centric sonar architecture implemented on reconfigurable embedded hardware.
Software Defined Sonar is an ultra high performance, frequency agile acoustic transceiver platform. The patent-pending system can be configured in runtime to enable multi-mode, multi-band and multi-functional applications for commercial fisheries, underwater defence, offshore energy and ocean science."

Rutter

"Rutter was formed in 1998 to meet the emerging demand for Voyage Data Recorders (VDRs), but our vision has always been larger. Now the world leader in VDR technology, Rutter has diversified our revenue base with expanded product lines, manufacturing capability and multi-disciplinary engineering expertise."


VMTechnology

"Virtual Marine Technology (VMT) is a global provider of small craft training simulators. VMT's simulators combine high fidelity sensory cues with tailored curriculum to enhance small craft training programs. Founded in 2004, VMT grew from the research and development programs of Atlantic Canada's leading maritime institutions at Memorial University, the Marine Institute and the Institute for Ocean Technology."

Tuesday, August 10, 2010

Game development in Newfoundland?

When I was going through my B.Sc. at Memorial there was one industry that really didn't exist here on the island - video game development. This has changed quite recently. Today there are at least four operating video game studios in or around town, with more on the horizon. I've linked these studios in below so that you can explore this growing local industry.

Other Oceans Interactive:

Is the largest of the game development studios to setup shop in Newfoundland. They have a wide variety of game genres and platforms that they have released upon - including titles such as "Dark Void Zero" for DSiWare, "Super Monkey Ball 2" for iphone, "CSI: Deadly Intent - The Hidden Cases" for Nintendo DS, and "Puffins: Island Adventure" also for the DS (a much longer, detailed list of their products & platforms can be found here). 

Bit Trap Studios:

There isn't much that I can write about Bit Trap at this time. They are a very recent addition to the local scene, receiving assistance from the provincial government to help with the establishment of their studio. This being a small town, I know of two awesome former Progress employees joining this venture - I can't wait to see what they produce :)

Source Studios:

A locally developed company, Source Studios was founded in 2007 by a group of computer engineering students from Memorial University. I actually worked with one of the founders of this group, training him in QA/testing procedures at the former Consilient Technologies. Their first title "ProtoGalaxy" is an online, multi-player, space based action-puzzle-adventure game.

Binary Dawn:

Our last company to look at is Binary Dawn. They're a small locally grown and owned operation that released their first title "Through To Iota" in September of 2009. As with the previous group, I worked with one of the founders of this company at the former IONA Technologies. Binary Dawn's current games target the iphone, with their second title "WordUs2" coming soon.

Wednesday, August 4, 2010

Have Sandwich, will program.

I've wrote previously about working from home now that I no longer have a proper office to work from, this is another post on being a programmer outside of the traditional development framework. This time I'd like to share some pics I took of a little hackathon we had today out in Kilbride Newfoundland
Our host made us delicious sandwiches (Pumpernickel bread, dijon mustard, lettuce, tomato, honey smoked ham, roast turkey, cheddar, and provolone cheese) with a side of nachos and all the coffee we could handle.
As a result of this little gathering a Karaf demo for how to re-brand the shell console was added into Karaf trunk :)

Having other people to work with in person is more important that I used to think... just a few months ago if asked I would have thought the complete opposite :S I think having the ability to just pass my macbook over to someone and say 'check this out' is something that I miss when working alone in my little fortress of solitude (dark corner of the basement). The instant feed back loop helps in creating useful little features for our projects. That being said, sharing in great food & drink improves everything too :)

Re-Branding Karaf Shell Console

Various people have requested that we post some sort of demo or guide to re-branding Apache Karaf shell console, so in this post I'm going to do just that.
The process for branding the shell console is relatively simple, all that is required is a branding jar which contains the new branding in a properties file and some edits to the Karaf etc/custom.properties file.

To start we will create a new directory 'branding' and in that folder create a simple pom file that will build our branding jar. The important entry is to export 'org.apache.karaf.branding' in our jar.
We will then create a source directory structure to contain our new branding. The branding itself is kept in a 'branding.properties' file. This is a text file which contains some mark ups for text appearance. The basic layout would be 'src/main/resources/org/apache/karaf/branding/branding.properties'.

After completing the above two steps your branding project should have the following layout:

branding/
branding/pom.xml
branding/src/main/resources/org/apache/karaf/branding/branding.properties

To build the branding jar type 'mvn install'.

To deploy the new branding copy the branding jar inside of the target folder to $KARAF_HOME/lib.

Finally to enable Karaf to use this new branding jar you'll have to edit $KARAF_HOMR/etc/custom.properties to include the following entry:

org.osgi.framework.system.packages.extra = \
org.apache.karaf.branding; \
com.sun.org.apache.xalan.internal.xsltc.trax; \
com.sun.org.apache.xerces.internal.dom; \
com.sun.org.apache.xerces.internal.jaxp; \
com.sun.org.apache.xerces.internal.xni


The demo described above has been included in trunk and should appear in the next release of Karaf.

Sunday, August 1, 2010

Apache Community Development project Local Mentors Program

Hi All, 


I'd like to draw some attention to a new program the Apache Software Development project is working on to improve Apache community involvement. I've copied in a portion of the email sent to all Apache committers below so that more of an audience can become aware of this program.


"Some of you may have heard of the Apache Community Development project, but for those of you who haven't, our aim here is to help newcomers to The Apache Software Foundation take their first steps on their way to being a part of our community.

As part of this, we've set up a new program - the Local Mentors Program, which aims to help people new to open source have a quick chat with someone more experienced who happens to live near them.


If you're a new committer:
If you'd like to learn some more about how the ASF works, discover how other projects have solved problems you might be having, get tips on contributing, or even just see your first friendly face from the ASF, then please use the local mentors program to find someone near you! Once you've identified someone near you, drop them a quick email, and hopefully meet them for a pint / coffee / etc and a chat. You might want to wait a few days for more people to sign up though!

If you're an existing committer:
Remembering back to when you first got involved in Apache, you may recall it a little daunting, you may have had some fun with timezones or language barriers, or just with how to get more involved. With that experience in mind, we'd love it if you could take the odd hour to enjoy a drink with someone near you who's in a similar situation at the moment!"