HN user

lhorn

105 karma
Posts3
Comments32
View on HN

On a related note, I would be interested to hear what parts of your company's product you have opened.

Funny you asked. I happened to work for a startup that got acquired by a big&evil corporation that specifically prohibited our engineers not only from opening our code, but even from contributing to existing OSS projects, which, partially sparkled my original post.

BTW, there is only one item on your list that qualifies as a valid answer to my question (for obvious reasons) and that is webmin.com, which is by far my favorite YC startup.

Yeah. Every time when someone tries to make a case for memchached they bring in Facebook and LiveJournal.

Well guess what: you aren't Facebook. You don't serve 21,000 requests per second. And you never will. Go and look at the size of your MySQL tables, then look at how much RAM your server has and what percentage of it is allocated to filesystem cache and how many real I/O reads/writes your hardware RAID does per second. Then come back and tell me again why do "we need to switch to memcached"?

I am arguing against this line:

"People often write in higher level languages because they want lots of bad code fast."

Even if this is true, it's true only in enterprise software environment where code quality has never been terribly important. Therefore it can't really be an argument against higher level languages in the context of a typical HN discussion.

Makes sense?

You said "not really" and then agreed with me. Moreover, you only confirmed my theory that when people say "open source" it usually means commercial companies milking OSS developers, or releasing their code "contributions" for products that have no commercial value to them (Obj-C, Chrome).

Where is the code for Aperture? Final Cut Pro? Numbers/Pages? Even iTunes? I also want to see the code for Google's page rank, BigTable and gmail.

I also want to see scribd code for converting MS Office documents to iPaper. 90% of their solution consists of Open Office code that they took freely and haven't released theirs in return.

So? Despite being useful, what's so interesting about CRUD programming for the enterprise? I've been there, I've had my share of dealing with coworkers that openly admit that they haven't touched a single book since graduation 10 years ago and they see no reason why would they want to.

That's the kind of programmers this industry attracts, and that's the kind of software it builds. What's so interesting about it? Why even bother mentioning these numerous java/C# jobs? My ex-wife with zero programming experience has trained herself in less than a month to run a simple SQL queries in Visual basic and blast results in a grid control on a form, so did thousands of ex-taxi drivers in late 90s. So?

That's because our system somehow rewards real estate speculators, mortgage brokers, middle management, lawyers and healthcare professionals way more than it rewards engineers. I don't really know why this is happening, but I am sure you all have met a few MBA types who have "the vision" and looking for "just" a code monkey to build their fortune. This is also the reason why GE/Ford/Chrysler continued building shit for decades, giving out multi-million dollar bonuses to their top-tier management.

Someone suggested it's because we live in a "services economy" not a "product economy" and, therefore, the value of engineering is declining. There is some truth in that: google isn't an engineering firm, they are in the entertainment business, very much like ESPN, Fox and those annoying guys in big hats at your local Tres Amigos.

I am not sure why are you bringing enterprise software into the discussion. Despite being the most popular form of employment for "programmers" it has always been the absolutely lowest form of life in a software ecosystem and, therefore, should be ignored and left out of any intelligent discussion about programming.

In the 90s it was Visual Basic, now it's Java and C#, but it has absolutely nothing to do with what most of us consider to be discussion worthy.

I guess it heavily depends on a market segment, but for "family computer software" it is true: lots of PC users playing with free/evaluation versions but for when it comes to premium subscriptions and premium features - most of them evaporate, whereas Mac users like to stick around.

Look at various PC/Mac softwares out there: most of PC-only software belongs to "free&shitty" category, but nearly everything for OSX you have to pay for, and they (users) are accustomed to it.

I am not sure if I can post results of the research my company has done (and paid for) here.

Hm... I get exact same stripes about twice a month, usually when it gets really hot, most commonly when watching a movie via Hulu or iTunes. But it always goes away if I turn it off/on. I never bothered going to an Apple store because I couldn't reproduce this reliably. Perhaps I should. Has anyone here tried to fix a similarly unreliable problem?

You're lucky: I also do desktop software but we can't afford to ignore the growing number of Mac users. While they still represent only about 8% of all computer purchases, they account for nearly half of "customers who pay for software" and C# isn't an option for us although we keep monitoring Mono's progress.

