Home Blog Page 1256

Can we boilerplate software architecture?

I have been programming for 12 years commercially now since I was 18 years old and fresh out of college, however I have been programming just for the love of it for close to 20 years.

In the early days I would describe myself as a “furious coder”. I could produce 3,000 lines of code each day (sustained for years), whilst producing slightly less bugs than my colleagues.

After a year or so I noticed that logical separation of code was really important. So I created tiers (usually separated by process) so presentation, business/domain logic (BL), and data access (DAL) were all isolated.

Soon after I realised that separating logic was really really important. So started separating logic not just by tier but by integration (interoperability with remote systems) and implementation (project/customer logic). This created some pretty agile results that responded well to change.

Finally, I started reading about the SOLID design principals and my whole outlook on programming changed forever. I soon realised how hard software architecture actually was. By coding furiously, the “architecture” of each solution was incidental; areas such as exception handling, damage control and overall object responsibility were a constant challenge that I fought daily. I’d often “fix” a bug, only to find that actually all I’d done is push it into another “responsibility realm”.

From then on I started working as Product Director at a security software company (near London, England). My personal focus has since been achieving the best possible software architecture, which could be reused elsewhere (read anywhere). The main challenge for the company was that we had a single software product that spanned retail, government, healthcare and financial verticals – a product that needed to be everything to everyone; for that modularity and the ability to quickly implement new integration code and implementation logic (even logic that conflicted between customers) was a necessity. At this point another separation was key: customer implementation logic needed to be kept separate, especially the parts that customers owned the rights to. Also, modules could then be sold off or made exclusive to a partner, without compromising the product itself.

I realise that there is not always a “one size fits all” for software solutions, but I do believe that all software solutions share similar requirements. They all need:

  • Isolated, configurable “modules” separating tiers, responsibility and customer-specific logic
  • Cross-cutting “aspects” such as logging, error handling, debugging aids (eg. performance counters)
  • A sensible approach to exception handling, including damage control
  • The ability to easily change the behaviour of components once the solution is deployed using dependency injection
  • A way of communicating between modules (M2M) even though modules are highly isolated
  • A way of keeping track of dependencies and a method of avoiding the entourage anti-pattern
  • Configurable workflow logic that defined the movement of data between logical tiers
  • A decision engine that allowed complex rules to be created, affecting the flow of data between modules

To that end, I believe there is probably a way to create a boilerplate architecture that will fit most software projects and I think I am pretty close to achieving the first iteration of this design. This would be platform, framework and even language agnostic.

Most have spent their energies developing new languages, runtimes, IDEs, and frameworks to make new and seasoned programmer’s lives simpler. Agile is a method used to help design and deliver software solutions, but there doesn’t seem to be many projects/principals offering a definitive, practical software architecture boilerplate design that programmers can pick up and run with.

Software architecture is something I find of great interest and as I move into a more senior, management role this is where I am keen to leave a legacy for the next programmers.

Would you agree that creating a boilerplate software architecture design that could be downloaded and used within minutes would be of use to the programming community? Utilizing many other seasoned programmer’s experience (not just my own) all into a single design?

It obviously wouldn’t fit all situations, but I think that catering for the 80%ile would be ambitious but possible.

Something that enforced modularity, AOP, and most importantly: good logical separation of tiers and responsibilities out of the box.

Eventually, boilerplates for various languages/frameworks could be made available, freely for programmers to download and start programming in their chosen language within minutes, possibly even a “module store”, providing integration with remote services or the Internet of Things (ITT), enabling separation between integration and implementation logic.

I’d be really interested in hearing your feedback in the comments below.

5 Top Free TeX Books

TeX is a system for computer typesetting. It is a powerful low-level markup and programming language that creates professional quality typeset text. The system was developed by Donald Knuth at Stanford University with the purpose of enabling anyone to generate high-quality books, and to develop a system that yields the same results whatever computer is used.

The books featured in this article are all available for free, and some of them are released under an open source license. Some of the books are designed for beginners, others help writers fully master the complexities of TeX.

<A HREF=”http://www.linuxlinks.com/article/20150104065331323/TeXBooks.html“>Full article</A>

Idea – A Novice Approach To Linux On The Laptop

Getting a Linux distribution on a laptop can be difficult for the novice user. Because of this we need another approach than installing Linux in a dual boot configuration.

