Sunday, October 21, 2007
I’m loving web.py for developing tiny web apps. Here’s how to get it going on a Mac:
sudo port -v install python2.4 py-setuptools mysql5
#coz macports insists on adding a '5' suffix to all mysql5 tools.
sudo ln -s /opt/local/bin/mysql_config5 /opt/local/bin/mysql_config
sudo easy_install web.py cheetah markdown MySQL-python DBUtils
Not the twenty odd steps that’s on the web.py page (that even includes installing and configuring postgresql - bizarre!).
What I love about web.py is that this small bit of code:
#code.py
import web
urls = (
'/', 'index')
class index:
def GET(self):
print "Hello, world!"
if __name__ == "__main__": web.run(urls, globals())
… and running python code.py in a terminal gets you a working dev environment. Even camping doesn’t feel this tiny.
Edit: the performance numbers for this simple action are also very impressive:
time httperf --client=0/1 --server=localhost --port=8080 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --rate=500
httperf --client=0/1 --server=localhost --port=8080 --uri=/ --rate=500 --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=1
Maximum connect burst length: 17
Total: connections 10000 requests 10000 replies 10000 test-duration 20.000 s
Connection rate: 500.0 conn/s (2.0 ms/conn, <=24 concurrent connections)
Connection time [ms]: min 0.1 avg 1.8 max 2987.4 median 0.5 stddev 42.2
Connection time [ms]: connect 0.7
Connection length [replies/conn]: 1.000
Request rate: 500.0 req/s (2.0 ms/req)
Request size [B]: 60.0
Reply rate [replies/s]: min 499.8 avg 500.0 max 500.0 stddev 0.1 (4 samples)
Reply time [ms]: response 1.0 transfer 0.0
Reply size [B]: header 108.0 content 14.0 footer 2.0 (total 124.0)
Reply status: 1xx=0 2xx=10000 3xx=0 4xx=0 5xx=0
CPU time [s]: user 3.75 system 9.17 (user 18.7% system 45.8% total 64.6%)
Net I/O: 88.9 KB/s (0.7*10^6 bps)
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
httperf --client=0/1 --server=localhost --port=8080 --uri=/ --send-buffer=409 3.75s user 9.17s system 64% cpu 20.028 total
That’s 10K connections and more than 500req/s in a 20 sec timeframe. Really good.
Tags: development • mac • python • web • web.py
Comment! |
Permalink
Friday, October 19, 2007
I tried out the new Ubuntu Gutsy today on my mom’s Compaq Presario V3000 (didn’t install, just tried out the LiveCD) and found it to be a really good revamp from the last version. Now WiFi works out of the box, the battery indicator works perfectly, and there’s a bluetooth screen for managing bluetooth devices. The new desktop effects are also pretty cool: I switched from ‘normal’ to ‘extreme’ and found em windows wobbling all over the place. The inbuilt virtual desktop is also smooth and not distracting. While the fonts look a bit too rough, I found web pages very readable in Firefox, and the color theme is also pretty easy on the eyes (although I’d prefer a more colorful default theme). I love the Ubuntu Terminal, it’s much better than the default Mac one.
I can cautiously say that Ubuntu has gotten to the point where a web programmer (a non ASP type) can easily ditch Windows for Linux and not pay the premium for a Mac. There are things the Mac still does better and places where the Mac experience feels a lot more polished, but Ubuntu is closing the gap very fast.
Tags: gutsy • linux • mac • ubuntu
Comments (5) |
Permalink
Thursday, September 27, 2007
My mom and bro gave me a Tata Indicom Plug2Surf for my last birthday (geeky gift, I know. What can I say? They know me too well). It’s only been with me for a couple of days but I’m already addicted to the sweet device. And as usual, set up is as Mac-ish as can be… if you know the proper settings.
-
Start by plugging in your Tata Indicom device. It’s a blocky ugly but functional device that takes up more than its share of USB ports on my Macbook. The small light should change from red to orange and then stay a pale green.
-
Open System Preferences and navigate to Network. A Qualcomm CDMA Technologies MSM device should already be detected. Select that and click Configure.
-
Fill up the settings as in the pic below. The number to dial is #777, the username and password are the same: ‘internet’ (lame!). Be sure to check Save Password to avoid nag screens.
-
Click on the Modem tab and from the list choose the ‘au CDMA 1x WIN W01K’ modem. The default selection will not work. Navigate back to the PPP tab and click Dial Now…
-
You’ll be presented with Internet Connect, the general dialer application for the Mac. I use this for VPN connections as well. Check ‘Show modem status in the menu bar’ and click Connect. It should take under 5 seconds and the dialog will expand to show statistics for the connection.
The tariffs are reasonable. It’s Rs. 2500/- for the device and Rs. 350/ per month (paid like a postpaid bill) for 30 hours of net access a month (overcharges are 25ps for a minute). I have a BSNL plan otherwise, so this is for mobile net. It’s not entirely as plug2surf as the advertisement shows however since on Windows devices, you’ll have to install a driver (provided in a tiny CD). On a mac, you don’t, but you don’t know how much of tariff you’ve used either.
Tags: internet • mac • mobile • plug2surf
Comments (72) |
Permalink
Friday, February 9, 2007
I make my living as a web developer these days and a good “page inspector” tool is an absolute essential. For that reason, I switch to Firefox and the amazing Firebug tool when I write webdev code. I used a recent nightly of Webkit and was pleasantly surprised by its inbuilt Web Inspector. It lists the DOM, the CSS style computation, the box model and some bit of element properties. The interface is amazing, I love the HUD style effect, and it’s much less distracting when the element is shown as the parent in the hierarchy (see the top div in the image above) instead of it being placed in a pageful of tags.
What it still doesn’t do is display any kind of javascript information. The Webkit guys seem to have gone with a separate application called Drosera (which allows people to debug javascript, attach to any Webkit-ish app etc.) and it makes my browser hang badly when attached to it (and hence I couldn’t test and name a verdict).
So my personal feature request list for the Web Inspector would be:
- A Javascript console, watch/breakpoint functionality is not a must, but definitely must have a console.
- A Request/Response Inspector, especially those of XHR Requests.
If I get these two things I’ll switch to Webkit entirely. As it is, I love it’s Mac-iness, but like Firebug too much to let FF go.
(and yeah, what you see in the pic is the Web Inspector inspecting itself. Apparently, it’s written mostly in HTML and JS. Cool!)
Tags: development • mac • web
Comment! |
Permalink
Tuesday, December 26, 2006
Every now and then I find myself defending Apple and its products. Besides the unusual (over here) honor of owning two Apple computers, I’ve not indulged in any obvious Apple fandom. I like their products, and I smile when I hear OS X being compared to Windows.
Regardless, one of the more stupider criticisms of late that I’ve heard is vendor lock-in and how being on OSX somehow locks your data up. This is obviously precipitated by Tim Bray’s unswitch and a couple of other related posts. This is a rebuttal.
OS X is an operating system and it does nothing special to pack your data in and hide it. “Vendor lock-in” occurs probably when you use Apple’s applications. iApps, possibly, or those bundled with the OS. Solution? Don’t use the bundled applications, or use them alongside open data stores. Let’s take my Dock. There’s Adium, which is a port of the opensource Gaim, Skype which is platform independent, Safari, which I use alongside Del.icio.us & Google Bookmarks; Netnewswire, which is an RSS reader and which syncs everything up to Newsgator, the built-in Terminal, ITunes which might take my music ratings along with it (big deal), downloading songs using Transmission, Bittorrent & XTorrent, Textmate which afaik is just a text editor, and Photo Booth, which just takes pictures and stores them as images in my Pictures folder. My email client is Gmail.
Otoh, I use the plethora of opensource tools made available to me through Darwinports: Netstumbler, wget (which is my download manager), curl, and other opensource tools like Neoffice, etc.
I can’t see no vendor lock-in here (sic). Please move on.
Tags: apple • chaff • mac
Comments (5) |
Permalink