Also, allow me to disagree with you on something:

"If you have a small, well-scoped application, like your RSS daemon, C++ is going to be best of breed in most cases. Similarly, if performance is your absolute primary concern, there's nothing out there that can compete. For most desktop software, though, neither of these things are true."

Perhaps it's our difference in backgrounds, but most desktop software is more like that: small pieces that need small downloads, small memory footprints and instantaneous startup times. Just count the number of executable files on your hard drive and see what percentage of them eats more than 3MB of RAM (measured in 'private bytes'). Or you can look at the list of running processes: you'll see perhaps 1-3 behemoths like Firefox or Photoshop there, and one can only wonder how FireFox memory consumption would look like under JVM or .NET VM.

Makes perfect sense: they've clearly separated traditions and habits from religion.

The tradition of getting married in church is no different from a habit of screaming "jesus motherfucking christ!" when faced with a scary chance of seeing Texas Tech playing in a national championship game: no reason to call someone religious on both grounds.

prospero, I have been looking for C++ replacement for desktop programs non-stop for at least 5 years and found nothing. Rubies, lisps and pythons are great in a little dark corner of server-side development where everything is under your control, but for targeting thousands of varying desktops you just can't take that route since many additional variables come into play: size of downloads, performance, startup times, windows compatibility, etc etc etc. Plus, all VM-based languages suffer from so-so integration into native OS or/and excessive weight. You can write an IDE or an Excel replacement in them, sure, but most desktop software tends to be much smaller.

My last C++ project was a background daemon that would download your RSS feeds and do some fancy parsing. I wish I could show you how much memory Java prototype has eaten vs C++ version processing the same OPML file.

No, C++ is not "essentially worthless" without Boost. In fact I never use all of Boost: your build times becomes #1 conversation topic in the office when you do. It's better to cherry-pick a few important and lightweight pieces (like pointers, any, functional, etc). Don't forget about HUGE selection of plain C libraries too.