Why not take inspiration from users where they connected a Raspberry Pi to a Motorola Laptop Dock. From this I would say we need a computer on a thumb drive to do something similar.

With USB3 or maybe even with USB2 it should be possible to use the screen, mouse and keyboard on the laptop for the thumb drive computer. Once it is USB connected it would show up as a window in Windows like Virtual Box. Here full screen is an option.

The difference is that it will run full speed on its own hardware. It should even have its own wifi.

So if you have a slow XP computer. You can turn off the internet to Windows for safety and run your attachable Linux device on your laptop.

Here you have a safe way to upgrade your laptop system and an easy way to run Linux on your laptop. Just attach a USB stick.

For more at http://peroglyfer.se

LinuxLaptop

Ringing in 2015 with 40 Linux-Friendly Hacker SBCs

2014 brought us plenty of new open-spec, community-backed SBCs — from $35 bargains, to quad-core powerhouses — and all with Linux or Android support. In May of this year, LinuxGizmos and Linux.com collaborated on a joint survey, asking our readers to choose their favorite open-spec hacker SBCs from a list of 32 that run Linux […]

Read more at LinuxGizmos

How To : Upgrade to Linux Mint 17.1 (Rebecca) from Linux Mint 17 (Qiana)

As we all know, Latest stable version of Linux Mint OS – Linux Mint 17.1, which is based on Ubuntu 14.04 LTS, having a codename Rebecca has been released and is available for download with two desktop environments viz. Cinnamon and Mate. Just like Ubuntu 14.04 Trusty Tahr and Linux Mint 17 (Qiana), Linux Mint 17.1 (Rebecca) will be officially supported till 2019. This tutorial will help you in upgrading to Linux Mint 17.1 Rebecca from Linux Mint 17 Qiana.

Highlights:

  • Fixed 30 Memory leaks and improved responsiveness.
  • Much more customizable and smoother
  • Settings: Background and Theme settings re-designed, added Privacy and Notification settings,
  • Nemo: Nemo toolbar re-designed and much configurable
  • Update Manager: Introcudes grouping of packages to prevent partial or incomplete updates
  • Language Settings: Redesigned the UI which shows more information now.
  • Welcome Screen: Redesigned Login windows preferences, with simpler theme selection.
  • Introduces pastebin command.
  • Kernel: Linux Kernel 3.13 with Ubuntu 14.04 package base.
  • Uses Noto font, by deault.

Read more at YourOwnLinux

Developing history of Huawei optical transmission: 20 years of accumulations

Throughout the developing history of Huawei optical transmission, it is actually a process that bandwidth capacity constantly promoting and business efficiency continuous optimizing, while accompanied by a series of new problems and challenges and solutions generated.

With the rapid development of wireless data, home broadband and leased line services, bandwidth demand continuously rise,optical transmission experienced continuous evolution of technical solutions and network architecture (PDH, SDH, MSTP, WDM and OTN) – compared with PDH system, Huawei SDH not only enhanced capacity and but also improved network efficiency and operation and maintenance; with the development of network IP, SDH gradually evolve to MSTP platform; However, for the trunk line and urban core, the lack of capacity gradually highlighted, so the development of WDM is imperative.

In this process, Huawei adhere to customer-centric, and strive to go beyond, self-dependent innovation. From OTN stage initially to 100G, from super 100G to T-SDN commercial use globally, Huawei experienced 20 years of accumulations in optical transport field, from the “precedency” to “excellence.”

Wearable Electronics Market – Global Industry Analysis and Forecast to 2020

Wearable Electronics are minute electronics devices worn by the consumer which enable wireless networking and mobile computing. The word “wearable technology” refers to any electronic device or product which can be worn by a person to add computing in his action or work and utilize technology to benefit advanced features and characteristics. Wearable electronics may consist of glasses, jewelry, headgear, belts, arm wear, wrist wear, leg wear, footwear, skin patches, and e-textiles.

 

In recent years, there has been lots of research and development going in the field of wearable electronics attributed to their popularity and wide acceptance in global market.

Buy full report: http://www.persistencemarketresearch.com/market-research/wearable-electronics-market.asp

 

