- Arachno Ruby IDE – Editor and Debugger
via bogle
(categories: ide ruby )
All posts by ajohnson
Links: 1-18-2006
- Dan Creswell’s Weblog: Jini vs. SOAP
I’ve never gotten around to playing with JXTA / Jini, maybe someday..
(categories: jini soap )
Links: 1-17-2006
- AJAX Activity indicators with Rails 0.14.3
Using this as a reminder that the name for this widgets is ‘activity indicator’.
(categories: activity ajax indicator ) - Monkeygrease » Overview
Java servlet filter that gives you the ability to markup an app on the server side.
(categories: bananas greasemonkey java servlets ) - Tooltip.js – Main — Demos
JavaScript library for creating tooltips on both IE and FireFox browsers
(categories: javascript tooltip ) - Download details: Internet Explorer Developer Toolbar Beta
Almost the exact same toolbar as the Web Developer Toolbar in FireFox, except for the inclusion of the ruler tool, which would be worth the price of admission by itself.
(categories: developer ie tools )
Links: 1-11-2006
- Amazon.com Books: Books / New & Used Textbooks
Hopefully I’ll be able to use it this semester for books. The books cost so much at the campus bookstore that you half expect them to throw you a free diamond or something.
(categories: amazon books ) - Lightbox JS
Lightbox JS is a simple, unobtrusive script used to to overlay images on the current page. Would come in handy on product detail pages to show the large image intead of a pop up window.
(categories: dhtml images javascript ) - Microsoft PowerToys for Windows XP
Some cool stuff in here: TaskSwitch shows you a preview of the Window when you do ALT-TAB (which is kind of slow on my machine, so we’ll see, (update: way too slow…)
(categories: microsoft powertoys ) - VideoHelp.com Forum Archive – How to convert .flv (flash video) to .avi or .mpg
Looks like the freeware site is down (probably from too much bandwidth), nonetheless, very useful.
(categories: flash flv ripping video )
ASP, ServerVariables, Server_Name, Windows 2003, IIS6
We’re in the process of upgrading our webservers to Windows 2003 and thus IIS6. One of the issues we ran into was that the Server_Name
key of the ServerVariables collection in VBScript started returning the computer name of the machine rather than the host name of the website. I spent a couple hours googling and found nothing, my recent hire found the hot fix on microsoft.com in about 5 minutes today (which shows how important good google skills are). In short, there’s a security issue with IIS (surprised?) whereby sending a GET request to an IIS web server without sending a host header would result in the web server returning the IP address of the web server in the content location field of the response TCP header. The easy fix is to run:
cscript adsutil.vbs set w3svc/UseHostName false
which modifies all IIS web sites to return the website host name rather than the machine name / IP address when getting the Server_Name key of the ServerVariables collection.
Links: 1-3-2006
- Plus Addressing on wikipedia.com
Useful if you have to test web applications that need require you to create new email addresses all the time.
(categories: + addressing email plus )
Links: 12-14-2005
- dev2dev: Using and hacking Subclipse – the Subversion plugin for Eclipse
I’ve tried this once before and it didn’t work so well.
(categories: eclipse ide subversion )
CIS 552: Database Design
I took the final exam today in my CIS 552 Database Design course. I think I did ok on the exam but more importantly, I learned a lot this semester. I think the main takeway from the course is that it helps to realize that a database application (meaning an application like MySQL, Oracle or SQL Server, not a database instance like Northwind) is more than just SQL, in fact the bottom level of a database management system stack is “just” reading and writing files to the file system, albeit with transactions and atomicity and multiple users and well, a bunch of other stuff but bear with me. See, when you first start out, you do things like SELECT * FROM table
and then you read somewhere how inefficient it is to bring back all the records from your table and so you use SELECT id FROM table
. And then pretty soon you hit a wall where you have a query that takes like 5 seconds to run and you learn about indexes. Well, if you’re like me, you just learn that indexes make things go faster… you might read SQL Server books online and see that an index in SQL Server is a B-tree, but you don’t go any further than that and so you just come away knowing that indexes make your application run fastertm. After that, you read find someone somewhere that says that the order of your selection criteria matters and that you should try and give hints to the query optimizer when in fact, the query optimizer can do whatever the hell it wants with your declarative SQL statement and probably will.
And then you take a class like this and you learn how a database management system stores records in pages and you get to write some code that stores and retrieves bytes to and from said pages, all the while paying attention to the page header which stored (in our case) the page offset, the number of records in the page and a record size / pointer data structure, all of which is just part of a big file. After that you write code that looks up records in an index, which turns out to be a file as well. Finally, you use a block nested loop to process a join query and it turns out that again, you’re just reading bytes from a file system.
So now I understand why the guys at viaweb didn’t use a database (although I’d never go there myself) and I can have a somewhat intelligent conversation about the differences between a linear search, a binary search, an index scan, a B-tree index seek, and a hash index lookup. And oh man do I wish I was a math major in college.
Other cool stuff I saw along the way:
· On the Goodness of Binary Search by Tim Bray
· General Purpose Hash Function Algorithms
· Google SparseHash a project that contains several hash-map implementations in use at Google, with different performance characteristics, including an implementation that optimizes for space and one that optimizes for speed.
· The Anatomy of a Large-Scale Hypertextual Web Search Engine: “Google’s data structures are optimized so that a large document collection can be crawled, indexed, and searched with little cost. Although, CPUs and bulk input output rates have improved dramatically over the years, a disk seek still requires about 10 ms to complete. Google is designed to avoid disk seeks whenever possible, and this has had a considerable influence on the design of the data structures.” (emphasis mine)
SQL Server Group By Datetime
If you’ve ever used SQL Server, you know that there’s no such thing as a Date or Time, only Datetime. According to SQL Server Books Online: “If only a time is specified when setting a datetime or smalldatetime value, the date defaults to January 1, 1900. If only a date is specified, the time defaults to 12:00 A.M. (Midnight).”, which is all is fine and good but it becomes an issue when you want just the date or just the time from a column that stores both. Say for instance that my boss wants to see the number of orders per day over the last couple years to see which days have the most orders (‘cyber monday!‘). Unfortunately, there’s no function called date() or time() which returns just the date portion of the datetime or just the time portion of the datetime:
-- doesn't work...
SELECT date(mydate) as thedate, count(id) as perday
FROM orders
GROUP by thedate
ORDER by perday DESC
Turns out there’s a hack that does though:
SELECT distinct convert(varchar,mydate,111) as thedate, count(id) as perday
FROM orders
group by convert(varchar,mydate,111)
order by perday DESC
Hope that makes your day.
Links: 12-3-2005
- Remote Debugging with Eclipse + Tomcat
The Java Debugger (jdb) is a dynamic, controlled, assignment-based debugging tool. It helps find and fix bugs in the Java language programs both locally and on the server. To use jdb in a J2EE application server you must first launch it with debugging ena
(categories: debugging eclipse tomcat )