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

 



Forgot your password?
typodupeerror
×

Comment Define: 'My Media' (Score 1) 187

If I have Netflix streaming, I can watch thousands of movies and TV shows that are not stored locally, so are those 'mine'?

If so, then I have about 0.0000000000001% of my media stored locally since the vast majority of it is accessed on the cloud.

In terms of media that I watch, I stream about 1000 shows or movies for every 1 that might watch from a local collection (if ever).

Comment I/O Bandwidth (Score 3, Interesting) 84

Many 3D engines are carefully tuned to the limited bandwidth to the GPU cards that provides them just enough bandwidth per frame to transfer the necessary geometry/textures/etc for that frame. The results, of course, stay on the GPU card and are just outputted to the frame buffer. Now, in addition to that existing overhead, the engine writer would now have to transfer back the results/frame buffer back to the CPU to process, generate an image, that is then passed back to the GPU to be displayed as an image? Or am I missing something?

While I'm sure it would allow customized algorithms, they would have to be rather unique to not be handled by the current state of geometry/vertex/fragment shaders. Are they thinking some of non-triangular geometry?

Maybe there is a way to send the result of the maths directly to the frame buffer while it's on the GPU?

Comment Re:How Blackberry could remain relevant (Score 1) 278

Samsung did this already. It's called Knox. As most Android vendors have discovered, competing with Samsung is a losing proposition.

True, but if anyone could compete with Samsung in the mindshare of the enterprise, it would be Blackberry. Samsung is pouring tons of money into building their mindshare and awareness in the enterprise space, something that Blackberry already has.

If that could easily be done, they would have done it for BB 10. And honestly, can you name one BlackBerry app worth having that doesn't exist on Android already? Ironically, BB did build Android compatibility into BB 10... but it apparently hasn't made the platform any more popular.

Yes, I was thinking later that this was more optional and extraneous. It would depend on how many enterprise apps were already custom made for Blackberry, not for games or other novelties that are Blackberry-only.

Comment How Blackberry could remain relevant (Score 3, Interesting) 278