Whatever C++ has been used for is still being written and re-written in C++ as we speak. Newer languages and paradigms wiped out the giant Visual Basic army of developers (yes, this is what people used to code "basecamps of the 90s" in, but I don't see these languages threaten C++/C/Obj-C domination for desktop software on Win/Linux/OSX.

In fact, how many native Python or Ruby GUI libraries are out there? I haven't heard of one. Only bindings to GTK/Qt.

With all that said, I will be the first to jump the wagon. If I ever get so lucky.

63 points for these "news"? A public rant about a competitor is "news" here? And how ethical is it to blog about such things? I've never seen a CEO of a company publicly bitching about how badly competitors treat him. Jesus I know for sure to never approach Zoho with a business proposal in fear of turning any potential dispute into a dirty laundry hanging in public. And why is it even supposed to be interesting for anyone outside of Zoho/Salesforce? I wish we could see IP addresses of people who voted this stuff up: I wonder what percentage of originated from India. Sridhar, here is an idea for you: write a post titled "Zoho shall pay no taxes" and make your workers vote it up on every public news site.

63 points for these "news"? A public rant about a competitor is "news" here? And how ethical is it to blog about such things? I've never seen a CEO of a company publicly bitching about how badly competitors treat him. Jesus I know for sure to never approach Zoho with a business proposal in fear of turning any potential dispute into a dirty laundry hanging in public.

And why is it even supposed to be interesting for anyone outside of Zoho/Salesforce? I wish we could see IP addresses of people who voted this stuff up: I wonder what percentage of originated from India.

Sridhar, here is an idea for you: write a post titled "Zoho shall pay no taxes" and make your workers vote it up on every public news site.

Agreed. He's suggesting that most people haven't realized the possibilities of it yet.

I am observing the opposite: the mainstream public (looking at my non-techie friends) have been fully exposured to it, had enough of it, and is slowly getting tired of it. We're not talking about early adopters anymore: everybody has an online identity and has learned its limitations and implications.

If anything, social networks are getting boring: outside of your real circle of friends you see the same strangers posing to be smarter, better looking and happier than they really are: people aren't that different after all, and your real social network stays where it has always been: in your cell phone's address book.

And that's where I'll be turning to for an advice about finding a doctor or a car mechanic. I don't give a rat's ass about what "people on the internet" have to say. At least half of them voted for Bush. Twice.

UI on JVM suggestion? Again?

There are very good reasons why this combination hasn't been particularly popular. C++ with a few libs like MFC or WTL continues to rule on Windows being slowly replaced by .NET stack, Obj-C keeps rocking on OSX and C/C++ with Qt/GTK doing their job on Linux/BSD. Why is that? I suspect because of 3 reasons: very weak JVM penetration on the desktop, JVM is too heavy for most applications and because JDK-based UI feels foreign on every platform.

Developing a desktop application on JDK means that your users will have to deal with 100MB+ downloads followed by quirky installation process that rewards the with less then stellar UI experience at the end, especially the slow startup time.

Startup time is more important than most developers think: majority of desktop apps absolutely need it: imagine 5-second delay every time you wanted to launch Apple's "Quick View" to glance at a file, or imagine 5+ JVM-based apps load&initialize after reboot. Most desktop software I worked on was small-to-medium size and we just couldn't afford to add those 5+ seconds on JVM initialization. JVM I guess will work OK for projects like Ecilpse or a big Office suite or something like Photoshop. Microsoft understands this very well, this is why C#/.NET is so carefully optimized around loading time and comes with precompilation tools that essentially turn your C# code (including .NET itself) into native Win32 modules.

One project I want to do for myself is a usable Del.icio.us client for OSX. I can't see how I can use JVM-based tools for that... I want instant start-up by a hotkey when I need to search for links or add one. Moreover, I want users to be able to download and try it under 20 seconds.

The only JDKUI apps I'v ever used were development tools for Java itself plus numerous crap for the enterprise. And, of course, every once in a while I get "Java. Please wait..." splash screen on a new cellphone, followed by a prompt "Cancel/Go Back" keypress: that pretty much sums up my JVM-based UI experience. Which is sad: Clojure is going to be locked up on the server just like Java has been for years.

New Ubuntu is out 18 years ago

Intel wifi cards (4965 and 3945) don't work anymore? http://www.ubuntu.com/getubuntu/releasenotes/810#System%20lo...

I hate to sound negative, but this makes no freaking sense. Those two Intel cards have been pretty much the only safe choice for Linux laptop buyers: everything else, including Dell crap, doesn't work at all or requires using terrible hacks like ndiswrapper. The first thing I look for when getting a laptop, is to make sure the wireless card is one of those two. AND THEY DON'T WORK ANYMORE?!

To me this sounds like a distro with pretty much disabled WiFi.

FUCK.

Windows is a Ghetto 18 years ago

The problem isn't getting your files in the right place, the problem lies in how inter-connected and "integrated" everything is on Windows. There are many examples: "Internet Settings", for instance, from the control panel, while they seem to be IE's settings, actually affect how some Windows Internet-family API functions behave. Then there is a big hairy mess called COM/ActiveX: you can't parse XML without it, yet there will be computers, be it one out of 100, with broken XML parser COM registration. Same applies to various "shell services" which are essential to desktop integration.

Then there are cases when other applications break your code: Symantec used to install their own version of MFC DLL right into System32. Then there are super-aggressive anti-spyare/anti-virus/anti-whatever packages that are basically hacks breaking all kinds of legit software. Windows encourages this style of development: when an application essentially becomes a collection of COM servers scattered across your hard drive, hooked into your system via complex mesh of registry settings. And there is no way around it: this is what MSDN tells you to do.

Then you'll have users complaining that when they launch your RSS reading software (or whatever you do), they get a popup that says "Windows Installer: configuring Microsoft Office" that disappears after about a minute of "collecting system information". And users will tell you that everything worked great for 2 months but then "computer did something" and this popup started appearing.

And they keep adding more shit on top of existing shit. Now, in addition to COM and MSI and registry you get this "side-by-side execution" bullshit, when you can't even tell which version of a DLL is being loaded and Windows Explorer essentially hides fucking files from you so even locating a misbehaving DLL becomes a debugging session on its own, where you'll need to decode cryptic hidden directory names and extract a manifest from some executable's resources to see which DLL it actually wants. When they rolled that out I felt sick for a while.

And finally, there is no such thing as "Windows API" anymore. XP machine connected to a domain controller/AD is a very different beast than XP home or Win2K. I'm not even mentioning Vista here.

For my last Windows project I went for "xcopy deployment" with one single fat executable statically linked to everything it needed to run with some help from open source libraries, essentially very similarly to how Firefox does it. But this style of development isn't really for "Windows Platform", this way you're targeting a "sane subset" of Windows platform.

Windows is a Ghetto 18 years ago

Ironically, his writing is mostly about an easy kind of Windows development. Web apps behind IIS? Not that hard, really.

Try building an installable desktop software for Windows. That's where real fun begins. It is quite common for teams doing Windows work to dedicate as much as 20% of available manpower to the installer alone (!). I've been coding Windows desktop in C++ since graduation in 98 and has always looked down on web programmers since they had it so easy. But once I got older I realized that all my Windows-fighting instincts and in-memory database of gotchas are nothing to be proud of: most of my career I was boxing against the platform I was working on, while some were having fun building the actual software.

The irony of it is that once upon a time Microsoft was kinda cool. I was a teenager but I still remember those "good&old" days of snobby IBM/Sun/Oracle salespeople with their super-expensive software, hardware, development tools and even documentation (you could sell your car for a full copy of OS/2 SDK). And then there was Microsoft and Borland, giving their tools and docs basically for free.

Well... the cheapest notebook from Dell is actually much closer to $400. It has exactly 512MB of RAM. And it does not run Windows, it runs Ubuntu. They better care about that.

The review hasn't addressed the most important question: will it run smoothly on 512MB of RAM, the maximum I'm willing to give it under VirtualBox.

Currently I often run two instances of XP with about 300MB RAM each and they're quite fast. Vista was built with an assumption that everybody has at least 2GB with half of that going to Vista itself and another half - to Internet Explorer. I hope they learned that some users have a lot less RAM and they like running other software too.

Well... there are hundreds of cities where people live fairly close to a reactor, with the same lethal outcome in case of failure. They live there 24/7 and you're opposed to an idea of spending at most tens of hours a year right next to one?

The biggest issue is radioactive contamination in case of an ordinary plane crash, and parachuting a reactor doesn't sound like especially convincing solution: when planes crash, it is usually because a lot of things go wrong onboard, with parachuting system possibly being one of them.

I think we'll be much better off investing into development of new generation of speed trains: they can easily be made electric (thus taking advantage of cheap nuclear energy), riding on electro-magnetic fields friction-free at crazy speeds.

Another thing about american auto makers I could never understand is that they have always believed in selling 2nd grade crap to general public, splitting their products into two very distinct niches. Ford and GM can innovate, they have brilliant engines and great designers, but all that stuff is generally reserved for european models or for "luxury" divisions. Two examples:

1. GE has always had two different lines of V6 and V8 engines: low-tech, gas-guzzling one (for cheap Chevy/Pontiac models) and high-tech modern ones for Cadillac and European Opel and Saab.

2. Ford is even worse. They make cheapened-down version of Focus specifically for US, while selling a great little car in Europe. I just got back from vacation and I truly enjoyed one. Just compare these two photos from european and american versions of Focus, see all that cheap hard plastic painted fake aluminum in US version? Jeee....

American: http://www.fordvehicles.com/assets/images/vehicle/pg/fcs09_p...

European: http://img.worldcarfans.com/US/2007/12/4/9071204.006/9071204...

Sorry my del.icio.us program didn't work. What fails with it? I'm curious, since it advertises indexing directly.

I dunno. It just sits there (running) but nothing ever shows up in Spotlight. May be an issue on del.icio.us side, though: they're known for changing/breaking their APIs.

Safari bookmarks get picked up fine and I use it frequently.

Well... nobody is perfect and Gnome guys have lots of room for improvement too.

But again... Quality of your UI software isn't everything. Sometimes a game-changing feature appears out of nowhere. Apple's multi-touch has changed how I use computer dramatically. And it has almost nothing to do with the software itself: it's a driver+hardware combination that I personally find impossible to live without. OSX allows me to do a lot with just one hand, so I can hold a cup of coffee in another: flip pages, zoom in/out, scroll up/down, etc. This was enough for me to stick to OSX for my daily non-programming computing needs. I even started reading books in PDF format, something I previously could believe I could do.