Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: in which i am a noob all over again 17

I haven't posted a journal here in almost three years, because I couldn't find the button to start a new entry. ...yeah, it turns out that it's at the bottom of the page.

So... hi, Slashdot. I used to be really active here, but now I mostly lurk and read. I've missed you.

User Journal

Journal Journal: Go Timmy!

Sorry for the meta moment, but just wanted to call attention to the hard work my colleauge Vroom has been doing.
Hop over to his journal to check out some of the improvements coming out.
User Journal

Journal Journal: Structural Changes 7

Update on ModPerl2, Apache2.2 port

Well I got through the problems with Apache2::Module::get_config. Aparently the object which comes as the first argument to the method for the custom config directive is not where the config parameters should be stored. Looking back at the documentation http://perl.apache.org/docs/2.0/api/Apache2/Module.html, I can see that it is clearly shown that $srv_config is being fetched via a call to get_config from within the custom directive subroutine, and that apparently is where the config should be stored... but it does seem kind of counter intuitive to me. But no use second guessing that now, at least I got it.

On a positive note: before I discovered my mistake with get_config, I thought perhaps it was getting mangled by Apache2::compat, so I spent much of the day finding and jumping through hoops to get everything to run without that. Though that effort didn't fix the problem I was chasing, it will be better in the long run to not need Apache2::compat, as that would drag down response times.

User Journal

Journal Journal: Apache2::Module::get_config

In my ongoing efforts to port slashdot onto modern revisions of Apache and ModPerl, I've made significant strides. This weekend I put in a few extras hours of work, just because it was on my mind.

Currently I am banging my head against Apache2::Module::get_config. I thought I had appropriately adjusted the code to use the new simplified mechanism for defining and handling custom apache config directives. Having added plenty of "print STDERR" debuging into my modules, I can see that the new directives are being read, and the associated sub routines to handle them are being called at server start time. However, calls to get_config from inside a request handler are always returning either 1 or undef. As far as I can tell from reading the documentation, it should be working. As I type this, it occurs to me that it could be getting fubared by Apache2::compat...

Off to test that theory!

User Journal

Journal Journal: Comment Families (Threads)

As my colleagues are working to improve the comment system, I'm thinking about it. I had an idea today, and I'd love to hear what anybody reading my journal thinks about it:

Would it be useful to have a control that would either expand or collapse all of a comments ancestors, descendants, or siblings?

So, what do you think?

User Journal

Journal Journal: Every little bit counts 1

I am continuing forward with the re-platforming effort to move to Apache2.2 and ModPerl2. I have in the last few months be doing little bits here and there where I could squeeze it in between other projects, but today I got a good half day put into it. Before today I had updated the Makefile.PL's where appropriate to move away from Apache::ExtUtils, and instead use ModPerl::MM. I spent much of today finding all the CPAN modules that we rely on, and getting them built under the proper version of perl. After that I spent an hour or so tweaking config files where needed for the newer version of apache. Before heading home for the day I was actually to the point of trying to start Apache. It almost started, but I apparently missed something in updating the system to use Apache2::Module::add to handle the custom Apache config directives. But that will have to wait for tomorrow.

In comment system news: my colleagues are currently working on mock-ups for a few new controls to allow greater control over how many comments get loaded on an article page. Also trying to brainstorm around an easier/more intuitive way to handle setting thresholds for comment visibility (the current implementation is the "slider" widget with the two handles at the right side of the comment section header).

User Journal

Journal Journal: Let there be comments

And there were, and it was good, for a while.

The comment system, and the discussions that take place in it, are a very important part of what makes slashdot what it is. I think it is a very powerful system, into which lots of time, thought, tests, trial and error, blood, sweat, unicorn meat, and tears have been put over the years. It is currently very complicated, somewhat fragmented and not well understood my a large number of readers. As I mentioned in a reply in one of my previous journal entries, the comment system is due to receive some much needed attention in the coming weeks. To that end, I am pleased to note that a release will be coming out today to address an issue we've found in the dispersal of moderation points. More than one or two readers have asked if there was something broken, or if they had somehow lost "moderation privilege", and I do believe that starting tomorrow, that issue should be resolved (thanks to the hard work of my friend/colleague vroom.)

Stay tuned for news of more love to come. (And feel free to let me know if you have special requests or concerns about the comment system)

User Journal