Blackberry could succeed on their name, if they tweaked their brand a little and adopt a more 'Samsung' approach. Their name is already synonymous with enterprise level email, service and solutions, so capitalize on that, just with a different platform.

  • 1. Create an enterprise hardened version of Android
  • 2. Integrate with their existing Blackberry Enterprise Server (and of course other email providers, but provide a good business case for using their services like uptime, security, no NSA snooping, etc
  • 3. Provide a compatibility layer/VM for existing Blackberry apps on their devices

This would provide end users with a standard Android platform just with more security features (maybe fingerprint, retina scan, whatever, and market it for security conscious individuals), and it would provide enterprises with a trusted platform.

Individuals will still get an Android platform with all those apps, and Businesses will get a platform that plugin into a standard Android ecosystem.

Anyways, those are my thoughts about how they could still make it work

BTW, Blackberry, if you're looking for a new CEO or VP-level manager to implement this solution, I'm available.

Comment No real consequences imposed by the ISP (Score 0) 418

After five or six "strikes," however, the person won't face any repercussions under the program and is likely to be ignored. It's unclear whether such repeat offenders would be more likely at that point to face an expensive lawsuit.

So, no termination of your account, or automatic penalties from your provider except maybe some bandwidth throttling. Seems like it's just an alert system for the RIAA/MPAA.

Comment Re:Missing option: In Real-Time (Score 4, Insightful) 171

I would argue no. I think of organizing as bringing order to chaos, not keeping an already established order.

For example, if my bookshelf is organized first by author and then by title, and every time I buy a new book and place it on the shelf I just add it in where it belongs, then I wouldn't say I organize my bookshelf every time I buy a new book. I would just say my bookshelf stays organized, and that I just maintain the existing order.

However, if my bookshelf had no order and I sat down and arranged the books by author and then title, then I would say I organized the bookshelf.

In more relevant-to-the-discussion terms, I would only count organizing bookmarks as bringing up the bookmark manager, which I never have to do (Never meaning haven't used it since I adopted this system).

Comment Put the old domain in the name (Score 2) 383

I presume the old format looked like:

emailname@subdomain.domain.com

Make the new ones:

emailname.subdomain@domain.com

This should prevent any name clashes and still move all the emails to one domain and even preserve the similar format the users already have. New users may not even need their own .subdomain after the email name, but you'll be adding them as you go forward and can check for clashes when they are added and maybe just add a .subdomain to them, or numbers to the end.

Comment Current Records (Score 5, Informative) 307

According to Wikipedia:
http://en.wikipedia.org/wiki/Words_per_minute

The fastest typing speed ever, 216 words in one minute, was achieved by Stella Pajunas in 1946 on an IBM electric.[6][7][8][9] As of 2005, writer Barbara Blackburn was the fastest English language typist in the world, according to The Guinness Book of World Records. Using the Dvorak Simplified Keyboard, she has maintained 150 wpm for 50 minutes, and 170 wpm for shorter periods. She has been clocked at a peak speed of 212 wpm.

One of the most notable online records considered genuine is 256 wpm (a record caught on video) on TypeRacer by American Sean Wrona, the inaugural Ultimate Typing Championship winner, which is considered the highest legitimate score ever set on the site.

Comment Enterprise Java Version (Score 5, Funny) 438

package enterprise;

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Collections;
import java.util.Map.Entry;
import java.util.Random;
import java.util.SortedMap;
import java.util.TreeMap;

public class Maze {
    private final WallFactory<Double> wallFactory;
    private final EntropyGenerator entropyGenerator;

    public Maze( WallFactory<Double> wallFactory, EntropyGenerator entropyGenerator ) {
        this.wallFactory = wallFactory;
        this.entropyGenerator = entropyGenerator;
    }

    public void visit( MazeVisitor visitor ) throws MazeException {
        while( true ) {
            MazeWall wall = wallFactory.createMazeWall( entropyGenerator.getNewEntropyValue() );
            wall.visit( visitor );
        }
    }

    public interface MazeWall {
        /**
         * @param visitor
         * @throws IOException
         */
        void visit( MazeVisitor visitor ) throws MazeException;
    }

    public static class LeftDiagonalWall implements MazeWall {
        @Override
        public void visit( MazeVisitor visitor ) throws MazeException {
            visitor.visit( this );
        }
    }

    public static class RightDiagonalWall implements MazeWall {
        @Override
        public void visit( MazeVisitor visitor ) throws MazeException {
            visitor.visit( this );
        }
    }

    public interface MazeVisitor {
        void visit( LeftDiagonalWall leftDiagonalWall ) throws MazeException;

        void visit( RightDiagonalWall rightDiagonalWall ) throws MazeException;
    }

    public interface WallFactory<T> {
        /**
         * @param value
         * @return the MazeWall
         * @throws MazeException
         */
        MazeWall createMazeWall( T value ) throws MazeException;
    }

    public static class StrategyWallFactory<T> implements WallFactory<T> {
        private WallRepartitionStrategy<T> wallRepartitionStrategy;

        public StrategyWallFactory( WallRepartitionStrategy<T> wallRepartitionStrategy ) {
            this.wallRepartitionStrategy = wallRepartitionStrategy;
        }

        @Override
        public MazeWall createMazeWall( T value ) throws MazeException {
            Class<? extends MazeWall> wallClassForValue = wallRepartitionStrategy.getWallClassForValue( value );
            try {
                return wallClassForValue.newInstance();
            } catch( InstantiationException | IllegalAccessException e ) {
                throw new MazeException( "Cannot create MazeWall instance", e );
            }
        }
    }

    public interface WallRepartitionStrategy<T> {
        /**
         * @param value
         * @return the wall class for value
         * @throws MazeException
         */
        Class<? extends MazeWall> getWallClassForValue( T value ) throws MazeException;
    }

    public static class ProbabilityThresholdWallRepartitionStrategy implements WallRepartitionStrategy<Double> {
        private SortedMap<Double, Class<? extends MazeWall>> thresholds = new TreeMap<Double, Class<? extends MazeWall>>( Collections.reverseOrder() );

        public void declareWallThreshold( Double probability, Class<? extends MazeWall> wallClass ) throws MazeException {
            if( probability < 0 || probability > 1 ) {
                throw new MazeException( "Invalid probability " + probability );
            }
            thresholds.put( probability, wallClass );
        }

        @Override
        public Class<? extends MazeWall> getWallClassForValue( Double value ) throws MazeException {
            for( Entry<Double, Class<? extends MazeWall>> entry : thresholds.entrySet() ) {
                if( entry.getKey() < value ) {
                    return entry.getValue();
                }
            }
            throw new MazeException( "No MazeWall class found for probabitity threshold " + value );
        }
    }

    public static class MazePrintVisitor implements MazeVisitor {
        private static final String LEFT_WALL_REPRESENTATION = "&#9585;";
        private static final String RIGHT_WALL_REPRESENTATION = "&#9586;";

        private final Writer writer;
        private final int lineWidth;
        private int count;

        public MazePrintVisitor( Writer writer, int lineWidth ) {
            this.writer = writer;
            this.lineWidth = lineWidth;
        }

        @Override
        public void visit( LeftDiagonalWall leftDiagonalWall ) throws MazeException {
            print( LEFT_WALL_REPRESENTATION );
        }

        @Override
        public void visit( RightDiagonalWall rightDiagonalWall ) throws MazeException {
            print( RIGHT_WALL_REPRESENTATION );
        }

        private void print( String str ) throws MazeException {
            try {
                if( count >= lineWidth ) {
                    count = 0;
                    writer.write( System.lineSeparator() );
                }
                writer.write( str );
                count += str.codePointCount( 0, str.length() );
            } catch( IOException e ) {
                throw new MazeException( "Error printing maze", e );
            }
        }
    }

    public interface EntropyGenerator {
        double getNewEntropyValue();
    }

    public static class JavaRandomEntropyGenerator implements EntropyGenerator {
        private Random random = new Random();

        @Override
        public double getNewEntropyValue() {
            return random.nextDouble();
        }
    }

    public static class MazeException extends Exception {
        public MazeException( String message ) {
            super( message );
        }

        public MazeException( String message, Throwable cause ) {
            super( message, cause );
        }
    }

    public static void main( String[] args ) throws Exception {
        ProbabilityThresholdWallRepartitionStrategy repartitionStrategy = new ProbabilityThresholdWallRepartitionStrategy();
        repartitionStrategy.declareWallThreshold( 0.0, LeftDiagonalWall.class );
        repartitionStrategy.declareWallThreshold( 0.5, RightDiagonalWall.class );
        WallFactory<Double> wallFactory = new StrategyWallFactory<Double>( repartitionStrategy );

        EntropyGenerator entropyGenerator = new JavaRandomEntropyGenerator();

        Maze maze = new Maze( wallFactory, entropyGenerator );

        MazePrintVisitor printVisitor = new MazePrintVisitor( new OutputStreamWriter( System.out ), 40 );
        maze.visit( printVisitor );
    }

}

Slashdot Top Deals

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...