7

Should I be getting linked in?

Posted by T. Greg Doucette on Nov 8, 2010 in Technology

Last Thursday I posted an entry about why I started law:/dev/null, which led to a back-and-forth convo on Twitter with Matt Hollowell of LexisNexis. Matt’s comment on that post raised solid points that I hadn’t considered back in the halcyon days of August 20091

…and also prompted me to seek some guidance from y’all. Again. :angel:

Matt mentions the value of LinkedIn, which also echoes a sentiment posted by Ruth Carter back in July on the importance of targeted networking. From my limited perusal of the site, LinkedIn basically seems like “Facebook for Job-Seekers”. And therein lies my conundrum.

On the one hand, I’m definitely a job-seeker.

On the other, I can barely keep my Facebook page updated regularly :beatup:

That’s the main reason why I’m generally far behind the adoption curve when it comes to social networks. I was obstinate in my opposition to Twitter, and didn’t cave in and create my own account until this April — 4 years after it was created, and 3 after it hit mainstream. Since then I’ve been on this rollercoaster of using it frequently and then not using it at all. The same rollercoaster goes on with my Facebook account: it usually gets used for status updates, talking trash with friends about ACC athletics, and setting up event invites for SBA stuff.

I don’t doubt for a minute that there’s value to LinkedIn; otherwise it wouldn’t have any users. But should I be adding yet another social network to my digital repertoire if odds are good I’ll only be a sporadic contributor at best? What are the odds of outdated info doing more harm than good? How many of my law student readers have LinkedIn accounts already?

Thoughts are appreciated, thanks y’all! :D

  1. It seems so long ago now! :crack: []

Tags:

 
2

What could VZW be up to?

Posted by T. Greg Doucette on Nov 5, 2010 in Technology

For the past 2-ish weeks now I’ve been getting called at various hours of the day by Verizon Wireless. I’ve been with the company for almost a decade, I’m happy with my (lavish) phone service, pay my bill on time every month, enjoy my BlackBerry Tour,1 etc etc etc — basically there’s -0- reason for them to call me, so I just haven’t answered. My figuring is that if it was important enough, they’d leave a voicemail :beatup:

Well they called again around 7pm tonight, and one of my friends goes “You really should pick up, maybe they’re calling to give you money.” Implausible though it sounded, that thought hadn’t crossed my mind…

…so I called back.

And she was right :surprised:

Supposedly VZW was/is running a promotion “for certain customers, for a limited time only” to upgrade at my “New Every Two” discount 4 months ahead of schedule. I respectfully declined the offer because I don’t want to get locked in to another phone for 2 years when I’m hoping/praying for a CDMA iPhone to debut in January. She said that was fine… and in the alternative they were going to automatically credit me for one month’s free service, and I’ll still be able to do my usually upgrade in March :crack:

Then for the icing on the cake, she migrated me to a new phone plan that has unlimited minutes/text/data (versus my current 1350 minutes with unlimited text/data) that’s actually $10 cheaper a month, as part of a new 1-year agreement that will actually end ever-so-slightly earlier than my current 2-year agreement :spin:

Now I’ve mentioned my political leanings in past entries, that I’m generally a fan of business, I’m comfortable with companies making money as long as I’m getting a worthwhile product in return, and so on and so forth. But the soon-to-be-lawyer cynicism in me has to wonder what this was all about. Surely I don’t spend enough money to merit VZW just trying to keep me happy. I’ve never indicated a plan to switch to AT&T so that can’t be it. And even if they were trying to get everyone to upgrade to their new line of Android-based phones — a sentiment I’ve heard from several of my colleagues at school — they had no need to give me a month of free service when I declined.

Any of my less-cynical and/or tech-savvy readers familiar with the mobile phone market have any thoughts/insights?

  1. Even though I’m eagerly awaiting the iPhone :D []

Tags: ,

 
-

MacOS X, a decade later

Posted by T. Greg Doucette on Sep 13, 2010 in Technology

WARNING: Non-law content ahead :beatup:

I’ve been an Apple fan since middle school, a love affair I partly detailed in this Things TDot Likes entry from awhile back.

