Truly Random Numbers

February 24th, 2010

A new approach to generating truly random numbers could lead to improved Internet security and better weather forecasts, according to researchers writing in the International Journal of Critical Computer-Based Systems.

Random numbers are a critical part of computer and Internet security. They allow websites and browsers to encrypt the data sent between them using a session key. Weather forecasters, climate scientists, economists, and epidemiologists also use random numbers to generate simulated data for their predictive models. Such simulations can test theories of hurricane formation, climate change, and the spread of disease epidemics, for instance.

http://www.drdobbs.com/security/223100204

Project Euler

February 1st, 2010

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.

http://projecteuler.net/

Picture-driven computing

January 22nd, 2010

Until the 1980s, using a computer program meant memorizing a lot of commands and typing them in a line at a time, only to get lines of text back. The graphical user interface, or GUI, changed that. By representing programs, program functions, and data as two-dimensional images — like icons, buttons and windows — the GUI made intuitive and spatial what had been memory intensive and laborious.

But while the GUI made things easier for computer users, it didn’t make them any easier for computer programmers. Underlying GUI components is a lot of computer code, and usually, building or customizing a program, or getting different programs to work together, still means manipulating that code. Researchers in MIT’s Computer Science and Artificial Intelligence Lab hope to change that, with a system that allows people to write programs using screen shots of GUIs. Ultimately, the system could allow casual computer users to create their own programs without having to master a programming language.

http://sikuli.csail.mit.edu/

When Developers Work Late, Should Manager Stay or Go?

December 21st, 2009

I had to work late and my manager supported by staying late with me. If he was somewhat technical, he could have asked relevant questions or maybe even offered helpful suggestions. But he hadn’t written code in years – and never in the language I was using. He just slowed me down.

I’m now a manager for a team of developers. It’s getting late one afternoon and a customer calls me up and starts yelling in my ear. Some system we sold them was down and they had to produce reports by the following morning or there would be hell to pay.

Of course I stayed late with my developer to solve this customers’ problem. And guess what? Yep, I hadn’t coded in years and never in the language he had to work with. So I could offer very little in the way of technical guidance.

When a manager tells his developers to work late, should he stay late too?

Eric Spiegel

http://itmanagement.earthweb.com/article.php/3854421/When-Developers-Work-Late-Should-Manager-Stay-or-Go.htm

The Evils of Eval

November 19th, 2009

If you’re a developer who uses JavaScript or if you know one who does, Bryan Sullivan’s got some advice for you. Take a few moments to acquaint yourself with the dangers of eval and its related functions, and learn to better secure your applications from attackers. In this article, he compares the command to other major security issues like buffer overflows, SQL injection, and cross-site scripting.

Bryan Sullivan

http://www.stickyminds.com/s.asp?F=S15558_COL_2

A Finite State Machine Supporting Concurrent States

October 30th, 2009

A finite state machine (FSM) models a predefined number of application states, which are changed (transitioned) according to actions that occur when triggered by runtime events. The FSM serves as a control point for validating state transitions and initiating callbacks.

A typical application will go through multiple states during a runtime session, e.g., RUNNING → PAUSED → RESTARTED, or (in the case of a data entry form) ENTER → VALIDATE → SAVE. The state transitions are initiated by runtime events, such as when a user presses an PAUSE button or hits the ENTER key after entering data in a field. The FSM determines what actions occur when an event is received, and the resulting state. The transition to a new state will invoke a change in the immediate or subsequent behavior of an application.

The article demonstrates how Java enums and EnumSets can be used as a basis to define and validate application states and state transitions

Jeff Lowery

http://today.java.net/article/2009/09/06/finite-state-machine-supporting-concurrent-states

Executing Stored Procedures and Functions From PHP in Windows

October 30th, 2009

Discover how to call stored procedures and functions in MySQL from PHP using three database extensions: MySQL, MySQLi, and PDO.

Stored procedures and functions are a new feature of MySQL 5.0. A stored procedure is a pre-built procedure containing one or more SQL statements stored in the database server.

This article shows how to create a few basic stored procedure and function examples, and call MySQL stored procedures and functions from PHP with the help of some database extensions.

Octavia Andreea Anghel

http://www.devx.com/webdev/Article/42887

AspectJ in Action, Second Edition

October 30th, 2009

To allow the creation of truly modular software, OOP has evolved into aspect-oriented programming. AspectJ is a mature AOP implementation for Java, now integrated with Spring.

AspectJ in Action, Second Edition is a fully updated, major revision of Ramnivas Laddad’s best-selling first edition. It’s a hands-on guide for Java developers. After introducing the core principles of AOP, it shows you how to create reusable solutions using AspectJ 6 and Spring 3. You’ll master key features including annotation-based syntax, load-time weaver, annotation-based crosscutting, and Spring-AspectJ integration. Building on familiar technologies such as JDBC, Hibernate, JPA, Spring Security, Spring MVC, and Swing, you’ll apply AOP to common problems encountered in enterprise applications.

