Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Slashdot videos: Now with more Slashdot!

  • View

  • Discuss

  • Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).


Comment: Re:The 777 is unique in its vulnerability (Score 1) 113

I'm not Alanis.

Perhaps, ironic was an unfortunate choice of words, but I didn't mean it in terms of sarcastic/sardonic. There is an alternate definition:

happening in the opposite way to what is expected, and typically causing wry amusement because of this.
"it was ironic that now that everybody had plenty of money for food, they couldn't obtain it because everything was rationed"

(e.g. paradoxical, incongruous)

Shortly after 9/11 when they were first proposing armoring the cockpit doors, I remember thinking: "But, what if you have [a legitimate need] to get in there?". Hence, the irony for me. If the locked out pilot had access through such a maintenance port, he might have been able to override the suicidal co-pilot.

After GermanWings, there are new proposals:
(1) Europe adopting the U.S. policy of two crew members in the cockpit at all times [even if one is a flight attendant].
(2) Aircraft flight systems will [forcibly] take over flying the plane if they detect something [egregiously] unsafe--not merely warn the pilot.
(3) Allow a ground based pilot crew to take over flying the aircraft remotely (like a drone aircraft) if something is unsafe.
(4) Not allowing [as is presently allowed] a single person to disable the cockpit door unlock codes/keys.

Remedies (2) and (3) aren't limited to just a suicidal pilot. Hypoxia may overcome both pilot/co-pilot before they have a chance to switch to oxygen.

But, if people are screaming "beware of hackers" now, just imagine the hoopla surrounding implementation of (3). Although remote drone piloting is used by military drones, there have been some [unconfirmed] reports of nefarious people being able to take over drones.

Comment: Had a fire--Here's what I did (Score 1) 443

I actually experienced the scenario you're talking about: fire in my apartment complex. Fortunately, nobody was hurt but several people lost all their possessions. Lucky for me, the fire only got within 90 feet of my place [while the fire was raging I was sweating bullets]. This was the one day I didn't have my laptop [which was my previous backup in case of fire] with me and I was out at the time.

I now use a 64GB USB stick that I carry on my keyring, so it's always with me. I also have one that's in the trunk of my car [under the spare tire].

Additionally, mailing the the USB stick to a family member or friend [one that you trust]. Also, get a safe deposit box. This can hold a full blown 4GB USB portable drive that can keep a lot more data. Because you stated that you only need 5GB or so, this makes the USB stick the ideal solution.

If you're paranoid, encrypt the backup.

Keep multiple disks of whatever variety and rotate them. That is, backup to disk A on Monday, disk B on Tuesday, etc. That way, if the actual backup process croaks the backup media (e.g. power failure during the backup), you still have other copies. This rotation also applies to trips to the safe deposit box and return mailings from your trusted friend with the older backup drives.

Of course, you can do the encryption yourself locally and send it to the cloud [as others have suggested]. Use multiple vendors in case one goes out of business. Actually, this may not work too well because of ISP datacaps and slow uplink speeds if you have a lot of data, not because of the cloud storage company per se.

Comment: Re:Hell No Hillary (Score 1) 676

