« February 2004 | Main | April 2004 »

March 30, 2004

Modifing PHP Wiki Templates

Since it took a little bit to locate the 'logo' template in PHPWiki, I figured I would share what I did to add the logo you see here.

With your text editor open $wiki/themes/default/templates/top.tmpl and edit section you want to change. Even though you have a different theme running (like me MacOSX), PHPWiki always used the same 'default' templates.

Posted by 0xFF3300 at 08:44 PM | Comments (0) | TrackBack

March 28, 2004

Netcraft: ASP.NET Overtakes JSP and Java Servlets

This month, March 2004, according to Netcraft [0] ASP.NET has surpassed JSP and Servlets. First off to understand how the results were tallied, the signature was recorded as follows, ASP.NET - local references to ASP.NET file extensions are found on the front page of the site and JSP/Servlets inplmentations were determined by local references to .jhtml, .jsp, .gsp file extensions, or a local url starting "/servlets". Now I'm sure they may have missed quite a few for sites that are using either Java or .NET HTTP handlers, but I guess it's a start. In addition a great deal of Java websites use Struts [1] and frankly I don't know of many people that still use the /servlets prefix.

[0] http://news.netcraft.com/archives/2004/03/23/aspnet_overtakes_jsp_and_java_servlets.html

[1] http://jakarta.apache.org

Posted by 0xFF3300 at 01:42 PM | Comments (0) | TrackBack

March 26, 2004

Eiffel and the .NET Framework

Eiffel for .NET is a full implementation of the Eiffel method and language running on the Microsoft .NET Framework.

Eiffel is a comprehensive software development environment (ISE Eiffel) based on a method that covers the entire software lifecycle—not just implementation but also analysis, design, and maintenance. The environment is based on the Eiffel language, thoroughly applying the principles of object technology and implementing the concepts of Design by Contract™ to produce highly reliable, extendible, and reusable applications.

ISE Eiffel is particularly geared towards large and complex systems and is used by major organizations in the financial industry, defense, real-time and other industries for mission-critical developments. Universities worldwide also use Eiffel to teach programming and software engineering at all levels.

The .NET Framework is Microsoft's new programming model for building Web applications, smart client applications, and XML Web services—applications that expose their functionality programmatically over a network using standard protocols such as SOAP, XML, and HTTP. The specification of the .NET Framework is now an international standard, thanks to Microsoft's successful submission of the common language infrastructure (CLI) to the ECMA standards organization, which adopted it in December of 2001. (One of the authors, Emmanuel Stapf from ISE, is a member of the corresponding ECMA Technical Committee.) Although a detailed presentation of the .NET Framework is beyond the scope of this article, we may note the following highlights, of special interest to application developers:

The .NET Framework is attractive to Eiffel users since it follows many of the same ideas that they have accepted as essential to quality software development: use of an object model, automatic garbage collection, and exception handling. It also offers an integrated platform with direct access to thousands of reusable components, the prospect of full interoperability with software elements written in both Eiffel and other languages, and the power of XML Web services and other Internet applications.

For .NET Framework users, Eiffel provides the added value of an advanced object-oriented method and language that covers the entire lifecycle—not just programming, but the whole process starting with analysis and design and continuing with implementation, reuse, extension, and maintenance. Eiffel also offers unique reliability mechanisms such as Design by Contract™, advanced language features such as genericity and multiple inheritance, and the extensive body of reusable components developed by ISE and other parties, including the EiffelBase library of data structures and algorithms and the EiffelVision library for multi-platform graphics.

Eiffel on the .NET Framework provides an ideal combination for companies wishing to take advantage of best-of-breed technologies in operating systems, Internet and Web infrastructure, software development methods, and development environments. In particular, the openness of Eiffel to other languages and environments combined with the .NET Framework's emphasis on language neutrality makes the resulting product an ideal vehicle for building applications containing components in many different languages, Eiffel serving as the glue between them. In the rest of this article, we describe this combination and the challenges we faced when integrating ISE Eiffel into .NET.

Posted by 0xFF3300 at 05:16 PM | Comments (2) | TrackBack