And 10 years ago today I was near the tail-end of my stint as a bona fide Apple employee, evangelizing on the company’s behalf at my alma mater N.C. State,1 when MacOS X Public Beta was released into the wild.

A screenshot of MacOS X Public Beta (Source: Wikipedia)

That’s version 10.0.0b (code name “Kodiak”2) for any of you who are current Mac users ;)

It’s hard for people to appreciate how much the state of operating systems has advanced over the past decade if you’re not a computer geek.

But I am, so let me tell you — things have advanced. A lot.

The great folks over at Ars Technica have dusted off their review of MacOS X Public Beta from a decade ago. Even if you’re not a gearhead like me, consider giving it a read and getting a feel for how primitive things used to be in computing not so long ago :)

  1. I had to give up the gig a month later, since it’s a bit difficult to be a “Student Representative” for a company when you’re no longer a student :beatup: []
  2. MacOS X releases have since been named after big cats: 10.0 was Cheetah, 10.1 was Puma, 10.2 was Jaguar, 10.3 was Panther, 10.4 was Tiger, 10.5 was Leopard, and the current 10.6 is Snow Leopard. I’m waiting for them to use Ocelot myself :D []

Tags: ,

 
-

Spruce-ifying our error messages

Posted by T. Greg Doucette on Sep 5, 2010 in Technology

Good evening y’all! :D

The never-ending war on WordPress comment spam has been less-intense the past couple weeks, owing in large part to my hair-trigger tendency to add people to the .htaccess banlist :beatup:  I started keeping track of the raw number of referrers1 and IPs banned just for my own amusement, and in typical TDot fashion created a chart showing where things were as of September 1st.

See the footnote before complaining about my spelling :P

Banning spammers has the upshot of “purifying” the site stats — meaning the people who show up in the logs are now either (a) search engine crawlers or (b) honest-to-God humans — but it also raises the possibility a legit visitor might get banned because they happen to be accessing the site from a spam-tastic host.

I’ve been meaning to clean up the ErrorDocument files that our web server spits out when that sort of thing happens, but considering I’ve barely kept up with posting do you really think I got around to something that requires actual coding? :P

Fortunately it’s a long holiday weekend following an abbreviated school week, so today got to be the lucky day I sat down and hammered out some more tweaks. In lieu of studying of course :beatup:

Now if you happen to be one of those unfortunate souls banned from accessing the law-licious goodness of law:/dev/null because you or your fellow server denizens have engaged in scurrilous spamming or other electronic acts of villainy, you’ll be greeted with a page explaining that you’re forbidden from accessing anything and, more importantly, my email address if you think I’ve banned you in error. w00t for slightly-more-useful error messages.

