All posts by Andrew Palczewski

Website Security Vulnerabilities: Cookies

CookiesIn the dark ages before the rise of the Internet, application security had once been a comparatively minor concern in software development lifecycle.  Most programs were completely internal to a company, and unavailable to public access through telephone or modem.  A large portion of applications had no network connectivity whatsoever, and resided solely inside a user’s PC.  In this environment, junior developers could rarely cause serious damage to the IT infrastructure.  While a foolish mistake could delete an important table or database, these errors were relatively easy to fix through a restore operation, and security permissions helped make this a rare occurrence.
Continue reading

RSS Twitter LinkedIn Facebook Email

Software Design Patterns in C#

Design PatternsYet another series of design patterns in C#? Has the world not seen enough dry and thoughtless regurgitations of the GoF? Yes and no.

What started out as a thoughtful attempt to categorize good principles of software design by a roving band of computer scientists named the “Gang of Four” has turned into the poster child of the Bloated Code movement. Vexilla Regis prodeunt Inferni. Decorators and Observer patterns for all!
Continue reading

RSS Twitter LinkedIn Facebook Email

Multilingual Web Architecture

Multilingual Web DesignWhen developing websites for global brands, a key component of a site’s success is its multilingual and region-based capabilities. Global sites need to appeal to audiences across national and cultural borders, targeting their brand and marketing approach to the needs and personalities of the local audience.
Continue reading

RSS Twitter LinkedIn Facebook Email

Simply Integrating Open Source Packages

MagicAh, the tempting lure of open source packages. The El Dorado of software development, open source packages promise all of the advanced features users crave with absolutely none of the cost. The software is often even free to modify to suit any need – all we need is for that obstinate developer to simply tweak it to our application – what is their issue against using open source software anyway?
Continue reading

RSS Twitter LinkedIn Facebook Email

Networking Fundamentals Part 3 – The TCP Protocol

TCP ProtocolIf the IP protocol is considered the backbone of the Internet, TCP is heart and veins that bring it to life. As the primary protocol used by most of the Internet, from web browsing, to database access, to many multimedia applications, TCP lets computers talk to each other, and makes sure that the message gets through reliably.
Continue reading

RSS Twitter LinkedIn Facebook Email

Meta Languages vs Programming Languages

Meta LanguageProgramming is one of the few practices where, in addition to using tools to accomplish an end, individuals can also use tools to create more tools.  Through re-usable functions, libraries, and development frameworks, developers are able to simplify both present and future development, reducing unnecessary overhead and streamlining maintenance and updates.
Continue reading

RSS Twitter LinkedIn Facebook Email

Refactoring Complicated, Bad Code

RefactoringOne of the most difficult challenges in programming is fixing someone else’s bad code. This situation can often happen when taking over maintenance of existing software from a different company with inexperienced developers. While writing good code by itself is difficult enough, fixing previously written bad code requires first wading through the code in every execution scenario, and then writing replacement code that accomplishes the same results. Although this process often takes several times as long as initially writing a good version of the program, refactoring a key function or form can reap significant return on investment throughout the course of system support.
Continue reading

RSS Twitter LinkedIn Facebook Email

The Intangibility of Great System Design

Software ArchitectureWith new and hot technologies skyrocketing across the software industry on a regular basis, most of the attention in system development is turned towards tools, development methods, and user experience, as opposed to the software architecture itself. The system architecture, consisting of the software requirements and specifications, database design, and high-level system organization, defines the cohesive vision that guides construction of the software. More than any other factor, the system architecture will define the reliability, maintainability, flexibility, and scalability of an application.
Continue reading

RSS Twitter LinkedIn Facebook Email

Review: A Model-Based Approach for Crawling Rich Internet Applications

Cube SearchResearchers at the University of Ottawa and IBM have developed a new search engine crawler for the Deep Web of AJAX applications. Indexing most modern AJAX web apps can be a challenge, since the state of the page is based on much more than just the URL – it is also based on the server state, client JavaScript state, cookies, and the DOM, or document object model that defines the page’s HTML.
Continue reading

RSS Twitter LinkedIn Facebook Email

Searching a MySQL Database for Text

AnalysisWhen maintaining applications built with MySQL, it can sometimes be necessary to search an entire database for a text string. For instance, if a website’s domain name has changed and links in the site’s dynamic content had been hard-coded with the full URL, it can be useful to search the entire database for all occurrences of that particular string.
Continue reading

RSS Twitter LinkedIn Facebook Email