March 25, 2004

Microsoft Word, write letterz n...


Posted by 0xFF3300 at 06:37 PM | Comments (0) | TrackBack

March 24, 2004

OpenGL Libraries for C#

Here are a couple of useful C# libraries for working with OpenGL.

Tao Framework - Misc C# wrappers for OpenGL (used by Axiom)
http://www.randyridge.com/Tao/Default.aspx

Axiom - C# 3D game engine for .Net
http://axiomengine.sourceforge.net/

ExoEngine - A C# OpenGL and Cg 3D Game Engine for .NET
http://www.exocortex.org/3dengine/

Posted by 0xFF3300 at 09:12 AM | Comments (0) | TrackBack

March 23, 2004

sendmail relaying on FreeBSD

Since setting up and configuring sendmail can be pure hell for a system administrator, I have found a very well summarized article on setting up proper relayaing configurations, on one my favorite sites, FreeBSD Diary. Check out 'Using smtp from remote locations'.

Posted by 0xFF3300 at 01:02 PM | Comments (1) | TrackBack

March 18, 2004

MyXAML: Open Source XAML

After searching the web to find any usable XAML parser pre-release .NET Framework 1.2, I came across MyXAML. MyXaml is a general class instantiator capable of initializing properties, wiring up events to event handlers, and drilling down into property collections, customizable with inline or code-behind, language non-specific, JIT assembling at runtime. Very cool...

Posted by 0xFF3300 at 09:55 AM | Comments (1) | TrackBack

March 03, 2004

/usr/local/etc/pkgtools.conf

In order to have the mod_php4 port build with the same settings everytime the port is upgraded, the solution is quite simple.

Open /usr/local/etc/pkgtools.conf with your text editor, 'ee' works fine for me.

Go to the MAKE_ARGS section and add the following to the MAKE_ARGS hash. Of course you will want to adjust it to the option you will usually compile.


MAKE_ARGS = {
'www/mod_php4' => 'WITH_BZIP2=yes WITH_CALENDAR=yes WITH_CTYPE=yes WITH_CURL=yes WITH_GDBM=yes WITH_INIFILE=yes WITH_MCRYPT=yes WITH_MYSQL=yes WITH_OP
}

The next time you execute /usr/local/sbin/portupgrade mod_php4 the above parameters will be used to build php4, instead of the configuration screen. Yeah!

This was a follow-up post to my previous rant and is actually a much cleaner solution.

Posted by 0xFF3300 at 04:48 PM | Comments (0) | TrackBack

Storing Previous Compilation Options: mod_php4 and make

This drives me nuts. Everytime I upgrade my mod_php4 port, the config screen pops up and I have to remember what compilation options to check off. I want it to have the same options every time, so when I upgrade I don't need to remember how the port is currently configured. Is there some way to accomplish this?

Location: Kamloops, BC, Canada
You can do this using portupgrade. Read through the configuration files in /usr/local/etc/pkg* and related man pages (portupgrade, pkgtools.conf, and the like).

You need to create an entry for PHP in the pkgtools conf file. portupgrade will check that config file and grab the options from there.

if you have global options that you want to use for everything, you can add them to /etc/make.conf.. like NO_X11=yes is what I use on servers.