Of course with the 403 Forbidden page getting a makeover, the 404 Not Found page was feeling left out so I tweaked that too. Now if you try to reach a post that no longer exists or you go somewhere that’s just plain silly (http://www.lawdevnull.com/pinkelephants/ for instance) the page will not only let you know the thing your looking for isn’t there but also — thanks to AskApache’s Google 404 plugin — provide you with Google-generated suggestions for what you might have been trying to find :)

Feel free to poke around and experiment, and if you notice any bugs or kinks or typos let me know! Actual law-related content coming soon, but until then have a great night!! :D

  1. Computer Science story: even though it’s misspelled, “referer” is frequently used when referring to HTTP referrers since the misspelled variant was in the proposal creating the HTTP specification way back in 1995… because the automated spellcheck back then didn’t recognize either referer or referrer :surprised:  You can’t make this stuff up folks! []

Tags: ,

 
1

Fight WordPress comment spam with .htaccess

Posted by T. Greg Doucette on Aug 4, 2010 in Technology

Spambots really frost my Wheaties… :mad:

Given the prevalence of Google indexing and the role links to a given site play in search rankings, “spamdexing” is something every blog author is going to face at some point or another. Basically spammers write scripts to leave fake comments on a sh*tload of blogs containing a bunch of links in an effort to boost the search engine rank for their own site.

I had taken a fairly laissez-faire attitude toward spammers since law:/dev/null started back in August, but after getting slammed with spam last month I decided that needed to change. So part of my delay in getting things posted last week (aside from just having a lot to edit) was the product of me dusting off some of my old Computer Science notes and getting intimate with some old spam-fighting techniques.

I’m not sure I’ve got it completely re-mastered, but I figure I’ve got things down enough that I can share some of that insight with y’all. Besides, it took me 6 years to finish a 4-year degree — I might as well put what I learned to some use :beatup:

The overwhelming majority of websites across the globe use the Apache HTTP server, a truly excellent, scalable and secure open-source web server. Odds are good your own blog is running on Apache right now1 and that means you have an effective anti-spam tool built-in using an .htaccess file.

Disclaimer: .htaccess and regular expressions are both powerful tools for web development — especially when they’re combined together. Be über-careful as you work on this file (and make back up copies) because mistakes or typos can basically make your blog totally inaccessible to everyone. I’m also assuming you have at least some familiarity with your own webserver; since I don’t know the specifics of your own setup, proceed at your own risk, caveat emptor, etc etc etc. Basically #dontsuemeplzkthxu ;)

.htaccess is a plaintext file used by the Apache web server to process access-related commands called directives. To create one, all you have to do is create a new plain text file (e.g. in TextEdit on my Mac, after opening a new file I go to Format > Make Plain Text), save it, upload it to your server via FTP or however you directly upload files, then rename it “.htaccess” (without the quotes).

There are all sorts of cool things you can do with .htaccess… but I’m only going to show you a small subset, so feel free to Google for the rest ;)

====================
1) FIRST LOCK DOWN YOUR SERVER…
====================

Certain files on your blog get accessed on the backend by the web server itself or by you via a command-line interface. They’re not the type of thing that should ever be viewable or accessible to the public through a web browser.

For example, you don’t want everyone being able to read your .htaccess file because they’ll know what you’re defending against… and, by implication, what you’re not defending against ;)

Here’s a quick code snippet to block access to these files:

############ PROTECT FILES ############
# This snippet prevents unauthorized access to certain
# core files like .htaccess as well as logs, scripts,
# and other things that can be exploited by spammers
#######################################
<FilesMatch “\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
order allow,deny
deny from all
</FilesMatch>

The “#” denotes a comment to the web server, so everything after that symbol is ignored.

The line is a function call, and the “|” works as an OR logical operator, So here the function is telling the web server to run the inner segment of code if any file request contains .htaccess or .htpasswd or .ini or .phps or .fla or .psd or .log or .sh.

That inner segment of code just says to deny all access to the file requested. Someone trying to access this file will get a “403 – Forbidden” error message.

Then the tells the server the function is done.

====================
2) …THEN REDUCE SERVER OVERSHARE
====================

Turns out overshare isn’t just a people problem: computer servers sometimes needlessly share too much information themselves.

On many installations, for example, whenever the Apache web server generates a document (e.g. a “403 – Forbidden” error message or a “404 – Not Found” error) it includes a line at the bottom listing the version of the web server and what modules are running. This Server Signature is designed to help folks accessing websites through proxy servers who might not be able to tell which site generated a given error. But it also lets spammers know what you’re running, and if for some reason you have out-of-date software — more common than you’d think — spammers will then know which security exploits they can use against your server.

This information is still relatively easy to figure out, but there’s no point in letting your server just offer it up willy-nilly ;)

The ServerSignature is usually off by default, but just in case you can use this code:

############ DISABLE SERVER SIGNATURE ############
# This snippet disables the server signature so the server
# is not volunteering data about itself that could be useful
# to spammers in determining what attacks would work best
##################################################

ServerSignature Off

This just tells the Apache web server to shut off its ServerSignature. Very simple. :)

====================
3) BAN REMOTE COMMENTS
====================

In WordPress, leaving a comment accesses the wp-comments-post.php file. Some spammers will try to access this file without ever actually visiting your site.

You can stop these kind of non-local comments with the following code snippet:

############ NON-LOCAL COMMENT BAN ############
# This snippet prevents spammers from directly accessing
# the wp-comments-post.php file. In order to leave a comment
# a spammer must be “in” your domain by visiting your site.
###############################################
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/?wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !^http://www\.yourdomaingoeshere\.com [NC,OR]
# RewriteCond %{HTTP_REFERER} ^-?$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^-?$
RewriteRule .* – [F,L]

