Forgot your password?
typodupeerror

Comment: Is this just an astroturf campaign for Scala? (Score 2) 101

by AtlantaSteve (#47963417) Attached to: 'Reactive' Development Turns 2.0

My understanding is that the authors of the "Reactive Manifesto" are all Typesafe guys (i.e. the commercial entity behind the Scala programming language, and the Akka framework that drives Scala's concurrency model). The only people who I ever see tweeting about this are Typesafe guys. The only people who I ever see blogging about it are Typesafe guys. The interview here is with a Typesafe guy. The Coursera class on "Reactive Programming" is taught by a Typesafe guy, using Scala. The only time I've ever heard anything about this mentioned in person was by someone at a Scala meetup.

I'm not trying to bash Scala. I was really excited when it first came out, and tried to introduce it at my last job. The combination of its learning curve, its breaking changes between versions, and the upcoming Java 8 all pretty much doomed its adoption at that shop... but it's still a neat language nevertheless.

However, the "Reactive" thing just seems like the guys behind a particular programming language publishing a "manifesto" of best practices, which exactly fits the way their particular programming language is designed. I don't know... that just seems to me like an astroturf effort to coin a new buzzword, so that your vested interest can be a leader in the space of that new buzzword. Is there any real energy around this which ISN'T coming from the professional Scala community? Do we really need a new buzzword (or "manifesto"!) to describe the longstanding concept of "message-based and event-driven"?

It seems like most of the comments here are from people who haven't connected the dots between this "manifesto" and Typesafe. A lot of people haven't read any of this stuff at all, and think that it's meant to be a methodology , as with the "Agile Manifesto" (no doubt the marketing inspiration for the name). Others have at least skimmed it, and don't see anything new with "message-based and event-driven". I believe that what's new is an effort to replace "message-based and event-driven" with a different buzzword, for which Typesafe's website already has great SEO.

Comment: Re:Just use Postgresql (Score 2, Informative) 336

by AtlantaSteve (#41036501) Attached to: Is MySQL Slowly Turning Closed Source?

For me, the one advantage MySQL (and MariaDB, and even Apache Derby!) have over PostgreSQL is that there are versions that can be run stand-alone "out of the box" as a non-root user. PostgreSQL (AFAIK) needs to be installed, and needs to be installed as root (and you need to create a postgres user, etc.).

There is a reason why no one bothers to make an XAMPP-style "portable" version of PostgrSQL, as they have with MySQL. The reason is that this is dead-simple to accomplish even with the out-of-the-box binaries available on the PostgreSQL site.

On the PostgreSQL download page, you would download the "zip archive of the binaries", rather than the one-click installer. Unzip the archive's contents wherever you like (including on a USB thumb drive), and then refer to this 3-paragraph PostgreSQL article. It tells you to create a BAT file in your base PostgreSQL directory, cut-n-pasting these contents:

@ECHO ON
REM The script sets environment variables helpful for PostgreSQL
@SET PATH="%~dp0\bin";%PATH%
@SET PGDATA=%~dp0\data
@SET PGDATABASE=postgres
@SET PGUSER=postgres
@SET PGPORT=5439
@SET PGLOCALEDIR=%~dp0\share\locale
REM "%~dp0\bin\initdb" -U postgres -A trust
"%~dp0\bin\pg_ctl" -D "%~dp0/data" -l logfile start
ECHO "Click enter to stop"
pause
"%~dp0\bin\pg_ctl" -D "%~dp0/data" stop

The very first time you run this script, you comment-out the bold-face "REM" line... which will initialize a fresh PostgreSQL environment, with admin user "postgres" having a blank password. Then put the "REM" comment back on that line, and you have a complete portable PostgreSQL environment that can be moved from directory to directory and machine to machine.

This information is obviously Windows-centric... but the whole "portable" concept (in the USB thumb drive sense) is Windows-centric in the first place. If you're on Ubuntu, just "sudo apt-get postgres" and then remove it when you're done tinkering! By the way, you don't need administrator privileges to use the one-click installer on Windows.

A lot of the discussion that I'm seeing in this thread has more to do with phpMyAdmin vs. pgAdminIII than with MySQL vs. PostgreSQL themselves. To be perfectly frank, if one's biggest concern is what the admin or SQL workbench tool look like... then it doesn't really matter which of these two databases you use. You'll be fine either way.

The real consideration is whether you need (or would like to explore and learn about) the more "enterprise"-y features offered in PostgreSQL. If you're interested in more enterprise-level functionality, then PostgreSQL is by far the best free game in town. If you're not really interested in that stuff, then you might as well build around MySQL since it's more commonly offered by web hosts and cloud providers.

By "enterprise"-y, I'm talking about the concept of assuming that more than one application might eventually be using your database (and that the applications might be based on more than one language or technology stack). If you are only using your database through one application, and letting its ORM framework (Java JPA, Ruby Rails, PHP Doctrine, Python SQLAlchemy, etc) be responsible for enforcing all the persistence rules and business logic, then it doesn't make much difference to you as an application developer which database lies behind the framework.

However, let's say that you have a Rails web application writing to your database on the front-end, and a Java application working with it on the back-end. Maybe you even have some Python or Perl scripts kicked off by a nightly cron job, which build reports based on the data. To give a very trivial example, let's say that one of your table columns holds "customer type", and must be one of 7 fixed values (e.g. "retail", "business", whatever). You don't want values written to that column unless they are one of the 7 allowed types.

How do you enforce that? You can make the database column an "enum" type, but a lot of ORM frameworks are notoriously bad about supporting database-native enum types. You can configure the field as an enum up in your ORM framework, and let the application enforce it. However, you have multiple applications writing to this database... so you have to duplicate that across the board. Do you really trust a model where everyone connecting to your database is supposed to bring their own enforcement along with them? What about the risk of human error, if a person directly manipulates data in phpMyAdmin and makes a mistake? Even if you do decide to take your chances... all these ORM frameworks implement enums differently. Some write numeric values to the underlying database column, some write string values, etc.

With MySQL, you would probably end up creating an entirely separate lookup table. It would have 7 rows, for the acceptable values, and that column in your first table would need to be a foreign key reference to the lookup table. I hope you were aware of the need to setup your database with InnoDB, since MySQL's default storage engine doesn't even support foreign key restraints! Assuming that you did, you are still left with a more complicated data model... and are taking the performance hit of an additional table join every time you use this table.

With PostgreSQL, you would apply a CHECK CONSTRAINT to the database column. This is standard DDL supported by all enterprise-class RDBM's, and is inexplicably ignored by MySQL. If you apply a check constraint to a table column, then the database will return an error and block any update or insert which tries to write a bad value. Your data is now safe from corruption no matter which applications (or phpMyAdmin users) try to write to it.

This is just one small example, and I could go on forever. Foreign keys, check constraints, less robust stored procedures, lacking the ability to throw exceptions from a function or stored procedure (?!?)... MySQL is pretty much designed to operate as a passive data bucket, for your application tier to take exclusive responsibility over. PostgreSQL is designed to give you 80-90% of the functionality you would pay tens of thousands of dollars for in Oracle or DB2, for free and with a much lighter footprint. Again, if you're just doing a basic isolated web app, then you may not care. But if you're interested in the option of using or tinkering with the sort of features that enterprise shops take for granted... then MySQL and PostgreSQL aren't even remotely in the same league.

Comment: Re:SciFi - Manna (Score 1) 186

by AtlantaSteve (#40840197) Attached to: Managing Human Workers With an Algorithm

Yeah, the results aren't pretty! The result is said to be a novella, but is actually just a weak sociology essay disguised as a story. You keep waiting for the plot or character development to start, and suddenly you reach the end and realize... there was no plot or character development!

If you haven't read Manna, then picture Ayn Rand's Atlas Shrugged. Switch John Galt's speech near the end of the book, so that it says pretty much the opposite message. Then keep the first chapter of the book, and the Galt speech at the end, and throw away the thousand pages in between where anything happens. You're pretty much left with Manna.

Don't get me wrong, I think Ayn Rand was a pretty weak philosopher too. She wrapped her ideas into controlled storytelling illustrations because she couldn't argue effectively for them otherwise. However, at least she did bother with the "storytelling" part!

Comment: Here's a crazy thought... (Score 1) 257

... why not actually, you know, involve your wife in your family's finances while you are still alive?!?

Don't get me wrong, I believe that a healthy relationship includes privacy. I wouldn't share my personal email password with my spouse, etc.

However, your 401k and mortgage? That stuff involves marital property... why doesn't she already know where the accounts are and how to access them? Of course this is Slashdot, so I could make a ton of jokes about male and female relationships (do you really have a wife?). Regardless, it just strikes me as bizarre that someone's spouse would have no idea how to check the family's mortgage and retirement accounts. Even if you could ensure that she had the usernames and passwords after your death, do you really want her having to figure it all out from square one under those circumstances?

Of course, you also have to provide for the scenario of you and your wife dying at the same time (e.g. car accident). This is why you should have a will drafted, and an executor who knows where the accounts are. Usernames and passwords are pretty moot in that case anyway, the executor will need a death certificate to start the legal process.

Comment: Circles have no end... (Score 4, Insightful) 277

by AtlantaSteve (#40484953) Attached to: The Long Death of Fat Clients

I've been in software development for about 20 years, and it occurs to me that I've seen the "fat-to-thin-to-fat" cycle of hype run its course at least twice now. Predicting "The End of Fat Clients" (or thin clients for that matter) is like looking at a clock, seeing that it reads 6:00, and then declaring the death of noon.

Comment: Re:Classical music lovers hate this? (Score 1) 353

by AtlantaSteve (#39031591) Attached to: Mozart and Bach Handel Subway Station Crime

Media in general likes a story to have "conflict" (even when it doesn't), and Slashdot these days is far worse than most. However, half the conflicts you read about here are entirely made-up. Of the three articles linked in this summary, not a single one quotes a single opponent or critic. It's just something that "Unknown Lamer" tacked on at the end, because the Slashdot-format would incomplete without something like that.

I can't really blame Slashdot, though. Reading this silly comment above (and, sadly, watching myself type a response)... there are plenty of people who take bait.

Comment: Why is this suddenly bad? (Score 2) 441

by AtlantaSteve (#38600294) Attached to: Windows 8 To Include Built-in Reset, Refresh

Dell, in its "infinite wisdom", have been providing both of these restore options for years now on a separate recovery partition. I am only personally familiar with Dell's, but I'm sure that other makers offer something similar. I still prefer a physical CD/DVD rather than a recovery partition approach... but other than that, I haven't heard much complaining over the past few years about this kind of functionality.

Microsoft takes an established third-party utility, and bundles something similar within Windows itself (as they do with practically every release)... and NOW this is suddenly a horrible idea and everyone is full of complaints? Hey, I'm hardly a Microsoft fanboy, but this is just childish. Where have the posts and the complaints about Dell been for the past few years?

Comment: Re:Unionize (Score 1) 253

by AtlantaSteve (#38284160) Attached to: The Rise of Developeronomics
Perhaps I should have explicitly said "blowhards" rather than "political-minded people" in the opening sentence, but I was trying to start off on a polite note! :)

Either way... I was speaking about two opposite extremes. It seemed pretty clear that my perspective was somewhere in between the two (along with yours, and probably the majority).

Everyone has a purpose in life. Perhaps yours is watching television. - David Letterman

Working...