by Forever Wondering (#49459495) Attached to: Hillary Clinton Declares 2016 Democratic Presidential Bid

Cute animation, but you actually disprove your own point as one of the top search results was wikipedia. From the wiki entry, http://en.wikipedia.org/wiki/L... the Clinton, Carter, and Ford administrations each had two "scandals" in the executive branch. Most other [recent] republican ones had many more.

BTW, I didn't check the other search results because they appeared to be obscure_website_ive_never_heard_of.com and while wikipedia is far from perfect, I'd trust it [a bit] more than the others. Actually, I'd prefer a truly credible source like Wash. Post, NYT, CNN, LA Times, The Economist, etc.

Comment: Re: Fortran as a systems language (Score 1) 177

by Forever Wondering (#49263503) Attached to: Preferred programming paradigm?

I used to work for Prime [circa 1978] and used their Fortran to do system programming like things. It was fine. They even had an SLR metaparser written in it which we used in their in-house CAD system. IIRC, it was Fortran of the day plus a few intrinsics/assembly routines to be able to hit the hardware.

Comment: Re:Obligatory (Score 1) 161

by Forever Wondering (#48790001) Attached to: Rust Programming Language Reaches 1.0 Alpha

For example,

        Circle * foo() {

                Circle c1(5);

                Circle c2(10);

                return biggestCircle(&c1,&c2);


We know that would be invalid, but a C++ compiler wouldn't see any problem. The Rust compiler, on the other hand, can see that the lifetime of the return object of biggestCircle can be no longer than the lifetime of either parameter.

If Circle is a non-trivial struct (e.g. has 50 elements in it), passing by reference might be done for efficiency [e.g. biggestCircle args are "const Circle *"].

A compiler shouldn't make an assumption because biggestCircle might be defined in a separate .cc file and might clone/dup its return value from its arguments or a combination of arguments. The invocation might be:
    x = foo(); ...

Or biggestCircle might return something only obliquely related to c1/c2. biggestCircle might compare c1/c2 and get the max, but then do a search within "the global list of geometric objects" looking for a match to the max value and return the global/persistent value [which would live on beyond the outer return].

Rust would squash this even though it's perfectly valid [and desired].

Comment: Re:It's in the image (Score 2, Interesting) 187

by Forever Wondering (#48669775) Attached to: Human Eye's Oscillation Rate Determines Smooth Frame Rate

The mayonaise you like is the mayonaise you grew up with ...

Films are shot at 24 fps, but displayed [in theaters] at 48 fps, each frame is displayed twice: f0, black, f0, black, f1, black, f1, black, f2, ...

According to one study, when test audiences were shown true 1-to-1 48 fps film, they actually preferred the 24 fps.

The same is true for audio. Those that grew up on 128 kbps .mp3's preferred that over higher fidelity formats.

The human optic nerve has [surprisingly] low bandwidth. I worked for a company that developed a [now shipping] video product that models the human optic system and removes detail that the human eye would not see. This allows better compression without sacrificing video quality. In A/B testing of original [uncompressed] video sources vs. the detail reduced video, test audiences preferred the detail reduced video. It was considered "cleaner" and "more pleasing".

Comment: Re:First step is to collect data. (Score 1) 405

by Forever Wondering (#48382767) Attached to: Ask Slashdot: How To Unblock Email From My Comcast-Hosted Server?

All the rejection messages point to your systems being affected in some way. The "agent" may be establishing an SMTP connection that doesn't need authentication (e.g. it connects directly to yahoo's inbound SMTP port for a message to a yahoo user. Thus, it's not a relay as far as yahoo is concerned).

It could be bypassing anything you've already set up [or co-opting it in some way that you don't yet understand]. If your systems have been compromised, all the authentication credentials are available to the agent. The best way I know of to prove/disprove this is to set up a sniffer/router/blocker.

The rejections are based on [too] high message frequency, which tends to indicate that you're not on a blocklist [yet]. It's also not likely to be a policy change at a given mail recipient ISP since at least three started rejection at more or less the same time.

Having the ability to log/monitor/analyze traffic in general might be a good thing. What if it weren't just emails but DDoS or other attacks [which carry considerably more liability for your business]?

If you can track down some of the messages that got sent that had complaints attached to them, the delivery envelope may have some clues. For example, the specifics of the SMTP parameters used (ordinary SMTP or eSMTP, etc.) Perhaps contacting the mail abuse departments of yahoo et. al. and explaining what is happening may help. They could tell you how many messages are arriving from your IP address. Compare this against an estimate of what your users are doing. If your legit users haven't starting sending many more messages recently, but the ISP is seeing a huge uptick, this will be telling.

Since you've got [and are paying the extra money for] Comcast business class, they should be able to help with the traffic logging/analysis. Also, if the targeted ISPs are limiting based on an IP range, Comcast may be able to help in dealing with the ISPs. You may have to escalate this a level or two within Comcast's support hierarchy. Be sure to get a trouble ticket filed [if you haven't already].

Comment: Re:First step is to collect data. (Score 1) 405

by Forever Wondering (#48382017) Attached to: Ask Slashdot: How To Unblock Email From My Comcast-Hosted Server?

Deferred: 421 RP-001 ...

Are you sure your systems haven't been compromised by spambots? Everything was fine two weeks ago [and had been for a while]. What's changed? ISP logs before and after may show something.

Can you set up a new system [with a different OS like linux, netbsd, etc.] that is a gateway between your current systems and your router/modem [would require a second ethernet port/card]. Have this system filter/monitor all traffic, looking for something suspicious.

Comment: Re:I am not going to convert (Score 1) 245

by Forever Wondering (#48190981) Attached to: Help ESR Stamp Out CVS and SVN In Our Lifetime

I've used sccs, rcs, cvs, svn, and git [all in production environments], spanning a 30 year period. git is easier to use than svn, and more powerful [features that git pioneered have been backported into svn, so you're getting the benefits, even if you don't realize it].

Ultimately, it's all about the merging, which is the premise that git is based on. See:

Comment: I've already done it (Score 0) 245

by Forever Wondering (#48190617) Attached to: Help ESR Stamp Out CVS and SVN In Our Lifetime

I've already created perl scripts to do this. I've already got the blob files and a full git repo for netbsd. Yes, it takes days for these to run but what's the big deal?

I did this because I needed the scripts to convert some of my old personal software from CVS/RCS to git. To debug the scripts, I thought that a true test would be to convert something massive like netbsd. I'm not a snob as I also configured for freebsd and openbsd but didn't run the scripts on those.

I did this on an old 8-core 2.5GHz 64 bit machine with 12GB ram [and 120 of swap space] and enough disk space. The full retail price on this was $3000 five years ago. The same specs can be had much cheaper today.

How many repos of what projects are going to be converted? 10? 100? 1000? Ultimately, there aren't enough projects to justify a machine for 100% usage for a five year period.

I tried to post the script here but various /. posting filters tripped over the 800+ lines. So, here's the top comment section along with the comments for the various functions:

# gtx/cvscvt.pm -- cvs to git conversion
# commands:
# rsync -- sync from remote CVS repo
# cvsinit -- initialize local CVS repository
# co -- checkout CVS source
# agent -- do conversion (e.g. create blob files)
# xz -- compress blob files
# import -- import blob files using git-fast-import
# clone -- clone the bare git repo into a "real" one
# git -- run git command
# symbols:
# cvscvt_topdir -- top directory
# cvscvt_module -- cvs module name
# cvscvt_agent -- conversion agent (e.g. cvs2git)
# cvshome -- top level for most cvs files
# cvscvt_srcdir -- cvs work directory
# cvsroot -- cvs root directory (CVSROOT)
# cvsroot_repo -- cvsroot/CVSROOT
# cvscvt_rsyncdir -- cvsroot/cvscvt_module
# cvscvt_blobdir -- directory to store agent output blobs
# cvscvt_tmpdir -- temp directory
# cvscvt_logdir -- directory for logfiles
# git_top -- git files top directory
# git_repo -- git repo *.git directory
# git_src -- git extraction directory
# git_dir -- git [final] repo directory
# git_work -- git [final] working directory
# cvscvt_xzlimit -- xz memory compression limit
# cvscvtinit -- initialize
# cvscvtcmd -- get list of commands
# _cvscvtcmd -- get list of commands
# cvscvtopt -- decode options
# cvscvtall -- do all import steps
# cvscvt_rsync -- sync with remote repo
# cvscvt_tar -- create tar archive
# cvscvt_cvsinit -- create real repository
# cvscvt_co -- do checkout
# cvscvt_agent -- invoke conversion agent [usually cvs2git]
# cvscvt_cvs2git -- run cvs2git command
# cvscvt_xz -- compress blob files
# _cvscvtxz -- show sizes
# cvscvt_import -- run git fast-import command
# cvscvt_clone -- clone the bare git repo into a "real" one
# cvscvt_git -- clone the bare git repo into a "real" one
# cvscvt_cvsps -- run cvsps command
# cvscvtblobs -- get blob files
# cvscvtshow -- show cvs2git results
# cvscvtshow_evtmsg -- get fake timestamp
# cvscvtshow_etarpt -- show amount remaining
# cvscvtshow_msg -- output a message
# cvscvteval -- set variable
# cvscvtexec -- show vxsystem error
# cvslogfile -- get logfile
# cvslogpivot -- rename logfile

Get hold of portable property. -- Charles Dickens, "Great Expectations"