The 1st line is a function call that checks if you have the mod_rewrite Apache module installed and running; odds are you do, but it’s good to check just in case. The 2nd line tells Apache to turn on the URL ReWrite engine.

The next 4 lines cover the conditions that must be met for the URL rewrite command to be executed: (1) the spammer must be trying to POST data,2 (2) the POST data must be going directly to the wp-comments-post.php file, and either (3) the POST attempt is not coming from your domain itself (the “NC” in brackets means the URL is not case-sensitive) or (4) the commenter is using a browser that does not have a HTTP_USER_AGENT programmed.3

Assuming that batch of conditions are met — 1 and 2 and (3 or 4) — the ReWriteRule line is executed. In this case the poster gets a 403 Forbidden error when the comment is submitted (the “F” in the brackets) and the ReWriteEngine stops processing because this is the last command (the “L” in the brackets).

You can also uncomment the line I included that blocks people from posting if there is an empty HTTP_REFERER field also. I left this one out because some security programs intentionally send blank referrer info so you don’t know what website someone is coming from, but if you don’t mind the risk of blocking those folks you can enable that rule as well.

====================
4) BAN SPAMMERS
====================

This is the real “meat and potatoes” of the .htaccess file as far as WordPress spam goes, and in my tests over the past couple weeks it’s been highly effective.

Although you can find tutorials online using the ReWriteEngine for this, similar to the non-local comment ban in #3 above, I’m personally a fan of using Apache’s environment variables. Since the objective of spamdexing is to increase rankings in search engines, spammers usually leave referrer code in your logs that you can use to ferret them out and stop them from ever coming back.

Here’s the code snippet:

############ SPAMMER BAN ############
# This snippet uses environment variables to ban spambots
# that come to your site with certain characteristics, such
# as Referer code from a spam-y site
#####################################

SetEnvIfNoCase Via badproxy spambot
SetEnvIfNoCase Referer badspammer1.com spambot
SetEnvIfNoCase Referer badspammer2.ru spambot
# […add as many of these lines as you have bad referrers…]
SetEnvIfNoCase User-Agent ^Bad.Spammer.Browser1 spambot
# […add as many of these lines as you have bad User-Agents…]

order allow,deny
deny from env=spambot
deny from 0.0.0.0
deny from 255.255.255.255
# […add as many of these lines as you have bad IP address not blocked by referrer bans…]
allow from all

So here’s the way this works. If you see a comment from a spam website or you notice a spamming User-Agent in your logs, you create an entry for it like in the first paragraph.

SetEnvIfNoCase tells Apache to create an environment variable if the given characteristic exists. So, in this example, if a spammer is coming from badspammer1.com Apache will create an environment variable called “spambot”.4

Down in the second paragraph, it will deny access to your site from that referrer since the “spambot” variable is true.

Also in this section, you can deny access from specific IP addresses as well if you notice the same IP producing the same spam over and over. For example, earlier this week I had a handful of compromised PCs leaving me spam comments with fake URLs (meaning the Referrer info was useless) and no common User-Agent I could ferret out of my logs. So I just blocked their IP addresses.

Blocking IPs is a bit extreme since they can be dynamically assigned and may end up belonging to a legitimate commenter days later, so if you do block an IP address I’d suggest commenting it out with a “#” after a couple weeks just in case. You can always un-comment it if the spamming picks up again. :)

====================
5) BAN HOTLINKERS
====================

Hotlinking is the process of taking a URL of where an image is hosted and pasting it into your own page. This is particularly common on message boards where folks post images they see around the web. When you hear people talk about “bandwidth theft”, hotlinking is the action that leads to it. Basically people are loading the image from your own server without ever visiting your site.

I’ve always taken a fairly permissive view toward hotlinking, mostly because I generate a lot of tables and graphs that I’m perfectly fine with other people using — and if they use them, I’d like to see in my logs where they’re using them ;)

