281 karma · joined March 13, 2010
http://www.hackernewsers.com/users/Rust.html
Big missing feature is paging...
Edit: It's a PHP app that uses MySQL.
There are a lot of sites that give information on working with PHP correctly (including http://appwithphp.com/ and http://planet-php.net/), but expect to do a lot of reading and experimenting before getting it right.
I personally didn't care much for Perl as a web language, although it's great for system-level scripting.
I'd add Python to your list of potential languages too. I've been having a lot of fun with it lately :)
GnuCash (http://www.gnucash.org/) is another I've used in the past and had good results with. It's more of a Quicken replacement than QuickBooks though.
I would maintain that since this is not taught in any school I've ever attended, it is at least questionable. I've never seen a math textbook use the / symbol for natural division either.
2x would be expanded as (2 * x), whereas 2(x) expands as 2 * x.
In this case, since the equation is 2(1+2) which results in 2(3), it's final DMAS form is 6 ÷ 2 * 3 = 9, instead of 6 ÷ ( 2 * 3 ) = 1
Using BEDMAS as I was taught, so many moons ago:
6 ÷ 2 ( 1 + 2 )
6 ÷ 2 ( 3 )
6 ÷ 2 * 3 // because 2(3) is not an exponent or algebraic construct, it's straight multiplication
3 * 3 // division and multiplication are in left-to-right order, no precedence
9
That said, no, the price is too high for sure.
Thanks a lot, it saved me a pile o'trouble :)
However, my experience over the last 20 years has shown me that this is pretty much the way of things - expert Java devs love making things complex by layering more complexity over things in order to make them simpler. Expert PHP devs tend to remove complexity and turn in far more intelligently organized code.
I've seen exceptions to both generalizations, but not very damn many. It's depressing.
The last hard-core (ie. expensive) Java dev we had working on one of our back-end projects turned in code that was so abstracted and made such heavy use of dependency injection, it was not only difficult to read through, but took over 30ms to respond to requests. Maintainability was a nightmare, mainly because by abstracting things so thoroughly he effectively (and inadvertently) made the platform so tightly coupled that changing low-level code became very difficult.
Our current hard-core (ie. affordable) PHP dev spent almost exactly the same number of hours re-implementing the Java system, retained the extensibility requirements, and the framework returns responses in about 1ms. We have extendable objects for everything (models, controller, extensions, etc.), but without the 5 to 10 layers of abstraction.
As an added benefit, with PHP we don't have to worry about recompiling every time a change is made (during development, at least), we aren't running any memory-hog VMs, and it's far easier to find good devs when we need them.
That said, PHP takes a lot of crap because of its low barriers to entry. It's easy to learn the basics, it's very easy to learn bad habits, and it's too easy to write insecure code. A good PHP dev knows how to write fast, secure code, but it is hard to figure out who is a "good" PHP dev and who is a "copy/paste" PHP dev.
A couple of years a go I would have said to keep the "www" - it's a subdomain that refers specifically to the World Wide Web (or HTTP) address of a site, as opposed to the FTP or email services.
Nowadays, I prefer to either drop or ignore the "www" - if you're using an HTTP client to reach my domain, I'm going to go ahead and assume you want the website and not the FTP site. Intelligently named subdomains are good for organization :)
So either make both work, or redirect one to the other. It really doesn't matter very much either way.
Even so, I would still need to tell my editor how many spaces to convert to a single tab, and use the same number to convert tabs to spaces when I save or commit. God help us all if someone else forgets to do that too...
The main reason is that on my widescreen monitor, indents of 4 characters or less are hard to visually parse in dense areas of code.
If the original author of this code (the actual code I am setting fire to myself over right now) had used tabs instead, then I could set my editor to display indents as 8 or 12 spaces instead, and he can still use 2 spaces if he wants. This is strictly a display issue - he can use 2 and I can use 8, and the file is not different between our two computers.
With spaces, I'm stuck with whatever number of spaces he chose to use for indentation instead of being able to make the code easy to read on my machine.
We're not using 40-column terminals anymore folks. It's all right to uses tabs for indentation.
After that, I explain the idea.
Edit: (to clarify) Cars, like you said, because a certain amount of car knowledge is already in the popular mob-brain. It's fairly easy to describe your web server, load balancer and scripting language as either car or engine parts.
Sex is useful when describing 3rd party API interfaces, particularly Facebook. This one can get pretty damn funny when the API is either poorly designed or unreliable. Also if you need to do weird things to make it work.
Music is good for the high-level stuff. Associating the front-end with the vocals, business tier with the guitars, database with the (wait for it) bass, and the server as the drums. There are bands with two or more of any of those roles (and keyboardists, and cow bell hitters, etc.), so this analogy tends to hold up very well as long as you avoid the details.
I wonder how much trouble it would be to build something like Decked Builder (OSX) for Android tablets?
I wouldn't call your described plan a "good" way of doing things, necessarily.
In our case, we're squeezing in a complete rewrite of the codebase around existing client work using the old platform. We're writing it as a few separate services (authorization service, content service, front-end, reporting service, and administration front-end) instead of a huge, monolithic app. To do this in a decent time frame (a few months), we're adding 5 or 6 contractors to a 3-person dev team, leaving 3 other devs able to deal with the existing platform.
The new regime requests the following in at least 3 different bandwidths (mobile, standard, HD) each:
* MP4 (h.264 Main Profile w/AAC audio) * OGG (Theora with Vorbis or MP3 audio) * WEBM (WebM with Vorbis audio)
This is from memory, so I could be mistaken about the specific codecs used for those last two, but those three file types combined with a player (or JS library) that detects bandwidth capabilities should let you play a video back on virtually any modern device (ie. most phones, tablets and browsers), and fall back to Flash using MP4 for browsers without HTML5 video element support.
I've used VideoJS and JWPlayer in the past (and recently!) with great success. There is no need for an FLV version of the video unless you expect your users to be using Flash before version 9 (or was it 8?).
#2 - Dates should be stored in UTC (make sure the server has the timezone correctly set), and display in the user's TZ or a reasonable default. The language will worry about DST. Don't let SQL touch it (in fact, you should probably store a UNIX timestamp - uint - instead of a datetime).
I would argue the above as "best practice" for storing that info. The douchebag is the developer who won't spend 5 minutes implementing either solution.
Guess I'll just have to donate directly...
Frankly, it's much easier just to leave that aspect of things to the server admin, and distribute your web app as a PHAR or Egg or Gem or whatever.