Journal Journal: A Cure Worse than the Disease: Amending the Constitution vs. Citizens United

Recently a set of six senators have proposed a Constitutional Amendment to overturn the controversial Supreme Court case of Citizens United v. FEC which held that corporations were allowed to make unlimited expenditures with regard to elections provided that those were independent expenditures, not coordinated with candidates.

The Citizens United case overturned two previous Supreme Court cases, McConnel v. FEC (which was a case the court evidently had trouble drawing lines over given the fact that 9 justices produced 8 opinions, and pieces of four of the opinions commanded a majority of the court), and Austin v. Michigan Chamber of Commerce. Some First Amendment scholars from across the political spectrum have hailed the decision. For example Eugene Volokh, a Republican, has generally felt this was an important protection of Constitutional liberties, and the ACLU played an important role in filing amicus briefs in favor of Citizens United, and has been very much in favor of the decision. Others have seen it as an open invitation to Corporations to meddle in politics.

Before we get into the Constitutional Amendment and why everyone, on both sides of this issue, should be opposed to it, it's worth noting that the questions of first amendment law in election finance cases seeks to balance two competing interests. The first is to ensure that the people can write and publish on political topics surrounding an election, and the second is to ensure the integrity of the elections. Citizens United draws this line by saying that independent expenditures are different from coordinated expenditures (5-4 holding, but the dissent didn't offer an alternative except to wait for another case), and that disclosure laws were entirely Constitutional (8-1 holding). The fundamental problem is that while money is not speech, regulating how people can spend money in order to express themselves regulates a lot of speech. The court correctly noted that the Constitution didn't differentiate between, say, the New York Times and, say, Merke, and therefore, couldn't grant the government the ability to ban Merke from buying television ads without banning the New York Times' right to print editorials in favor or opposed to candidates.

Indeed the concern over freedom of the press was at the core of Citizens United. Surely when Alito asked S. G. Malcolm Stewart if the government could Constitutionally ban books, he had no idea that the only answer S. G. Stewart could give would be "yes" (an answer repeated by S. G. Kagan at rehearing, see the same link above for all oral argument), and hence a question probably intended to address an issue of statutory interpretation set the stage for a Constitutional showdown. To be fair, both Stewart and Kagan tried very hard to avoid giving that answer but both were unable to come up with any alternative that would save the law as written, because the Supreme Court tends to err more on the side of facial challenges (striking down laws) than as-applied challenges (mandating exceptions) when it comes to freedom of expression. The dissent felt the correct decision was to say, in essence, "we don't have sufficient record to make this decision. Declare it as moot and let them bring another case to us through the courts."

Citizens United was hailed as a major First Amendment victory by the ACLU, and many other organizations which work on First Amendment issues, and by major First Amendment scholars such as Eugene Volokh. However, many others have seen it as a doorway to corporate tampering with our elections.

However, for any controversy, there are solutions that are far worse than the cure. This is one of them. The relevant portion of the proposed Amendment is:

SECTION1. Congress shall have power to regulate the raising and spending of money and in kind equivalents with respect to Federal elections, including through setting limits onâ" ...
(2) the amount of expenditures that may be made by, in support of, or in opposition to such candidates.

The omitted paragraph 1 allows the government to regulate gifts and donations to candidates, something already within the power of the government. Section 2 grants identical powers to the states.

Now, it's important to note what is covered under Section 1 paragraph 2. In essence any money spent communicating a message on an election for or against a candidate in any way falls under government power. Presumably this could include purchasing gas to go to a rally, publishing pamphlets, buying Obama's books to give to undecided friends in 2012..... These are all independent expenditures and could fall under government regulation under such an amendment. And nowhere in the amendment does the word 'corporation' appear.

In essence the proposed amendment is that we trust to Congress the ability to arbitrarily limit the freedom of the press not only by corporations but also by natural persons. Such an amendment would prevent a first amendment challenge to some laws already on the books (say, a foreigner here on a student visa publishes a blog posting on a site that he/she pays for hosting on opposing an anti-immigrant candidate. This is already against the text of campaign finance law, but would probably allow either an as-applied or facial challenge to the law even before Citizens United but that would be taken away).

This proposed Constitutional Amendment then goes well beyond repealing Citizens United in that it takes away Constitutional protections that each of us enjoy.