But sometimes you get someone hotlinking an image that is loaded so many times (like on a super-busy forum) that your server chokes or you use all your bandwidth for a given month or you get a nastygram from a server administrator for hogging system resources. That’s what happened to me earlier this month :( So using the same environment variables approach for banning spammers I wrote up a blacklist for banning certain excessive hotlinkers.

Here’s the code snippet:

############ HOTLINK BAN ############
# This snippet prevents hotlinks to files in your local domain
# to prevent others from stealing your bandwidth (almost always
# used for picture files).
#####################################
SetEnvIfNoCase Referer badhotlinker1.com hotlinkers
SetEnvIfNoCase Referer badhotlinker2.ru hotlinkers
#[…add as many of these lines as you have hotlinkers…]
<FilesMatch “\.(png|jpg|jpeg|gif|bmp|swf|flv|pdf)$”>
order allow,deny
deny from env=hotlinkers
# ErrorDocument 403 /somedirectory/nohotlinking.gif
allow from all
</FilesMatch>

My current anti-hotlinking pic. It needs work.

We create the environment variable “hotlinkers” if someone is coming from a recognized domain where the image is getting hotlinked. We then use the FilesMatch directive (the same type we used in #1 up at the top) to see if they’re trying to load certain image files like .png, .jpg, .gif, and so on.

If they’re accessing those filetypes from the hotlinked domain, they’ll get a 403 Forbidden error instead.

And if you’re in an artistic mood, the commented line sends them to a custom 403 Forbidden error page — just uncomment it and in place of the hotlinked image they’ll instead see whatever you choose to put in its place. In my case I went with advertising for the blog :beatup:

—===—

Hope this helps any of you fellow blawgers who are tired of dealing with spam comments!  If you have any questions let me know in the comments — and if you’ve somehow been banned from commenting, send me an email5 ;)

And if you happen to be one of my CSC colleagues from NC State, please feel free to double-check my syntax and make sure I’ve got everything right :D

Have a great night y’all! :)

  1. If you’re not sure what webserver you’re on, check with your web administrator. []
  2. This is usually what happens when you submit a form online, contrasted with a GET submission where the data being submitted is embedded within the result URL itself. []
  3. This might, in very rare occasions, block a legitimate commenter. I’m not sure if it will ever happen but consider yourself forewarned :) []
  4. The default value for these is TRUE, but you can also type in “spambot=TRUE” if you’re a stickler for proper coding techniques. []
  5. My email address is located at the bottom of our About page ;) []

Tags: , , ,

 
2

A “real world” byproduct of overshare

Posted by T. Greg Doucette on Jul 29, 2010 in Technology

Good evening y’all! :)

Unlike last week and the week before, I don’t have a string of almost-ready entries just awaiting editing before they’re posted. There’s been a lot of upheaval going on this past week (some of it good, some not so much) so I haven’t been as diligent in keeping law:/dev/null as up-to-date as usual :beatup:

I’m making an exception today, though, because this dovetails with my comments to you about Facebook and overshare in last week’s TDot’s Tips entry on tightening up your digital life.

From today’s article at msnbc.com:

Details of 100 million Facebook users published online
Users’ personal information cannot now be made private, security consultant says
updated 7/29/2010 8:59:38 AM ET

The personal details of 100 million Facebook users have been collected and published online in a downloadable file, meaning they will now be unable to make their publicly available information private.

photo courtesy of msnbc.com

However, Facebook downplayed the issue, saying that no private data had been compromised.

The information was posted by Ron Bowes, an online security consultant, on the Internet site Pirate Bay.

Bowes used code to scan the 500 million Facebook profiles for information not hidden by privacy settings. The resulting file, which allows people to perform searches of various different types, has been downloaded by several thousand people.

This means that if any of those on the list decide to change their privacy settings on Facebook, Bowes and those who have the file will still be able to access information that was public when it was compiled.

Bowes’ actions also mean people who had set their privacy settings so their names did not appear in Facebook’s search system can now be found if they were friends with anyone whose name was searchable.

‘Scary privacy issue’
On his website, www.skullsecurity.org, Bowes said the results of his code were “spectacular,” giving him 171 million names of which were 100 million unique.