If you feel you have to avoid portupgrade (it's a wonderful tool, but
it doesn't work on new machines until you have built it), you can
create a /usr/ports/../Makefile.inc and have it include your own
make.conf.

It would seem that using /usr/ports/Makefile.local would be a good way
to do this; but it is only included during the pre-makefile period of
the build and consequently, won't quite work if the flags you want to
set have to be individual for each port
(e.g. ${CONFIGURE_ARGS}). /usr/ports/../Makefile.inc is included
during both the pre-makefile and post-makefile phases.

Caveat: I have no idea why the ports gurus are including
${MASTERDIR}/../Makefile.inc in /usr/ports/Mk/bsd.port.mk; so I can't
intelligently promise that this mechanism will continue to work.


# -*- makefile -*-
# $Id: Makefile.inc,v 1.2 2002/08/28 15:51:12 ericx Exp $
#
# $Log: Makefile.inc,v $
# Revision 1.2 2002/08/28 15:51:12 ericx
# Check-in for ASC
# Also added comments and emacs directive
#
# Revision 1.1 2002/03/19 15:07:59 asc
# Initial revision
#

# file is loaded up via what may be an oddity in the Mk configuration
# files in /usr/ports/Mk/bsd.port.mk AFTER all the variables are set
# in the various Makefiles. Unlike /etc/make.conf, this gives an
# opportunity to override settings in port Makefiles.

# This requires a flag be set in /etc/make.conf
.if defined(VNIAFTERPORTMK) && ${VNIAFTERPORTMK} == YES

.if exists(/etc/make.conf.vni)
# But if the flag is set, and the file exists, pull it in.
.include
.endif

.undef VNIAFTERPORTMK
.endif

# -*- makefile -*-
# File: make.conf.vni
# Author: Charlie Root, ericx at vineyard.net
# Date: Thu Jan 3 00:34:51 2002
# Time-stamp: <2003-05-18 10:44:51 ericx>
# Description: Setting variable in /etc/make.conf is not optimal
# because those variables are read very early in the
# compilation process and anything can be overridden in
# the various Makefiles embedded in the ports
# system. Nor can variables in /etc/make.conf be set on
# a per-port basis, because at the time it is read
# ${PORTNAME} has not been set.
#
# This file is read in at the END of make's parsing phase
# after all other Makefiles have been
# included. Conditional variables can be can be set
# based on ${PORTNAME} and decisions made by the port's
# maintainer can be overridden.
#
# See also: /etc/make.conf, /usr/Makfile.inc, /usr/ports/Mk
#
#
# $Id: make.conf.vni,v 1.11 2003/05/18 14:56:07 ericx Exp $
# $Log: make.conf.vni,v $
# Revision 1.11 2003/05/18 14:56:07 ericx
# Removed redundant php4 entry.
# Adjusted php4 entry to use port's configure mechanism.
# Removed OpenLDAP2 option because it causes httpd to core dump. No
# idea why.
#
# Revision 1.10 2003/05/14 18:50:04 ericx
# Please be careful. This makefile is NOT exclusive to the ports tree;
# but is used system wide by all compiles including buildworld.
#
# Patched conditionals for mod_php4 and imp3 so they won't barf for
# non-ports compiles.
#
# Revision 1.9 2003/04/23 14:56:22 asc
# Added bugzilla entry.
#
# Revision 1.8 2003/04/18 16:04:18 theqblas
# Added imp3 flags
#
# Revision 1.7 2003/04/18 16:02:44 theqblas
# Added mod_php4 configure args.
#


.if defined(VNIAFTERPORTMK)

HOSTNAME?= /bin/hostname

.if defined(PORTNAME) && ${PORTNAME} == perl

# Updating Ports on Production Servers (p3 of 5)
# Per the INSTALL docs this needs to be a colon-separated
# list of paths. If someone else knows how to do that spanning
# multiple lines, please go nuts.

# Note we are only including the site_perl directories to
# try and prevent any weirdness with the core libraries.

# Note also that we are *not* including the ${PERL_ARCH}
# directory which gets automagically included. Dunno.
CONFIGURE_ARGS+= -Dotherlibdirs=${PREFIX}/lib/perl5/site_perl/5.005

.endif
# End of perl port configs

.if defined(PORTNAME) && ${PORTNAME} == bugzilla
# Need to find some way to patch the default
# patch for checksetup.pl to set webservergroup
# as 'http'. I don't know how to do this; there
# is an entry in bugzilla...
.endif
# End of 'bugzilla'

.if defined(PORTNAME) && ${PORTNAME} == apache+mod_ssl
# We disable the use of apache's built-in expat-lite because it makes
# using anything that uses the XML::Parser package in a mod_perl
# context impossible.
CONFIGURE_ARGS+= --disable-rule=EXPAT
.endif
# End of apache+mod_ssl port configs


.if defined(PORTNAME) && ${PORTNAME} == mod_dav
CONFIGURE_ARGS+= --with-expat=/usr/local
.endif
# End of mod_dav


.if defined(PORTNAME) && ${PORTNAME} == mod_php4
# This is to preempt the interactive menu normally used by the php
# port.

# The mod_php4 port uses PHP4_OPTIONS to set a number of compile
# options (including dependencies). Only setting CONFIGURE_ARGS for
# these skips the dependencies and other make linkages; so unless you
# want to look them all up and do them by hand too, just set
# PHP4_OPTIONS above. The code that runs all this is found in
# /usr/ports/www/mod_php4/scripts/configure.php. No, I don't really
# grok the need for the escaped quotes...
SCRIPTS_ENV+= BATCH=yes
# as of mod_php4 4.3.1, the compile with openldap 2.0 builds ok; but
# the resultant httpd won't run (no errors; just a core)
PHP4_OPTIONS= \
\"zlib\" \
\"mcrypt\" \
\"IMAP\" \
\"IMAP-SSL\" \
\"MySQL\" \
\"OpenSSL\" \
\"XML\" \
\"DOMXML\" \
\"FTP\" \
\"gettext\" \
\"MCAL\"
# \"OpenLDAP2\" \

CONFIGURE_ARGS+= \
--enable-memory-limit \
--enable-safe-mode

# mod_php4
.endif

## IMP flags
.if defined(PORTNAME) && ${PORTNAME} == imp3

# Don't require an IMAP server to exist on this machine
WITHOUT_IMAPSERVER=yes

# imp3
.endif


.if defined(PKGNAMEPREFIX) && ${PKGNAMEPREFIX} == p5-
# this is a context for (hopefully) all perl5 modules
MAKE_ARGS+= UNINST=1
#.error the var = ${CONFIGURE_ENV}
.endif
# p5- modules


.endif
# End of VNIAFTERPORTMK

Posted by 0xFF3300 at 01:13 PM | Comments (2) | TrackBack

March 01, 2004

Music Industry Unveils New Piracy-Proof Format

Music Industry Unveils New Piracy-Proof Format: A Black, Plastic Disc With Grooves On It

Music bosses have unveiled a revolutionary new recording format that they hope will help win the war on illegal file sharing which is thought to be costing the industry millions of dollars in lost revenue.

Nicknamed the 'Record', the new format takes the form of a black vinyl disc measuring 12 inches in diameter, which must be played on a specially designed 'turntable'.

"We can state with absolute certainty that no computer in the world can access the data on this disc," said spokesman Brett Campbell. "We are also confident that no-one is going to be able to produce pirate copies in this format without going to a heck of a lot of trouble. This is without doubt the best anti-piracy invention the music industry has
ever seen."

As part of the invention's rigorous testing process, the designers gave some discs to a group of teenage computer experts who regularly use file swapping software such as Limewire and gnutella and who admit to pirating music CDs. Despite several days of trying, none of them were
able to hack into the disc's code or access any of the music files contained within it.

"It's like, really big and stuff," said Doug Flamboise, one of the testers. "I couldn't get it into any of my drives. I mean, what format is it? Is it, like, from France or something?"

Invention: Teenage computer hackers struggled to access the new disc.

In the new format, raw audio data in the form of music is encoded by physically etching grooves onto the vinyl disc. The sound is thus translated into variations on the disc's surface in a process that industry insiders are describing as 'completely revolutionary' and 'stunningly clever.'

To decode the data stored on the disc, the listener must use a special player which contains a 'needle' that runs along the grooves on the record surface, reading the indentations and transforming the movements back into audio that can be fed through loudspeakers.

Even Shawn Fanning, the man who invented Napster, admits the new format will make file swapping much more difficult. "I've never seen anything like this," he told reporters. "How does it work?"

Pirates: Their days are numbered.

As rumours that a Taiwanese company has been secretly developing a 12 inch wide, turntable -driven, needle-based, firewire drive remain unconfirmed, it would appear that the music industry may, at last, have found the pirate-proof format it has long been searching for.

Posted by 0xFF3300 at 11:37 AM | Comments (1) | TrackBack