This book requires no previous experience in AOP and AspectJ, but it assumes you’re familiar with OOP, Java, and the basics of Spring.

Ramnivas Laddad

http://www.manning.com/laddad2/

Coders at Work: Reflections on the Craft of Programming

September 11th, 2009

Based on nearly eighty hours of interviews with fifteen all-time great programmers and computer scientists, Coders at Work provides a multifaceted view into how great programmers learn to program, how they practice their craft, and what they think about the future of programming.

Peter Seibel

http://codersatwork.com/

97 Things Every Programmer Should Know

September 11th, 2009

The 97 Things Every Programmer Should Know project collects pearls of wisdom for programmers from leading practitioners. There is no overarching narrative: The collection is intended simply to contain multiple and varied perspectives on what it is that contributors to the project feel programmers should know. This can be anything from code-focused advice to culture, from algorithm usage to agile thinking, from implementation know-how to professionalism, from style to substance, etc.

Sometime around November, 97 contributions will be picked from the Edited Contributions and published in O’Reilly’s 97 Things series, which already includes 97 Things Every Software Architect Should Know and 97 Things Every Project Manager Should Know.

The 97 chosen for the book will be the ones considered not only to be the best individually, but also the ones that fit best together. Every contributor whose contribution goes into the book will be fully acknowledged in the book and will get a complementary copy of the book when it is published.

Kevlin Henney

http://programmer.97things.oreilly.com/

A Design Compass: East Oriented

August 11th, 2009

So you want to design, write and refactor code like a seasoned pro but are unsure of what direction to take and how to navigate around pitfalls and obstacles to get the best results? It would be great if there was a design compass that showed the way to a code shangrila where inversion of control, loose coupling, testability, reuse and more are bountiful.

A design compass does exist and this article will show you how to obtain and use the compass to achieve code that leaves you with time to do other things or just enjoy the tranquility and confidence that comes from having great code that does more. Seasoned professionals may also put the compass to use in finding hidden gems of functionality and dependencies that can be inverted or to help direct design or testing efforts towards a more fruitful result, but whatever your level, a compass can certainly come in handy in getting from place A to B.

James Ladd

http://jamesladdcode.com/?p=12

Become a Better Java Programmer - Learn Something Else

June 23rd, 2009

Do you think it’s a coincidence that 80% of the best Java talent have a moderate to considerable understanding of either Python, Smalltalk, Scala, Lisp, to a lesser extent Erlang, and most recently Clojure? If you answered ‘No coincidence’, perhaps you are in that top tier of talent. If you answered ‘What a coincidence!’, please consider reading on. If you answered ‘What are Python/Scala/etc.?’, definitely read on.

Dave Fecak

http://www.javaworld.com/javaworld/jw-06-2009/061909-better-java-programmer.html

Masterminds of Programming

June 23rd, 2009

Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. Think along with Adin D. Falkoff (APL), James Gosling (Java), Bjarne Stroustrup (C++), and others whose vision and hard work helped shape the computer industry. You’ll find advice you can apply to systems you’re developing, even if you don’t use the specific languages being discussed.

http://oreilly.com/catalog/9780596515171/

Crash Course in Lightweight Code Review

March 23rd, 2009

Most programmers agree that another pair of eyes on your code will uncover bugs and disseminate knowledge across development teams. But many also recognize that peer review can waste a lot of time.

So how do you get started in such a way that you 1) don’t waste time, 2) match the process to your team and your goals, and 3) have a clear way to evaluate results? So many code review techniques exist, and each with pros and cons, so which are right for your team? Even if you’re unwilling to spend the time to review all your code, perhaps spending a little time reviewing a specific subset would be worthwhile.

The only way to know is to try it for yourself. Use these tips to simplify, expedite, and measure the process.

Jason Cohen
http://www.ddj.com/architect/215800147

Welcome to “The Functional Web”

March 23rd, 2009

Despite the fact that FP languages have been around for just about forever in terms of the history of electronic computing - John Mc-Carthy invented Lisp in the late 1950s, for example - they’ve never shared the popularity or usage levels of their imperative counterparts. For years, the majority of industry-oriented developers considered functional languages to be inefficient and suitable only for academic exercises, and the fact that functional language syntax and idioms differed so widely from what practicing programmers were accustomed to did nothing to help these languages gain popularity.

Fortunately, however, FP languages appear to be gaining in popularity for a variety of reasons, most of them centered on different facets of the perpetual themes of performance and efficiency.

Steve Vinoski
http://www2.computer.org/portal/c/document_library/get_file?uuid=2c7ec47f-a29c-4873-b721-88cec5e5646d&groupId=53319