“As I thought more about it and talked to other people, I realized that this is a scary privacy issue. I can find the name of pretty much every person on Facebook,” he wrote.

“Facebook helpfully informs you that “[a]nyone can opt out of appearing here by changing their Search privacy settings” — but that doesn’t help much anymore considering I already have them all (and you will too, when you download the torrent). Suckers!”

“Once I have the name and URL of a user, I can view, by default, their picture, friends, information about them, and some other details,” Bowes added. “If the user has set their privacy higher, at the very least I can view their name and picture. So, if any searchable user has friends that are non-searchable, those friends just opted into being searched, like it or not! Oops :)”

He said he discovered the top first name in the list was Michael, followed by John, David, Chris and Mike. The top surnames were Smith, Johnson, Jones, Williams and Brown.

A privacy expert expressed concern at the implications of Bowes’ actions. Simon Davies, of campaign group Privacy International, told the BBC that some Facebook users “did not understand the privacy settings and this is the result.”

“Facebook should have anticipated this attack and put measures in place to prevent it,” he told the BBC. “It is inconceivable that a firm with hundreds of engineers couldn’t have imagined a trawl of this magnitude and there’s an argument to be heard that Facebook have acted with negligence.”

‘A little terrifying’
Some users of Pirate Bay shared his concerns.

“This is awesome and a little terrifying,” lusifer69 wrote on the site. And another, Porkster, said: “I don’t think this is a hack, but a collection from public domain info that people have shared. The importance of the info is structuring it and allowing someone to search or compute the data.”

However, jak322 said: “I’ve got to say, who cares. All the info here is already in the public domain, is not sensitive and as a developer I already have access to what could be deemed personal and private data through the Facebook API.”

In a statement emailed to msnbc.com, Facebook agreed, saying the information on the list was already available online.

“People who use Facebook own their information and have the right to share only what they want, with whom they want, and when they want,” it said.

“Our responsibility is to respect their wishes. In this case, information that people have agreed to make public was collected by a single researcher. This information already exists in Google, Bing, other search engines, as well as on Facebook,” the statement added.

“No private data is available or has been compromised. Similar to a phone book, this is the information available to enable people to find each other, which is the reason people join Facebook. If someone does not want to be found, we also offer a number of controls to enable people not to appear in search on Facebook, in search engines, or share any information with applications.”

© 2010 msnbc.com

The comments in this article notwithstanding, go through your privacy settings and lock down anything in your profile that you may not want permanently open to the public.

It’s true the information that was public when this user-created database was compiled will still be in it — but (i) relatively few people will know about this database so the threat should (hopefully) be limited, and (ii) locking your profile down now will prevent any future access to anyone trying to create a similar or updated database of this information down the road.

That’s it for today. Hope all of you are having a great week! :D

Tags: ,

 
1

Anyone else get a random spam spike?

Posted by T. Greg Doucette on Jul 11, 2010 in Technology

Anyone who runs or reads a blog knows comment spam is a royal pain in the @$$. Fortunately there are software tools like Akismet that screen out most of the mess. The (minor) tradeoff is that you have to go through the comments flagged as spam just in case there’s a false positive.

Here at law:/dev/null we’ve averaged about 6 spam comments a day pretty much since we started, with an occasional jump here or there to a dozen or so. But for some reason over the past couple days there’s been a huge spam spike. Here’s a screenshot of my Akismet stats:

Random spam spike...

Anyone else had similar spam activity over the past 48 hours? I haven’t made any recent software changes that would expose the blog to attack, so I’m assuming it’s just elevated botnet-type activity. But I’d like to see if this is a localized phenomenon in case I need to take more steps to harden the server.

Insights from fellow blawgers are appreciated :)

I’m also going to work on some back-end tweaks before going to bed tonight. If somehow I accidentally block you from commenting, send an email to tdot [at] lawdevnull.com and let me know so I can fix it :*

Tags: ,

 
1

More Blog Tweaks

Posted by T. Greg Doucette on Jun 18, 2010 in Technology

