HNHacker News
TopNewBestAskShowJobs

arete

274 karma · joined May 1, 2007

submissionscomments
arete··on Ask HN: Why are there so few apps being built with JSP?
Recently I started working on a new project using Tapestry 5.1 in GlassFish 3. That particular combination requires replacing GF's StAX lib with a different implementation that Tapestry depends on. Then there's the usual issue of reconciling the 2-3 different logging frameworks that various components depend on, writing the (albeit minimal XML descriptors for the app, web app, EJB, configuring resources in the app server admin console, etc.

It's unlikely you can do all that in minutes, so you're probably talking about copying an existing app template.

Adding a db column requires modifying the entity itself, DTOs, form beans, and of course the relevant JSP/templates. With Rails conventions you'd only modify the pages.

arete··on Ask HN: Why are there so few apps being built with JSP?
I can't speak for PHP but if you follow the usual Rails conventions for db structure, URL layouts, etc then it takes significantly less time to build (and maintain) a Rails site vs Java EE.

Simply collecting all of your Java libraries, frameworks, dependencies, etc and getting them running in your app server can take days. Minor changes like adding a db column can end up touching nearly every layer.

All these costs do have benefits. Java ORMs generate much more efficient queries than ActiveRecord, have more flexible querying, and better fit into existing schemas; JSP engines can render tens of thousands of pages per second; Java app servers are easily clustered; and much more. But most of that isn't something small or medium web apps use, so why pay the price?

arete··on HelloWorld Application For Graph Databases
Thanks for posting this! Do you have any details on how well InfiniteGraph handles very large graphs? I've been looking (casually) at Neo4j but it appears to have a hard limit of 4 billion objects.
arete··on Ask HN: Why should I care about Clojure?
Lisp-style languages give you homoiconicity and macros which allow you to build complex abstractions. For example you can write (with-resource x (do....)) where with-resource handles resource allocation and cleanup. That particular example can of course be done with decorators in Python or blocks in Ruby but lisp macros go further by letting you rewrite code at compile time.

Clojure itself has better solutions to common shared-state concurrency patterns than other lisps (and most languages in general!): efficient persistent data structures, STM, various atomic reference types, etc.

And of course running on the JVM has many benefits: performance via the excellent JIT and GC, high quality libraries, great development and operations tools, and so on.

arete··on Ask HN: Which SSL Cert to Buy?
I usually buy the RapidSSL cert from NameCheap, $10.95/y or less for longer periods. It's single root (unchained) and signed by a very well supported CA cert. The only downside is no subjAltName (which lets you do both www.foo.com and foo.com).

All you really need to know is what the root CA is, because some certs (even expensive ones like Thawte's EV) are signed by newer CAs that aren't present in older browsers, mobile devices, etc. Also extra "features" like > 1024 bit keys often cost more.

arete··on New Core i5/i7 MacBook Pros released
Actually the latest mobile i5 and i7 are both Arrandale variants and support the AES New Instructions:

Core i5 2.53GHz: http://ark.intel.com/Product.aspx?id=43544 Core i7 2.66GHz: http://ark.intel.com/Product.aspx?id=43560

I think the only real difference is clock speed and that the i7 has an extra megabyte of cache.

arete··on Apple Pulls the Plug Completely on ZFS
How about checksums to detect corruption on those fragile spinning disks you're picking up and carrying around the room? Or quick and efficient snapshots, scheduled frequently? This is seriously disappointing, if not surprising.
arete··on Working for startups sucks, you'll be happier working for The Man
Indeed! Never exercise options without a full understanding of preferred vs common stock, and what sort of preferences the founders and investors have. Naive founders may end up signing deals with ridiculous liquidation terms.

Also beware offers of significant amounts of stock in exchange for sticking around for an acquisition. The investors likely know the company won't reach its liquidation preference and thus whatever shares they give you are actually worthless.

arete··on Functional Alcoholics and Github combined SF meetup tonight
Oooh awesome! I'll be there, thanks for the reminder!
arete··on Ask HN: what opensource tools (bin or web) do you use to manage your expenses?
http://wiki.github.com/jwiegley/ledger
arete··on Erlang at Work - Using Erlang to write IM network gateways
Is an open source plugin for a specific jabber server (OpenFire) suitable for use as a gateway that works with any jabber server? I wouldn't think so. Plus the OpenFire plugin is a hodgepodge of 3rd party libraries in various states of neglect.
arete··on Ask HN: Erlang and network connections?
Most operating systems have some highly efficient way of handling many open network connections, for example epoll on linux, kqueue on xBSD, event ports on solaris. These are much more efficient than select() with large numbers of open sockets and the Erlang VM will use the appropriate one for the host OS when run with the +Ktrue option.

The SMP Erlang VM (as of Erlang/OTP R11B, R12B highly recommended) runs, by default, one process scheduler per CPU. So on a dual-core machine you can have two sockets being read from/written to simultaneously. Erlang allows you to program to a very simple model of one Erlang process per socket, with the VM using select/epoll/kqueue/etc to determine which processes have incoming data and are thus runnable.

Native processes use a lot of resources on most operating systems, so you can't use a process-per-socket model. So many web servers use a pool of processes/threads and queue up incoming requests that exceed that limit. Others use relatively few processes and use epoll/kqueue/etc directly.

arete··on What does News.YC think of distributed version control?
I rank distributed version control as one of the most significant advancements in software development in the past decade. Why?

1. Ease of branching and merging.

Branch as often as you want, merge as often as you want, from as many different branches as necessary. The importance of isolating stable releases, bug fixes, experimental features, etc can't be overstated and DVCS makes doing so very easy.

2. Offline use.

All of the popular DCVS provide full functionality within each local repository/branch/whatever. Being disconnected won't keep you from branching or merging, which gets back to #1. It's also very easy to share branches between two laptops for instant mobile collaboration.

3. Ease of sharing changes.

Most DVCS support easy sending of local changes to a project maintainer. This really does make it much more likely that a user will grab a copy of the source, make some improvements, and submit those back to the community. No more messing with diff formats, finding the maintainer's email address, etc.

--

Of all the DVCS, I recommend mercurial (hg) for the best blend of ease of use, performance, portability, etc. Darcs is my real favorite, but currently has issues with conflicts. Bazaar-NG (bzr) looks promising as well. I avoid git like the plague... far too complex and unwieldy for my taste.

arete··on Pulsars are a secure time source
"Nature provides clocks that are oblivious to the malicious intentions of any outside parties. In the case of a remote high-energy system such as a pulsar, this means anybody. Pulsars are many orders of magnitude more accurate than random delays that face attackers on the Internet. If critical Internet servers were synchronized to natural clocks in a secure and timely fashion, they would be immune to attacks that relied on uncertainties in timing."

Forget GPS, syncing your clocks to a pulsar is much sexier!

arete··on ONLamp.com -- An Introduction to Erlang
Joe Armstrong's thesis "Making reliable distributed systems in the presence of software errors" (http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf) is a really excellent introduction to Erlang and the ideas behind it. I'd recommend that, along with "Programming Erlang", to anyone interested in learning Erlang or in simply becoming a better programmer.
arete··on Desktop vs Web for email
Whenever possible I use gnus, primarily for the newsgroup-thread-style UI and editing power of emacs. I also take advantage of its inherent customizability with elisp to handle my different From addresses, conditional BCC, filtering, etc.

I use gmail for low priority traffic like mailing lists, and everything else goes through FastMail (http://fastmail.fm/) which is quite simply the best email host I've ever found. For $40/y you get hosting for 50 domains (and 30 aliases on FM's many domains); SpamAssassin; Sieve filtering; secure IMAP, POP and SMTP; 2GB storage; and a nice web UI which suffices when I'm away from gnus.

arete··on Domain registration
I highly recommend DynDNS for DNS registration and hosting. Their amazing customer service, excellent web interface, and expertise are well worth the higher price.
arete··on Anyone here in phoenix, az?
I am =)
arete··on Debian or Ubuntu for server?
I'd recommend a distro designed for server use, like CentOS. You'll find its packages are a little out of date because they are well tested and known to be stable. The default install is hardened and security updates are prompt. Also automatic updates are pre-configured and just need to be enabled.
arete··on How to host the startup server?
Actually, I've found the performance of my Xen VPS much better than a dedicated server at The Planet. Most likely that's because the dedicated server had just one IDE disk and the Xen host has a fast SCSI RAID array. Dedicated hosting gets pretty expensive when you get into SCSI drives and RAID but it's really important to consider your performance and reliability needs.

arete··on Hey, You Startup Monkeys: Will Quickbooks Be Enough?
I can't recommend ledger, http://newartisans.com/ledger.html highly enough. It is definitely a hacker class tool: command line based with tons of options, transactions stored in simple text files, and very flexible. That said it provides full double-entry accounting and every report you could want including output suitable for gnuplot. Oh and of course it's free and open source.

I've been tracking both my personal and business finances in ledger for years and couldn't be happier.

arete··on As a startup where would you host stuff? Dreamhost looks the cheapest?
I would get a Xen VPS since you get a guaranteed amount of CPU, RAM, disk, and bandwidth as well as full control of the kernel, firewall, software, etc. I've been very happy with http://serveraxis.com as well as http://unixshell.com but definitely do a bit of research first, http://www.webhostingtalk.com/ is a great resource for that.
arete··on What hosting provider are you using for your startup ?
Try a Xen VPS, you get full control of your own OS image with no hardware to worry about. Amazon EC2 is Xen-based but you can find much better prices. I recommend serveraxis.com where you can get a VPS with 1GB of RAM and unlimited bandwidth @ 10mbit/s for $130/m (or $45 for 200GB/m).
← PreviousPage 2 of 2