Honestly, could IBM make a product any more complicated? To download websphincter for linux and windows requires 9GB of disk
space, thats Gigabyte with a capital G. Core blind me, I'm 17% through the down load and just 139 hours left to go. I'm not
joking, I wish I were, and IBM chooses such clever and meaningful names for the downloads like C18BRML.zip, WTF, I'm sorry I
left my rosetta stone up your asshole. Needless to say, I'm sure more fun will ensue.
I like Fedora/Red Hat it's the only linux distro I've used in the last 5 years, but Core 9 is DOA. Any OS that doesn't
properly start its networking (and I'm not the only one to experience this) doesn't make the grade. I've now down graded to
Core 8 which seems much more stable (is Fedora turning into the Star Trek franchise?) Core 9 looks nice, but I'm going to wait
for 10 after this experience, namely "no networking", start the network via /etc/init.d/network and then login, guess what the
UI doesn't recognize the active network, and I say piss of.
This poor guy is complaining about how hosting sites that offer Microsoft based hosting are more expensive than LAMP, no
really, and herein lies that real proof that MS claims about Windows TCO being lower than Linux are exposted for the marketing
lies that they are.
The killing rates of " Windows Web Hosting " and additional charges for " SQL Server " with many unexplained cache in
calculations, were the main reasons to add frustration in proceeding further with the Microsoft Career.
Via: http://ironruby.blogspot.com/2008/03/windows-hosting-rates-are-killing.html
This isn't the first study I've seen on this topic of productivity is proportional to your screen real estate, but it dows
put a price on this productivity.
Can you see your way to wasting less time? One new study says yes: Organizations that upgrade their employees'
standard-format monitors to widescreen displays can realize productivity gains equivalent to 76 extra work days a year per
worker, as well as annual cost savings of more than $8,600 per staff member, according to a recent survey. (That math assumes a
staffer who makes $32,500 annually.)
CIO: http://www.cio.com/article/194501
The headline: Pythons Will Colonize U.S.
Its global warming Al Gore's fault!
See the link below for source and what is more or less a toy applet to demonstrate sniffing the MAC Address(es) of a machine
from the browser. The HTML illustrates the simplest (albeit hackish) approach for cross browser support. I've tested this with
FF 2.x, IE 5-7 and Safari 3.x on Windows, unfortunately Leopard doesn't support Java 6 yet. This solution will only work with
Java 6, I do no checking in the code for this fact, it's a demonstration after all.
One thing is for sure, IE treats Java as a third class citizen, I've done some timings: FireFox averages 10.5 seconds
to start the Java plugin (which is barely acceptable), but IE is terrible with an average startup time of 31.8 seconds this is
after clicking through the two levels of dialog about how this applet is insecure and may destroy your system, "oh the
humanity" of course this can be turned off, but the default for most folks is to try and scare the pants of you.
You can find the package and source here:
http://www.softwaresamurai.com/Agwego/mac/macaddressapplet-1.0.tar.gz
February 25, 2008 at 06:00 PM ( 2 hours) The board of Trade
|
|
|
Locations Related by Tags
|
|
|
I generally agree with this article, except for the fact that developers should be applying schema
patches in the course of regular development.
Managing change with your database yields a great many benefits. Since the schema change scripts are in source control,
you can recreate your database as it looked at any point in time. Is a customer reporting a bug on build 3.1.5.6723? Pull the
source code tagged or labeled with that version number and run the baseline, then all schema change scripts included in the
tag. You now have the same database and have a much better chance to recreate the bug. Also, changes move from development to
test, and ultimately into production in a consistent, orderly, and reproducible manner.
This is a bad precedent and if you get lazy and don't apply the schema changes to the original schema you're soon going to
run into problems where the only source for table definition will be the database itself, a very bad situation for developers
(that's why you have version control in the first place, tag your schema changes) Yes you need these schema migration files for
production systems and they of course need to be tested, but developers should always be building their development database
from source and never applying schema updates unless they are testing them.
I recently finished working at a place where the DBA had set up such a scheme when I left there were 22 schema updates (that
spanned 7 years) that had to be applied, in some cases the original table definition barely resembled the updated version and
the updates were scattered through 22 different files truly brain damaging.
So in conclusion keep all your DB artifacts in separate files, for me that includes tables, triggers(rarely use them),
indexes, stored procs, ... I would go as far as keeping the schema changes in separate files based on the artifact they are
responsible for updating, all relatively easy to script. ALWAYS UPDATE YOUR BASELINE with the schema changes.
They are still supported but Sun's documentation has gone to pot. There's almost nothing out there describing implementing
applets with Java SE 6. Sure there are a lot of examples with 1.4, but the world has changed modern browsers and W3C have
deprecated the applet tag, and if you're trying to do something like interact with your applet via javascript there's almost
nothing discussing this and of course the old Applet tag is broken in "Modern" browsers, and although there are 20 examples
they all seem to be toys with respect to Web 2.0, namely they are still using the applet tag, thanks for coming out.
Here's what I've come up with for embedding applets and interacting with them via javascript, it's a bit hackish but it has
the cleanest/simplest code I could come up with.
<!--[if !IE]> Firefox and others will use outer object -->
<embed type="application/x-java-applet"
name="mac_address_applet"
width="0"
height="0"
code="com.yourco.MacAddressApplet"
archive="macaddress.jar"
pluginspage="http://java.sun.com/javase/downloads/index.jsp"
style="position:absolute; top:-1000px; left:-1000px;">
<noembed>
<!--<![endif]-->
<!---->
<object
classid="clsid:CAFEEFAC-0016-0000-FFFF-ABCDEFFEDCBA"
type="application/x-java-applet"
name="mac_address_applet"
style="position:absolute; top:-1000px; left:-1000px;"
>
<param name="code"
value="com.yourco.MacAddressApplet">
<param name="archive"
value="macaddress.jar" >
<param name="mayscript"
value="true">
<param name="scriptable"
value="true">
<param name="width"
value="0">
<param name="height"
value="0">
</object>
<!--[if !IE]> Firefox and others will use outer object -->
</noembed>
</embed>
<!--<![endif]-->
Once I've repackaged the applet which "sniffs" the first MAC Address of any interface on your machine, which I guess could
come in handy from time to time.
If you ask me the Java installer is broken, at least from a usability perspective.
Here's a breif list:
-
You have to install demos and samples (I don't want them installed)
-
The installer spawns at least one other installer (this installer doesn't pick up the path from the previous install,
very dum)
-
Even though you want to install things in some place other than "Program Files" the JavaDB is installed
there (idiots)
-
If you grab the Java EE + SD, it doesn't install the JRE, WTF, so I'm not going the other route install the JRE/JDK and
then install Java EE
-
I'm probably going to uninstall JavaDB and download the standalone installer to install it again (sheesh)
-
The JavaDB (any platform) installer isn't one, just a zip, somehow I find this more comforting (but the download page
lists Windows 2000 as one of the options, what is this 1999?)
-
Too many options on their download page Java EE/JDK Update 3/Net Beans blah blah blah http://developers.sun.com/downloads/
Sun, do yourself a favour (and everyone else at the same time) and get your act together.
I've become a big fan of vmware, but if you undersize a virtual disk and need to expand it on Linux, brace yourself for
about an hours worth of work (at minimum.)
Here's the process I eventually followed (this seems way too hard/complicated)
for instance this will size myDisk to 16GB (this size isn't additive it's an absolute size)
-
Now you must boot your virtual machine into DOS or some OS that will recognize your disk, I went the BartPE route and added the vmware scsi driver so it would recognize the
scsi disk. I couldn't find the actual scsi driver on the web fotunately I had a copy of the VMWare Converter which
contains a copy of the drivers. You can follow the instructions at this site but the driver that is offered is incomplete.
-
Once you've booted BartPE start diskpart and issue the following commands:
-
diskpart> list disk
-
diskpart> list volume
-
diskpart> select volumen=n
-
diskpart> extend
-
diskpart> exit
-
Reboot the virtual machine, restarting Fedora (or your brand of Linux)
-
Start the Linux Volume Manager (lvm)
-
Find the physical volume with lvm> pvscan
-
Resize the physical volume lvm> pvresize /dev/sda?
-
Resize the logical volume lvm> lvresize -L 14G /dev/VolGroup01/LogVol00
-
lvm> exit
-
Finally resize your filesystem with (on Fedora, other brands of linux may have a different command):
root# resize2fs /dev/mapper/VolGroup00-LogVol00
-
Sheesh, that was a lot of work, the procedure for windows seems slightly easier, but I couldn't find all this information
easily in one place for Fedora/Linux, good luck.
I've been doing a lot of date related things in Java recently, and having an independent tool to generate sane test data is
very handy.
Try it here: http://www.esqsoft.com/javascript_examples/date-to-epoch.htm
Also includes free Javascript, nice.
Also check out thisother java script date library.
http://www.ajaxian.com/archives/mad-cool-date-library
The original reference is good for near dates but seems to drift quite a bit for dates way in the future. The following link
seems to do a very good job of date caclulations, plus it includes a number of rather unusual calendars and things like
MS-Excel date serial numbers, very handy.
http://www.fourmilab.ch/documents/calendar/
December 03, 2007 at 06:00 PM ( 1 hour) Toronto Board of Trade, 1 First Canadian Place, Toronto, Ontario M5X 1C1
Tonight is Toronto Demo Camp 16, there are still free seats available:
http://democamp.eventbrite.com/
Location
Toronto Board of Trade
1 First Canadian Place
Toronto, Ontario M5X 1C1
Canada
|
|
|
Locations Related by Tags
|
|
|
It is so rare to have an awesome customer service experience; I have to share this one.
I came home Friday night to find my computers in my office all shut off and the damn replace battery alarm beeping every
five seconds on my UPS (highly annoying.) So it was time to order some new batteries, I went to APC(Canada) and ordered the replacement batteries via CDW, and then tried to figure out how to stop the infernal beeping (which took nearly 3
hours and 2 bourbons.) On Monday morning I got a call from a very nice person Natashe informing me that I had placed my order
with the CDW US and not CDW Canada, but that she had canceled my order in the US and placed a new order here in Canada and that
my batteries would arrive tomorrow. This is jaw dropping amazing service as far as I'm concerned, and my batteries arrived
around 10am on Tuesday.
Three cheers for CDW the left hand really knows what the right hand is doing and thanks again.
When debugging ant build scripts (fun wow,) sometimes you want to view the contents of a path reference, this handy hack
does just the trick:
<echo message="${toString:pathref}"/>
It probably also works for other "classes" as well.
After a little more digging around (my ant is a little rusty) the proper way to do this is to convert your path reference to
a property:
<property name="class.path" refid="class.path.ref"/>
Finally a little sugar to print out your classpath in a human readble form:
<!-- pretty print the class path so it is human readable -->
<macrodef name=\"print_classpath\">
<attribute name=\"path\"></attribute>
<attribute name=\"description\" default=\"=== CLASSPATH ===\"></attribute>
<sequential>
<echo>@{description}</echo>
<for list=\"@{path}\" param=\"pathitem\" delimiter=\";\">
<sequential>
<echo>pathitem == @{pathitem}${line.separator}</echo>
</sequential>
</for>
</sequential>
</macrodef>
Note you will need the for loop from ant contrib to use this macro/task
<<taskdef resource=\"net/sf/antcontrib/antlib.xml\" classpathref=\"ant.classpath.tools.lib\">
Given the rate that I'm running accross these little horrors, this may become a regular post.
public static String trimLeadingZeros( String trimString )
{
String retVal = trimString;
boolean nonZeroFound = false;
StringBuffer rtnString = new StringBuffer();
if ( trimString != null ) {
for ( int index = 0; index < trimString.length(); index++ ) {
char c = trimString.charAt( index );
if ( c == '0' && nonZeroFound == false ) {
// skip all leading zeros
} else {
nonZeroFound = true;
rtnString.append( c );
}
}
}
if ( rtnString.length() > 0 ) {
retVal = rtnString.toString();
}
return retVal;
}
Obviously this person doesn't have a degree in computer science or they failed out.
-
The have an empty if statement, what you're not capable of doing the necessary boolean algebra in your head to invert the
conditional, give me a break
-
Hey lets scan every character whether you need to or not, making this O(n) where n is the total number of charaters in
all strings being scanned (sheesh)
-
How many damn variables do you need to do this 5! Could we make this any more complex
-
The real shame is that the JDK doesn't have a general strip/trim function, they have a trim whitespace, so why not
generalize it.
So in about 5 minutes I put a more general version together which O(f(x)) << O(n), in the general case my
version is 2.5 times faster than the horror. For the pathalogical case my versio is only.8 time faster, and for the ideal case
we're 3 times faster. This was all done over 1 million iterations using the same string that was 20 characters long.
public static String trimLeadingChar( String trimString, char trimChar )
{
try {
String tempString = trimString;
int offset = 0;
while( tempString.indexOf( trimChar, offset ) == offset )
offset++;
tempString = tempString.substring( offset );
if( tempString.length() == offset )
return trimString;
return tempString;
} catch( NullPointerException ex ) {
return trimString;
}
}
I'm using a very Pythonic idom here, which is to not care about the NullPointerException, so instead of explicitly checking
for trimString == null, we just catch the excetption and do no harm. I could have made the while loop empty, but frakly I find
that a little bit vulgar.
I ran across this gem today...
static public Date getYesturdaysDate() {
Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24);
return yesterday;
}
All I can say is WTF? How does something like this get through and then hang around without being cleaned up.
This is a great site for getting the measure of your site via a series of very common metrics all in one place. What I
really like, is that WebSiteGrader red flags omissions in your page content and design.
If covers: google, alexa, technorati, yahoo, delicious
See it here: http://www.websitegrader.com/
Seen via Social Media Today
I've been trying to use the YUI web tools and I have to say it isn't easy. So far I haven't been able to get one of their
menu examples to work inside my web app. They work fine in their simple example files, but I haven't been able to incorporate
one of the examples so far. Deeply frustrating, anyways I'll poke around to see if I can find a simpler toolkit or perhaps role
my own if I get desperate enough.
One thing that would be nice, is to have an integration guide for YUI, with emphasis on CSS and Javascript gotcha's. Also
almost every example I look at has a different group of CSS/JS files, and I know that YUI is a quickly evolving toolkit and
that segmenting CSS and JS files makes for better download performance, but both of these factors really steepen the learning
curve.
|
|
|