I feel like I cheated those of you who expected something at least quasi-substantive today rather than a note about my backwards sleeping habits. So in an effort to fix any lingering disappointment you might have, I’m writing another less-than-quasi-substantive entry in the same day — my hope is that the rules of fraction addition apply to blog posts too, and these entries will add together into one quasi-substantive post :beatup:

The folks over at WordPress released version 3.0 of the software powering law:/dev/null, so I decided to take most of tonight to knock out some tweaks to the blog.

—===—

1) WordPress 3.0 is now installed on the backend of the site. I’m sure I will find some value out of it at some point, but right now the only things I’ve noticed are the things that annoy me.

Someone didn't bug-test their code...

For example, they’ve changed the color scheme for the admin UI so that the gray version is now near-totally grayscale and the blue version is now near-totally blue; my original UI was mostly grayscale with touches of color where appropriate.

There’s also a glaring UI bug in the counting mechanism for posts and related items: only 15 posts appear per page, but the counter is apparently hard-coded to expect 20 posts per page. Essentially the start value is [{($pageNum-1)*20}+1] when it should be [{($pageNum-1)*$postsNum}+1] where $postsNum is the user-configured number of posts that should appear. Instead I get graphic anomalies like the one in this screenshot… not terribly inspiring for a release that supposedly has 1,217 bugfixes1 :roll:

2) After upgrading WordPress, I went through all of the posts that were listed in multiple categories and trimmed them down so each post now appears in 1 — and only 1 — category apiece.  I also consolidated or recategorized entries in the previous “Background: Introductions”, “Background: NCCU”, and “Background: TDot” subcategories to help limit the proliferation of category detritus.

3) The various changes to the categories were partly to ensure forward-compatibility with any future changes I make to the permalinks… which you might have noticed look a little different :)

The old “ugly” permalinks that are the default have been changed to something more readable. So, for example, yesterday’s entry used to look like:

http://www.lawdevnull.com/?p=2424

and now it looks like:

http://www.lawdevnull.com/2010/06/a-downside-to-summer-school/

It’s a longer URL, but (i) it looks better and (ii) it makes reading the Site Stats easier for me ;)  The old URLs should still work and get automatically redirected. If you find an old link that’s not redirecting like it should, let me know.

4) I’ve also started going through the old entries and adding in relevant tags to each post. It’s going to take a couple more days to go through all 248 entries, but once it’s done I can work on adding in one of those tag cloud widgets to the sidebar to help simplify finding the stuff you want.2)

5) I also stumbled across a few more law student blogs amid my usual web wanderings, and added them to the blogroll. If you’ve got a blog you want added to the list, send me an email: TDot [at] lawdevnull.com :)

—===—

Not much, but it’s progress — and of course there will be more to come in the days / weeks / months ahead ;)

Thank you again for your continued support of law:/dev/null, I truly do appreciate it :) Have a great night y’all! :D

  1. The ending value has the same bug, but looks like it uses a conditional operator to cap $endValue to the number of $totalPosts so it’s not noticeable in the graphic I posted. []
  2. Moral of the story to would-be bloggers: configure your blog the way you want before you start writing entries ; []

Tags: ,

 
5

Quick hat tip to Zuckerberg

Posted by T. Greg Doucette on Jun 10, 2010 in Technology

Good evening y’all!

I promise you I haven’t forgotten about the race relations entry and $$ entry

For tonight I just wanted to give a quick hat tip to Mark Zuckerberg, the guy who created Facebook. Rarely a week goes by on the internet where someone somewhere doesn’t complain about Facebook’s privacy settings, interface changes, or some other component. Amid all the complaints — many of them legitimate — it’s easy to forget Facebook has done wonders for networking and finding people you once lost contact with.

Earlier today I had lunch with a friend I hadn’t seen since I graduated high school in 1998. We’ll call her Melinda.1 She and I were close friends back in high school, but lost contact when I had to drop out of NC State back in 2000. By the time I had regular access to the internet  and a phone again, her email address had changed, my email address had changed, and both of us had new phone numbers (and no mutual friends who kept in touch with us both).

Then at some point a couple months ago I found a whole raft of high school classmates when I was invited to a Facebook group for alumni of our high school chorus,2) and she was among them. Well over a decade had gone by for both of us: two degrees / a family / a dream job for her, and stuff y’all have already read for me.

