-
Detect Replay Attacks in your Web Services
Read more: Detect Replay Attacks in your Web ServicesMany threats that are common to distributed systems are common to Web services as well. There are a few specific threats associated with the Web services processing model, such as: Message replays: An attacker may re-play an entire message or a part of a SOAP message. Man in the middle attack: An attacker may view…
-
Getting Started With Message Queues
Read more: Getting Started With Message QueuesWhen you’re building an infrastructure that is distributed all over the internet, you’ll come to a point where you can’t rely on synchronous remote calls that, for example, synchronize data on 2 servers: You don’t have any failover system that resends messages if something went wrong (network outages, software failures). Messages are processed over time…
-
Developing cross-platform Adobe AIR desktop applications
Read more: Developing cross-platform Adobe AIR desktop applicationsThis weekend I decided to spend some time developing my first cross-platform Adobe AIR desktop application. My first impression of Adobe Air was: Wow! It takes only a few minutes to see how easy and powerful this platform is. What’s great about AIR is that you can build Rich Internet Applications that run across operating…
-
Cloning your Ubuntu Installation
Read more: Cloning your Ubuntu InstallationIt’s always handy to have a complete list of packages installed, specially if you want to create a system that is similar to a different system you have already set up. In this post I’ll cover how you can export a list of installed packages on one Ubuntu system, and import them into another to…
-
Full-text searching with MySQL
Read more: Full-text searching with MySQLMySQL’s full-text search functions provide a simple framework for an easily implemented, approximate site search. Many sites, written in an interpreted language and powered by MySQL, can use MySQL’s full-text search to avoid third party dependencies. The basics of the MySQL full-text search functions are well-documented in the MySQL online documentation. For those lacking patience,…
-
MySQL Master-Master Replication Manager
Read more: MySQL Master-Master Replication ManagerThe MySQL Master-Master replication (often in active-passive mode) is popular pattern used by many companies using MySQL for scale out. Most of the companies would have some internal scripts to handle things as automatic fallback and slave cloning but no Open Source solution was made available. In 2007, the High Performance Group at MySQL AB…
-
Meet Intrepid Ibex, also known as Kubuntu 8.10
Read more: Meet Intrepid Ibex, also known as Kubuntu 8.10Intrepid Ibex is the codename for Kubuntu 8.10, due to be released October 30 2008. The focus for 8.10 for the Kubuntu community will be transitioning to a KDE 4 desktop. The plan is to integrate the existing Kubuntu software while at the same time offering the best out-of-the-box KDE 4 experience around. Intrepid Ibex…
-
Make your site run 10 times faster
Read more: Make your site run 10 times fasterThis is what Mike Peters says he can do: make your site run 10 times faster. His test bed is “half a dozen servers parsing 200,000 pages per hour over 40 IP addresses, 24 hours a day.” Before optimization CPU spiked to 90% with 50 concurrent connections. After optimization each machine “was effectively handling 500…
-
How to Build a Web Hosting Infrastructure on EC2
Read more: How to Build a Web Hosting Infrastructure on EC2Mike Brittain wrote: In the months prior to leaving Heavy, I led an exciting project to build a hosting platform for our online products on top of Amazon’s Elastic Compute Cloud (EC2). We eventually launched our newest product at Heavy using EC2 as the primary hosting platform. We set out to build a fairly standard…
-
Designing a CMS Architecture
Read more: Designing a CMS ArchitectureFrançois Zaninotto wrote: When faced with the alternative between an off-the-shelf CMS or a custom development, many companies pick solutions like ezPublish or Drupal. In addition to being free, these CMS seem to fulfill all possible requirements. But while choosing an open-source solution is a great idea, going for a full-featured CMS may prove more…
-
Seven practices for healthier, faster software development
Read more: Seven practices for healthier, faster software developmentThe practices discussed in this article are based on Ezequiel Cuellar’s observations. These practices will help any software development team as they come up against common obstacles. They will also contribute to a solid foundation for healthier development and help speed up production. The seven practices are: Improve business processes before starting development. Create a…
-
Code Refactoring Guidelines
Read more: Code Refactoring GuidelinesIn software engineering, “refactoring” source code means modifying it without changing its behaviour, and is sometimes informally referred to as “cleaning it up”. Refactoring neither fixes bugs nor adds new functionality, though it might precede either activity. Rather it improves the understandability of the code and changes its internal structure and design, and removes dead…
-
Favour object composition over class inheritance
Read more: Favour object composition over class inheritanceWhat does “favour composition over inheritance” mean, and why is it a good thing to do? Object composition and inheritance are two techniques for reusing functionality in object-oriented systems. In general, object composition should be favoured over inheritance. It promotes smaller, more focused classes and smaller inheritance hierarchies. Troels Knak-Nielsen wrote: Class inheritance is a…
-
Whatever you write today will become legacy
Read more: Whatever you write today will become legacyWhatever you write today will become legacy. Legacy code is often written by people who thought they got it nailed, and later realize that the application is legacy. Not because of the application itself, but because of changes in themselves. “What the hell was I thinking?” Code is always the same, it’s your perception of…
-
Identifying Senior Software Engineers
Read more: Identifying Senior Software EngineersFor HR and legal purposes, most development companies classify Software Engineers into ranks from 1 to 4 (or 5). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you’ll need to classify people accurately with a minimum amount of direct personal exposure: a…
-
6 Different Ways to Testing a Web Service
Read more: 6 Different Ways to Testing a Web ServiceThis tutorial by Charitha Kankanamge takes you through different approaches to testing Web services. There are multiple approaches to invoking Web services, regardless of the platform or technology used to built such services. If a service consumer has access to the contract (WSDL) file of a given Web service, then, that particular service can be…
-
Working with legacy code
Read more: Working with legacy codeMost projects carry some amount of legacy code. You can’t work very fast with a legacy code base, but you can speed it up if you establish a strategy to deal with your existing code and mitigate risk as new development goes forward. What is Legacy Code? Legacy code is code from the past, maintained…
-
Where is the include coming from?
Read more: Where is the include coming from?The includes of the system map out the dependencies of the system, which files depend on which, which subsystem depends on which. When working with a system, it’s always useful to map out the dependencies before hand. Here are some examples: WordPress 2.2.1 http://wordpress.org MediaWiki 1.12 http://www.mediawiki.org/ phpBB 3.0 http://www.phpbb.com/ phpMyAdmin 2.9.1.1 http://www.phpmyadmin.net/ Symfony 1.1…
-
Software Development Cycles
Read more: Software Development CyclesThe inside details of the software development cycle: Programmer produces code he believes is bug-free. Product is tested. 20 bugs are found. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs. Testing department finds that five of the fixes didn’t work and discovers 15 new…
-
14 Ways to Learn From Creative Programmers
Read more: 14 Ways to Learn From Creative ProgrammersProgrammers are a great example of thinking outside the box because, well, programmers can actually create the box. If you’ve ever spent more than two minutes talking with a programmer about his work, you’ll find out very quickly that programmers have a passion for what they do. They eat, sleep and breathe programming. Read more:…