The major application market of wearable electronics include, 

 

    • 1) Healthcare and Medical- blood pressure monitors, hearing Aids, continuous glucose monitoring, smart glasses and others 
    • 2) Fitness and Wellness- activity monitors, emotional measurement, foot pods and pedometer, head up display, sleep sensors, smart clothing, smart watches, sleep sensors and others
    • 3) Infotainment- head-up display, hand-worm terminals, head-up display, smart clothing, smart glasses and others
    • 4) Military- head-up display, smart clothing, smart glasses and others

 

North America is the largest market for wearable electronics followed by Europe and Asia Pacific. In the last few years, North America has been witnessing the fastest growth rate; however Asia Pacific region is expected to take over as the fastest growing market in upcoming years.

 

Some of the major drivers of the industry include increasing demand of consumers towards communication, networking, positioning and recognition technologies in compact and portable forms, developments in material science, augmented reality and chip evolution and low power inter device connectivity (Bluetooth 4.0, infra red and NFC). Some of the key challenges for the industry are thermal consideration, negative effect of radiation on human health, and device protection.

 

With the growth of sensors, particularly in the health and medical space, the potential uses of wearable computing technologies are quite extensive. Wearable electronics are expected to increase their adoption levels in different sectors such as health and fitness, gaming, fashion, mobile money, education and transportation.

 

Rising average life expectancy, baby boomers population and larger proportion of patients requiring long term treatment are some of the key drivers in healthcare and medicine segment whereas demands from professional athletes, recreational fitness consumers, and corporate wellness programs are propelling the market of wearable technology in fitness and wellness sector. The ongoing military up gradation programs around the globe such as, the U.S.’s ‘Future Force Warrior (FFW)’, Australia’s ‘Project Wundurra’, Israel’s ‘Integrated Advanced Soldier (IAS)’, and the U.K.’s ‘Future Infantry Soldier Technology’ are expected to increase the overall market share of wearable electronics market in military and defense.    

Some of the key players in the wearable electronics market include Adidas AG, Recon Instruments, Inc., Fibretronic Ltd., Jawbone, Inc., Fitbit, Inc., Nike, Inc. (U.S.), Olympus Corporation, and Weartech s.l, Vuzix Corporation , Google, Inc., Apple, Inc.,By-Wire.Net, Imprint Energy, Inc, Jawbone, Inc., O’neill Wetsuits LIC, Plastic Logic Ltd., Texas Instruments, Inc., Zoog Technologies, Inc., Weartech S.L, Shimmer Research, Inc., Vancive Medical Technologies, Infineon Technologies Ag, Glassup SRL, Eurotech S.P.A, and AT&T, Inc.

 

Request full TOC: http://www.persistencemarketresearch.com/toc/3035

 

Key points covered in the report

  • Report segments the market on the basis of types, application, products, technology, etc (as applicable)
  • The report covers geographic segmentation

      • North America

      • Europe

      • Asia

      • RoW

  • The report provides the market size and forecast for the different segments and geographies for the period of 2010 to 2020
  • The report provides company profiles of some of the leading companies operating in the market
  • The report also provides porters five forces analysis of the market. 

Running Oracle XE 11gR2 in Nova-Docker container on OpenStack RDO Juno (CentOS 7)

Docker image arahman/docker-oracle-xe-11g:latest  allows to build Nova-Docker
Container on RDO Juno running Oracle XE instance, which may be accessed remotely via floating IP assigned to nova instance. Several network configuration files require tuning with Nova system  instance-name and floating IP assigned from neutron external pool.Complete article may be viewed here

Difference between a Hard Link and Soft (Symbolic) Link

This tutorial describes the difference between a hard link and soft (symbolic) link within the unix/linux file system. This tutorial includes examples as well as the commands required to configure a link as well as repair a hanging link.

http://www.dillonhale.com/blog/linux-tutorials/difference-between-hard-link-and-soft-link/

Top Terminal Multiplexer Tools

The phrase ‘terminal multiplexer’ sounds a bit of a mouthful and a large dollop of jargon. Multiplexing is a method of combining multiple data streams into one stream over a shared medium. This gives us a hint of the function of a terminal multiplexer. It is computer software that can be used to multiplex several video consoles. In English? Well, it allows you to make use of multiple separate terminal sessions inside a single terminal. So one terminal session can act like many sessions.

<A HREF=”http://www.linuxlinks.com/article/20141227174048933/TerminalMultiplexerTools.html“>Full article</A>