We only talked for about an hour today before both of us had other obligations to attend to, but considering once upon a time I thought I’d never see Melinda at all until the 20-year class reunion3 I’m grateful to even have the option of having that lunch.

So Mark, if you ever happen to swing by my little piece of internet real estate: thanks :)  And feel free to join our law:/dev/null Facebook page ;)

I’m off to bed folks, getting up early to watch my successor as UNCASG President get sworn in to the UNC Board of Governors. Hope all of you have an amazing night! :D

  1. As in Medical Examiner Melinda Warner. Any Law & Order: SVU buffs here? []
  2. Yes, I confess: TDot used to sing. And the Salem High School Madrigals are a sufficiently Big Deal™ that they’ve got their own section in the school’s Wikipedia entry ; []
  3. Our 10-year class reunion was cancelled because apparently the class officers we elected back in 1998 never raised any money for the reunion trust fund :beatup: []

Tags: , , ,

 
5

Not the specialty I had in mind…

Posted by T. Greg Doucette on Jun 1, 2010 in Technology

A couple weeks ago I mentioned to y’all how law school’s caste system melts away when 2Ls and 3Ls end up in class together. A comment by Va. suggested the reason for that lack of social division is folks developing their various specialties in given areas and becoming a “go to” person for that topic, regardless of class year.

It appears I’ve been typecast due to this blog, because it seems my specialty is “Computer Scientist Guy” :beatup:

One of the now-3Ls at NCCU Law contacted me last night for help setting up email accounts for a civic organization he leads. He’s a decent guy so I agreed to assist. The project ended up being a bit more expansive than our initial discussion, but about an hour later we’ve finally got everything set up, functional, and properly working with his Microsoft Outlook installation.1 Then literally moments later — we’re talking 10 minutes, tops — a 2L (unaffiliated with the 3L) called asking for IT help for her organization.2 :crack:

Now don’t misunderstand me: I’m truly and deeply grateful to my alma mater and its Department of Computer Science. They took excellent care of me the last four years, and I’ll be giving back as soon as the post-J.D. paychecks start rolling in. I also love being able to help my fellow Legal Eagles be successful. And I didn’t give law:/dev/null the subtitle “Musings of a Computer Scientist turned Law Student” by accident.

But this is now the 5th pro bono web project I’ve done for my NCCU Law colleagues in less than a year (including two for Madame Prosecutor) alongside the normal IT-related questions. It’d be nice to have someone calling me up for CrimLaw or CivPro advice instead :P

</mini-rant>

Our new favicon! :D

In blog-related news, law:/dev/null now has…

…wait for it…

…a real favicon!  Yes, dear readers, now instead of the blank page or globe or whatever generic image your browser used when it tried to download our non-existent favicon.ico file you should instead see a 16px-by-16px copy of the image to the right.

I thought about doing something fancier, but I figured an image that served as a double entendre was appropriate. You see it’s not only a visual depiction of my nom de plume — it also looks like a body that lost its head, which is a fitting description for how I feel about once every other class :beatup:

That’s all I’ve got for tonight ladies and gentlemen :) Some time this week I’m hoping to pen some thoughts on today’s holding by the Supreme Court in Berghuis v. Thompkins, a CrimLaw case that seems tailor-made for late-night comedy show jokes. Just look at the first sentence of the holding section of the syllabus: “Thompkins’ silence… did not invoke his right to remain silent.”

I happen to agree with the majority, but they probably could have worded that a bit better ;)

Anyhow, if I get through the paper due tomorrow and presentation due Thursday I’ll try to cobble together some thoughts on it. Until then, have a great night!! :D

  1. Unsolicited advice for anyone planning to buy a new laptop for law school:  get a Mac :* []
  2. It must have just been a bad day for technology all around, because as I was working with those two folks I got a text message from a classmate needing help finding where the hard drive was located on his ThinkPad :beatup: []

Tags: , , , ,

Copyright © 2020 law:/dev/null All rights reserved. Theme by Laptop Geek.
Find TDot on Twitter or on Google+.