Now, the subject of independent expenditures is a controversial one. However, given that only defenders of Citizens United have offered any data defending their side, I am forced to at least tentatively conclude that the ACLU is right on this one. However for the purpose of the rest of this post, I will assume that this is a serious problem and offer recommendations for changing this proposed amendment so that it does not strip us all of fundamental Constitutional rights.

If the problem is a concentration of power over spending in our elections, it seems to me unwise to further concentrate that power in the hands of the state. Instead it would seem to me that granting power to Congress to curb the worst abuses only, while preserving the power of the common man would be preferable. In this case, if the problem is specifically corporate spending, then allow Congress to limit Expenditures, not part of profit-making goods and services offered at standard prices, on the parts of for-profit corporations only. This would be sufficiently broad enough to ban Corporate donations to Citizens United and the ACLU, but not sufficiently broad to regulate what fliers and pamphlets you or I can print to distribute. It would allow Congress to prevent Corporations from offering special discounts for such material, but would not prevent them from offering standard discounts (such as volume discounts available to everyone else).

In the end, it's easy to get whipped up into a frenzy and believe that because we must do something that this must be done. This is unfortunately common. We see on the other side of our politics, amendments to state Constitutions which forbid state judges from using foreign laws to inform decisions, forgetting that in international contracts or other cases where conflict of laws issues may come up, these foreign laws are extremely relevant to the cases. Like this present proposal, the problem is with being overbroad, and therefore causing a great deal of harm to our basic freedoms in the name of solving problems.

Every American should be opposed to this amendment. Those who oppose Citizens United and seek to overturn it should insist that the amendment to do so be narrow. Those who support it should listen to the others but make sure their concerns are addressed.

User Journal

Journal Journal: Can you /. 3

Well the Hall of fame seems to be working for the few features it offered initially, and a few people have given me some good feedback and suggestions for features it could/should have. Once its been live as is for some period, I'll put my focus back on it, and hopefully implement some of the suggestions I've gotten.

In the mean time, I will be spending some time on back end work. While I may not be able to point to any "shinny new" stuff, I hope readers will see the results of this work in the form of stability, speed, and reliability. I am also looking for a contractor to help me out for a few months with the platform migration to Apache 2 and mod_perl 2... hence the title of this post. If you have a strong background with LAMP stack applications, and think you have what it takes to help us improve slashdot, I am accepting resume's. The position would be short term (2-3 months), but it is a chance to get into slashdot, and show us what you've got.

So, Can you * ? (leave me a comment if interested and I'll get you contact info)

PerlJedi

P.S. there is also a full time position open for an entry level/associate engineer on my team. Go Here for details

User Journal

Journal Journal: Its Alive 7

Well, the new Hall of Fame is now live and open for business. I am trying to be patient, and to wait for it to live in the world for a bit before I jump into to look at the stats. Mostly I just hope that at least some people find it interesting, or helpful. I am moving into my next project next week, but will turn my attention back to the HoF from time to time, and hopefully add features. Please feel free to let me know if the new HoF is a disappointment, or if it is great, if you think it could be better if...

I am excited for my next project, though it will be a lot of work... Migrating Slashdot from Apache 1.3 and mod_perl 1 to Apache 2.2 and mod_perl 2. Though I have undertaken this sort of project of a few large systems, Slashdot will have some new puzzles to solve. I hope in the course of this project I will also be able to hammer out a few persistent bugs, and probably do some stream lining to get the page render times down a bit.

User Journal

Journal Journal: Staff Favorites 2

With the release of the new "Hall of Fame" comming later this week, I've squeezed one more feature into it for the first release. We will have a "Staff Favorites" section. Originally, I was thinking this would be only "Editors Favorites", but I thought (and my colleagues seem to agree) that it would be nice to show the "Favorites" of a larger portion of our team. That being said, I am not compelling any one (not even the editors) to share their "favorite" stories, but I will be giving the option to all of our engineers in addition to the editors. If that picks up, perhaps others will want to join in.

I wonder... if we offered the feature: would our readers like to be able to mark their own favorite stories? Maybe their favorite comments as well? This information could, if a user wanted it to, be displayed on their user page. Perhaps also, if we biuld out more of the system's "friend or foe" system, users could then browse their friends favorite stories/comments/submissions? (Must be honest: part of this htought is inspired by my friend/colleague Cogent's ideas.

User Journal

Journal Journal: Keep it short stupid.

Wow. My last journal entry really droned on to long. Feel free to tell me to shut up next time.

First round draft of the new "Periodic" Hall of Fame (as I've been calling it) should be showing up in the wild in this comming week. For the first release it is really just a sub set of the existing hall of fame, though broken down to smaller chunks of time. The really new piece here, however, will be the display of a the current users own stats next to each category. So next to "Most Active Submitters" a logged in user will see "My submissions", and next to "Most active Commenters" they will see "My comments". I hope by doing this people will be able to see that the new comers are not really that different from the grey hairs on a smaller time scale.

One other quick note: A feature we may be able to bring in V2 might be a visual representation of some of the data. For example perhaps next to "My comments" there may be a graph of # of comments a user has left per week in the last month. What do you think: Would that be cool? Usefull? Overkill? Please, share your thoughts...

User Journal

Journal Journal: Meditations on Time, Spammers, Trolls and Fame

As I've been working this week to build a supplement for our existing hall of fame, I've been making decisions (or guesses) about many things, some the I expected, and some that I didn't... We will be releasing this thing into the wild soon, and some of the decisions I've made may be reversed once we see how readers actually interact with and re-act to it. All of you that are smart/lucky/bored/crazy/unfortunate (you pick the adjective) enough to be reading and following my thoughts are invited to leave me you're thoughts here.

Time
Our current "Hall of Fame" has two parts... "All Time" and "Past Year". "All Time" is self explanatory. "This Year" could be interpreted in two ways: during the current calendar year or during the last roughly 365 days (current hall of fame uses the latter). For the new bits of the Hall of Fame, I will be breaking it down in "Weekly", "Monthly" and "Quarterly". Each of these increments of time are open for the same interpretations as "This Year", and by nature of being smaller in scale, the differences can have a much more immediate effect, and both interpretations have both strength, and weakness as I see it.

My first instinct is/was to use absolute measurements for these (weekly is Sunday-Saturday, Monthly is from the 1st on, Quarterly is January - March etc.). The strength I see in this would be that we have a clearly defined range of time, with a beginning and an end. I think that could encourage new comers to the site to engage more immediately (at least at the weekly level) as at the beginning of the time span everyone, old and new, quiet and reserved or loud and obnoxious, would start at 0. The other possible strength here would be that with a define beginning and end we can mark the end of a time period and record the winners. The weakness in this approach (which I also argue is a strength) is that at the beginning of a time span the "Hall of Fame" would be full of low scores and therefore not particularly useful until we are a significant portion of the way into it. The (perhaps less obvious) problem created here would be that the time when this has the most complete (and arguably) the most useful data is near the end of the period and by the time the data set is complete, we have moved into the next period and started all over again.

Currently I am leaning toward the "rolling window" approach, so "Weekly" will always have the last 7 days of data. This implementation is easier to code because I never need to worry about how far into a week, and month or a quarter I am. It will also mean that regardless of when a reader looks at it, it has useful data, even if it is on the first day of the month or week. The first drawback would be that with no beginning and no end, on race ever ends, and no one ever gets to claim victory. The second would be that new comers will always see the bottom of the "Hall of Fame" as where they would need to be at the end of a week or month, which could seem unreachable.

Quality
The other issue I find myself grappling with on this topic is one of quality. We all know that there is more to being a part of something than just showing up. Slashdot is a community created/supported site, and we depending on community contribution not only for submitting stories, but also for participating in discussions, and even helping to moderate the discussions. Sadly, we also all know that not all contributions are positive. Everyone can, and lots of people do, submit stories, and make comments. The bulk of these are good, but here, as everywhere, some are just not. When we recognize members of our community we want to recognize the quality, not just the quantity, of their contributions. So for example we want to recognize those who submit stories to us on a regular basis, but we do not want to recognize the "entities" that are flooding our inbox's with spam. Similarly we want to recognize those who participate in discussions, but probably not the clowns who spends time trying to hit the comment button the first just so they are can say "Hey! Look at me, I'm first!". This question can be answered in many ways, none of which will be perfect, and most of which will piss somebody off.

Another dilemma comes into play in this decision... we want people to contribute, and we want to recognize those who do so. It seems only fair to have a well defined set of criteria on which to select who we should recognize. The problem is deciding not only what criteria are fair, but ideally we like to prevent people from "gaming the system". I'd love to live in a world in which no one would do that, but the sad reality is that if we simply say "The person with the most comments in a week gets a gold star", some joker will decide to make all of there comments one word at time, just so they can have their shinny gold star.

The first incarnation of this new "Hall of Fame" will be our best attempt at answering these questions, but like all things, it will be a work in progress, and with help from the community, if it is not the "best" on day one we'll get it there in time.

Journal Journal: Hello World 3

My First Journal Entry. The title seems fitting, the day after the world lost Dennis Ritchie.

First, Let me introduce myself. I am Dave Mueller, and I am currently the Lead Software Developer for Slashdot. Though I've been a long time reader of slashdot, I first came to work here in March of 2011. I've been writing PERL for a living since 1999, building web based applications since 2001, and working entirely in a Linux/Apache environment since 2003. I consider myself a real geek, I love SciFi, computers, electronics, robotics, and all things high tech. I am an amateur maker in my free time, and have started recording my personal projects on my web-site http://perljedi.com.

In my short time here, I have inherited the some times daunting task of not only maintianing slashdot, but also of helping to keep us (or put us back) on the leading edge of technology, news, and geek culture. With the parting of our illustrious founder CmdrTaco, we look to our readers, old and new to help us find our way into the future. I will be using my journal here to share insight into our team, and the processes we are going through everyday to find how best to server our readers, and the world.

My current project is a re-examination of our Hall of Fame. I hope by highlighting our best X at a finer level of detail (where X could be anything from "Most commented on Story", to "Most active moderator", or anything else within reason) we will be able to encourage people to engage more with the site. We want slashdot to be a place that is welcoming to geek's of all kinds, and I hope to show our readers that whether you have been reading slashdot since the 1990's, or since July, you too can help us understand and shape the community, and through it, the world around us. I hope that doesn't sound to wishy-washey or corny. But I am a true believer in what we are doing here, and I am quite passionate about geeks, geek culture, and our role in shaping the world.

I'm not sure how many people will read this, but I want all slashdotter's, old and new, to engage with my team and the editorial team to help us keep slashdot great.

Databases

Journal Journal: LedgerSMB 1.3.0 -- Why it's cool

LedgerSMB 1.3.0 was released today after several years of development (perhaps nearly joining the ranks of Perl 6 and Duke Nukem Forever). The release offers a number of compelling features, such as separation of duties, far improved payment handling, better cash reconciliation and the like. But what makes LedgerSMB 1.3.0 cool is how we are pushing the envelope technically and attempting to provide a framework for quickly building new programs which re-use our application's functionality.

Simply put, the cool approach we are taking is in making stored procedures discoverable, much like web services. This is done by assigning semantic meaning to argument names, and then using a mapping function to pull argument names from the system catalogs, mapping these to object properties. This offers many of the benefits of web services, such as offering a looser coupling between database and application layers than is traditional, and it facilitates the development of add-ons or even other applications which re-use LedgerSMB functionality.

One key element to making this work is the principle that the database in such an environment should be the centerpiece of the computing environment rather than the bottom tier of a multi-tier architecture. Thus every application user is a database user, the database itself enforces permissions, and can act not only as a data store but also a message queue, possibly routing data to other applications (via queue tables and PostgreSQL's LISTEN/NOTIFY framework). In essence the database does everything that could be done with set functions.

Of course the database doesn't do everything. We don't hand it raw http query strings, or have it output HTML documents assembled from data inside the database. This is the job of the application layer, which is to manage the interaction with the human component. Separating this role off, then allows for more diversity in usage in the future. We are thus no longer tied to a web interface for the long-run, and could allow other client apps to be built on our software in the mean time, all sharing a common security and data logic framework.

In this regard, PostgreSQL takes on traditional middleware roles in LedgerSMB from 1.3 onward. This isn't to say it is an application server in the classical sense, but rather that it takes on many roles of application servers. We've found this approach to be quite scalable because hand-tuned SQL generally performs better (and is easier to troubleshoot) than ORM-generated SQL statements, and yet of course much business logic is not in the db server at all but rather in the application which provides the interface between the db server and the user interface, whatever that may be.

Work has already begun on 1.4 to take this approach to an even higher level, as we re-engineer the financial logic to make use of this approach.

Slashdot Top Deals

To the systems programmer, users and applications serve only to provide a test load.

Working...