Angel \”Java\” Lopez on Blog

May 28, 2015

SparkSharp, Spark in C# (2) Implementing Map and Reduce

Filed under: .NET, C Sharp, Open Source Projects, Spark, SparkSharp — ajlopez @ 10:15 am

Previous Post

The project repo is at:

https://github.com/ajlopez/SparkSharp

I’m using TDD (Test-Driven Development) workflow to write the application, so the code is evolving with the use cases I added as tests. I only wrote the code needed to pass the tests. When I had new use cases, I will add new functionality. As an example, the original project has an Spark Context, with factory methods to create Datasets. I don’t need that class, yet. So in the current conde, the Datasets are created as public objects using new operator..

Born after a refactor, the abstract class for all Datasets is BaseDataset. Partial code:

public abstract class BaseDataset<T> : IEnumerable<T>
{
    public abstract IEnumerable<T> Elements { get; }

    public BaseDataset<S> Map<S>(Func<T, S> map)
    {
        return new EnumDataset<S>(this.ApplyMap(map));
    }

    public S Reduce<S>(Func<S, T, S> reduce)
    {
        S result = default(S);

        foreach (var elem in this)
            result = reduce(result, elem);

        return result;
    }
    
    // ...

    private IEnumerable<S> ApplyMap<S>(Func<T, S> map)
    {
        foreach (var elem in this)
            yield return map(elem);
    }
    
    // ...
}

The enumeration of the dataset elements should be implemented by the concrete subclass. The implementation of Map and Reduce is general, for all datasets. Those methods are defined in the abstract class. Thanks to C#, those methods can receive a lambda or a Func (a function).

In the ApplyMap method I’m using the C# yield operator to return an element suspending the executiong of the foreach. That command will resume when the consumer needs the next element of the enumerable collection. In this way, the generation of the elements is lazy, each element is produced only under demand. A note: C# has lambdas and delegate functions, and they are examples of good and useful features added to a programming language. In contrast, Java world has Scala, that in my opinion, it a bit “too much”. I prefer the evolution of C# instead of Scala.

There are no tests using the abstract class (it was born as a refactor), but they are tests on concrete ones. A test of Map method using EnumDataset (a Dataset that is a wrapper around an IEnumerable collection):

[TestMethod]
public void MapIncrement()
{
    EnumDataset<int> ds = new EnumDataset<int>(new int[] { 1, 2, 3 });
    BaseDataset<int> mapds = ds.Map(i => i + 1);
    var enumerator = mapds.GetEnumerator();

    for (int k = 1; enumerator.MoveNext(); k++)
        Assert.AreEqual(k + 1, enumerator.Current);

    Assert.AreEqual(3, mapds.Count());
}

And a Reduce test:

[TestMethod]
public void ReduceSum()
{
    EnumDataset<int> ds = new EnumDataset<int>(new int[] { 1, 2, 3 });
    var result = ds.Reduce<int>((x, y) => x + y);

    Assert.IsNotNull(result);
    Assert.AreEqual(6, result);
}

Next topics: more BaseDataset methods, concrete classes, datasets with keys, etc…

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

May 23, 2015

SparkSharp, Spark in C# (1) First Ideas

Filed under: .NET, C Sharp, Open Source Projects, Spark, SparkSharp — ajlopez @ 11:20 pm

Next Post

In these days, I visited Apache Spark project:

https://spark.apache.org/

And started to think about implementing some of its ideas in C#.

The original project has Datasets, that can be consumed, item by item, and processed by methods like map and reduce. A dataset can consume a text file, local files or distributed ones. The jobs to run over datasets, applying transformations, can be launched in many distributed nodes (I should review the consolidation of results).

I started a new C# project:

https://github.com/ajlopez/SparkSharp

To me, it is important to start with small steps, using TDD (Test-Driven Development) workflow. So, in my first commits, I wrote datasets that implement IEnumerable. They have methods like Map, Reduce, Split, Take, Skip. Those methods were implemented writing the tests that express the expected API and behavior.

A dataset can be a simple wrapper of any IEnumerable, or it can read a text file, reading lines.

All these datasets are local, reside in the same machine. My idea is to implement a dataset wrapper, to expose the dataset content to other machines, and write a client wrapper that runs in each machine. The client wrapper looks like a regular dataset, but when the client program needs the next item of the dataset, that item come from the remote original machine.

The remote dataset gives the next item to any client. Each item is delivered only to ONE client. So, the items can be consumed and processed by n remote clients, without having an item processed twice.

To implement such pair server/client, I should implement serialization/deserialization of an arbitrary type T. I will use my previous work in AjErl and Aktores to have such feature. Using TDD, I could assert the expected behavior of the serializaction/deserialization process. If in the future, I have a better idea for such process, like using an external robust open source serialization library, all the TDD tests will help me to make the switch.

But, baby steps. Next steps: improve current local datasets, maybe add a new variant of dataset, and write keyed datasets, created using MapToKey method (to implement)

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 22, 2015

Git: Links, News And Resources (8)

Filed under: Git, Links — ajlopez @ 10:02 am

Previous Post

Learn Git Branching
http://pcottle.github.io/learnGitBranching/

node_modules in git
http://www.futurealoof.com/posts/nodemodules-in-git.html

pluralsight/git-internals-pdf
https://github.com/pluralsight/git-internals-pdf

Git Tutorials and Training | Atlassian
https://www.atlassian.com/git

Code Review Like You Mean It
http://haacked.com/archive/2013/10/28/code-review-like-you-mean-it.aspx

A Git client with editing for the iPad and iPhone
http://www.diturner.co.uk/2013/04/07/a-git-client-with-editing-for-the-ipad-and-iphone/

Conversational Git – Conversational Git
http://blog.anvard.org/conversational-git/

Tim Caswell on the development of JS-Git | the pluralsight blog
http://blog.pluralsight.com/2013/10/04/tim-caswell-on-the-development-of-js-git/

HTML Slidy (1)
http://gitolite.com/other-stuff/gittalk.html

HTML Slidy (1)
http://gitolite.com/1-basic-usage/intro.html

everything I know about git
http://gitolite.com/index.html#index_everything_I_know_about_git_

gitolite.com/master-toc.html
http://gitolite.com/master-toc.html

git concepts simplified
http://gitolite.com/gcs/index.html

GitList – An elegant and modern git repository viewer
http://gitlist.org/

Git: Combine and Organize Messy Commits Using Interactive Rebase – CodeProject
http://www.codeproject.com/Articles/572118/Git-3aplusCombineplusandplusOrganizeplusMessyplusC

Feature Branch Workflow | Atlassian Git Tutorial
https://www.atlassian.com/git/workflows#!workflow-feature-branch

Git is good for devs, but here are 5 tips on making the transition — Tech News and Analysis
http://gigaom.com/2013/09/15/git-is-good-for-devs-but-here-are-5-tips-on-making-the-transition/

How to fetch all git branches – Stack Overflow
http://stackoverflow.com/questions/10312521/how-to-fetch-all-git-branches

Can "git pull –all" update all my local branches? – Stack Overflow
http://stackoverflow.com/questions/4318161/can-git-pull-all-update-all-my-local-branches

Effective pull requests and other good practices for teams using github | commandlinefu, git | codeinthehole.com by David Winterbottom
http://codeinthehole.com/writing/pull-requests-and-other-good-practices-for-teams-using-github/

My Links
http://delicious.com/ajlopez/git

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 20, 2015

Git: Links, News And Resources (7)

Filed under: Git, Links — ajlopez @ 10:24 am

Previous Post
Next Post

GitTogether
https://gittogether.com/

Trucos git – YouTube
http://www.youtube.com/playlist?list=PLJq-O-GkzDUOX1koXDuJfDTtFFniMlryy

git – la guía sencilla
http://rogerdudler.github.io/git-guide/index.es.html

Useful GitHub patterns | Quick People Blog
http://blog.quickpeople.co.uk/2013/07/10/useful-github-patterns/

Create a new branch with git and manage branches · Kunena/Kunena-Forum Wiki
https://github.com/Kunena/Kunena-Forum/wiki/Create-a-new-branch-with-git-and-manage-branches

Git – Rebasing
http://git-scm.com/book/en/Git-Branching-Rebasing

http://www.stic.st/wp-content/conferences/2012/Wednesday/1415-Practical_Git_for_Smalltalk-Henrichs.pdf
http://www.stic.st/wp-content/conferences/2012/Wednesday/1415-Practical_Git_for_Smalltalk-Henrichs.pdf

Practical Git for Smalltalk
http://www.jarober.com/blog/blogView?showComments=true&title=Practical+Git+for+Smalltalk&entry=3509797949

Understanding the Git Workflow
https://sandofsky.com/blog/git-workflow.html

Kernel development // Speaker Deck
https://speakerdeck.com/ezequielgarcia/kernel-development

blog dds: 2013.06.19 – How to Create Your Own Git Server
http://www.spinellis.gr/blog/20130619/

creationix/js-git · GitHub
https://github.com/creationix/js-git
A JavaScript implementation of Git

Microsoft embraces open-source Git for development tools – Network World
http://www.networkworld.com/news/2013/013013-microsoft-embraces-open-source-git-for-266280.html

My Links
http://delicious.com/ajlopez/webdevelopment

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 19, 2015

AjErl Implementing Erlang in C# (2) Expressions

Filed under: .NET, AjErl, C Sharp, Erlang, Open Source Projects — ajlopez @ 9:58 am

Previous Post

Some time ago I write this project, an Erlang implementation as interpreter using C #. Let review today the implementation of expressions. An expression is evaluated in a context. For example, the variable X, is an expression that is evaluated in a context that tells how that variable is bound to a value or it is free.

All expressions are written using the workflow TDD (Test-Driven Development). After some expressions, this interface emerge in a refactor, and now all expressions implement it:

public interface IExpression
{
    object Evaluate(Context context, bool withvars = false);

    bool HasVariable();
}

The key method is Evaluate. It can allow or not that some variables are still unbound after the evaluate. There is a boolean method HasVariable that indicates the existence of variables in the expression. The simplest expression is a constant expression:

public class ConstantExpression : IExpression
{
    private object value;

    public ConstantExpression(object value)
    {
        this.value = value;
    }

    public object Value { get { return this.value; } }

    public object Evaluate(Context context, bool withvars = false)
    {
        return this.value;
    }

    public bool HasVariable()
    {
        return false;
    }
}

The Evaluate method does not use the provided context, it is only returning the original constant value, defined in the constructor. The expressions are grouped in a tree of expressions that is recursively evaluated.

An expression that evaluates a variable:

public class VariableExpression : IExpression
{
    private Variable variable;

    public VariableExpression(Variable variable)
    {
        this.variable = variable;
    }

    public Variable Variable { get { return this.variable; } }

    public object Evaluate(Context context, bool withvars = false)
    {
        if (!context.HasValue(this.variable.Name))
            if (!withvars)
                throw new Exception(string.Format("variable '{0}' is unbound", this.variable.Name));
            else
                return this.variable;

        return context.GetValue(this.variable.Name);
    }

    public bool HasVariable()
    {
        return true;
    }
}

This time, the context is used. If the variable is not bound to a value, it can return the unbound value, or raise an exception, depending on a boolean withValues. Some times, Erlang expects and needs that an expression be complete evaluated, having no unbound variables.

This code was implemented following the workflow of TDD. Some tests as examples (but it is only the final result, the important thing is the workflow, the dynamic of the programming activity). For a constant expression:

[TestMethod]
public void CreateSimpleConstantExpression()
{
    ConstantExpression expr = new ConstantExpression(10);

    Assert.AreEqual(10, expr.Value);
}

[TestMethod]
public void EvaluateSimpleConstantExpression()
{
    ConstantExpression expr = new ConstantExpression(10);

    Assert.AreEqual(10, expr.Evaluate(null));
}

For a variable expression:

[TestMethod]
public void CreateSimpleVariableExpression()
{
    Variable variable = new Variable("X");
    VariableExpression expression = new VariableExpression(variable);

    Assert.AreEqual(variable, expression.Variable);
}

[TestMethod]
public void EvaluateVariableExpression()
{
    Variable variable = new Variable("X");
    Context context = new Context();
    context.SetValue("X", 1);
    VariableExpression expression = new VariableExpression(variable);

    Assert.AreEqual(1, expression.Evaluate(context));
}

[TestMethod]
public void EvaluateUndefinedVariableExpression()
{
    Variable variable = new Variable("X");
    Context context = new Context();
    VariableExpression expression = new VariableExpression(variable);

    Assert.AreEqual(variable, expression.Evaluate(context, true));
}

[TestMethod]
public void RaiseIfEvaluateUndefinedVariableExpression()
{
    Variable variable = new Variable("X");
    Context context = new Context();
    VariableExpression expression = new VariableExpression(variable);

    try
    {
        expression.Evaluate(context, false);
        Assert.Fail();
    }
    catch (Exception ex)
    {
        Assert.AreEqual("variable 'X' is unbound", ex.Message);
    }
}

Upcoming topics: explore other expression implementations, data structure implementations for variables, maps, and more…

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

May 15, 2015

Git: Links, News And Resources (6)

Filed under: Git, Links — ajlopez @ 10:32 am

Previous Post
Next Post

Put your new coding skills to work building a better world | Skillcrush
http://skillcrush.com/2013/06/03/its-not-a-dream-its-open-source/

Git Reference
http://gitref.org/branching/

Version Control: Git vs SVN
http://www.paulund.co.uk/version-control-git-vs-svn

Resources For Learning Git
http://speckyboy.com/2013/06/03/resources-for-learning-git/

Why your company shouldn’t use Git submodules | Coding Killed the Cat
http://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/

When to do git merging or rebasing « Senko’s Blog
http://senko.net/en/git-merge-rebase/

GitMinutes
http://www.gitminutes.com/

Aprende GIT | Información y experiencias sobre el uso de git
http://aprendegit.com/

Consejos y trucos en Git | Jesús L.C.
http://jesuslc.com/2013/04/12/consejos-y-trucos-en-git/

7 Version Control Systems Reviewed | Smashing Magazine
http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/

Diff Before Commit: A Best Practice | Sebastian Durandeu
http://blogs.southworks.net/sdurandeu/2013/02/27/diff-before-commit-a-best-practice/

Git – Submodules
http://git-scm.com/book/en/Git-Tools-Submodules

Git – Flujos de trabajo distribuidos
http://git-scm.com/book/es/Git-en-entornos-distribuidos-Flujos-de-trabajo-distribuidos

JS Git by Tim Caswell — Kickstarter
http://www.kickstarter.com/projects/creationix/js-git

Implementing a Git HTTP Server – The Imaginary Road
http://www.michaelfcollins3.me/blog/2012/05/18/implementing-a-git-http-server.html

Git merge vs. rebase
http://mislav.uniqpath.com/2013/02/merge-vs-rebase/

My Links
http://delicious.com/ajlopez/git

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 14, 2015

Git: Links, News And Resources (5)

Filed under: Git, Links — ajlopez @ 6:53 pm

Previous Post
Next Post

git svn – What is the format of an authors file for git svn, specifically for special characters like backslash or underscore? – Stack Overflow
http://stackoverflow.com/questions/2159567/what-is-the-format-of-an-authors-file-for-git-svn-specifically-for-special-char

Twig: Your personal Git branch assistant.
http://rondevera.github.com/twig/

Git support for Visual Studio – Git, TFS, and VS put into Context – Scott Hanselman
http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx

[#GIT] HowTo: Empezar con #Git « El Bruno
http://elbruno.com/2012/08/06/git-howto-empezar-con-git/

Introducing Prose: A Content Editor for GitHub | Development Seed
http://developmentseed.org/blog/2012/june/25/prose-a-content-editor-for-github/

GitHub will hit 5 million users within a year – Donnie Berkholz’s Story of Data
http://redmonk.com/dberkholz/2013/01/21/github-will-hit-5-million-users-within-a-year/

gitattributes(5)
http://schacon.github.com/git/gitattributes.html

Dealing with line endings · github:help
https://help.github.com/articles/dealing-with-line-endings

Mind the End of Your Line « Tim’s Blog
http://timclem.wordpress.com/2012/03/01/mind-the-end-of-your-line/

How to: Delete a remote Git tag – Nathan Hoad
http://nathanhoad.net/how-to-delete-a-remote-git-tag

Fork A Repo · github:help
https://help.github.com/articles/fork-a-repo

Understanding Git Conceptually
http://www.sbf5.com/~cduan/technical/git/

node_modules in git
http://www.mikealrogers.com/posts/nodemodules-in-git.html

Managing Node.js Dependencies with Shrinkwrap
http://blog.nodejs.org/2012/02/27/managing-node-js-dependencies-with-shrinkwrap/

Yammer Engineering – Managing Node.js Dependencies and Deployments at Yammer
http://eng.yammer.com/managing-node-js-dependencies-and-deployments-at-yammer/

.NET Rocks!
http://www.dotnetrocks.com/default.aspx?showNum=831

pbella/Cuis-Ports · GitHub
https://github.com/pbella/Cuis-Ports

Eclipse Says Goodbye to CVS « Life at Eclipse
http://mmilinkov.wordpress.com/2012/12/21/eclipse-says-goodbye-to-cvs/

Gangnam Ons S4 Recording on 2012-11-07 1410-Vimeo1 +6db on Vimeo
http://vimeo.com/53261709

Game Off Deadline Extended · GitHub Blog
https://github.com/blog/1336-game-off-deadline-extended

10 things I hate about Git « Steve Bennett blogs
http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/

Building the Smalltalk VM from scratch using Git and CMakeVMMaker « Mariano Martinez Peck
http://marianopeck.wordpress.com/2011/04/10/building-the-vm-from-scratch-using-git-and-cmakevmmaker/

Tag: gtotw – AlBlue’s Blog
http://alblue.bandlem.com/Tag/gtotw/

How to use git to download a particular tag? – Stack Overflow
http://stackoverflow.com/questions/791959/how-to-use-git-to-download-a-particular-tag

My Links
http://delicious.com/ajlopez/git

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 13, 2015

Laravel: Links And Resources (2)

Filed under: Laravel, Links, PHP, Web Development — ajlopez @ 10:06 am

Previous Post

Comandos artesanales by Ale Mohamad
http://slides.com/alemohamad/comandos-artesanales#/

The Languages And Frameworks That You Should Learn In 2015 | wwwDesigned
http://wwwdesigned.com/the-languages-and-frameworks-that-you-should-learn-in-2015/

Rebuilding Laravel at Medium
https://medium.com/rebuilding-laravel

Managing Databases with Migrations – Laravel Book
http://laravelbook.com/laravel-migrations-managing-databases/

Laravel & Repository Pattern
http://germanlena.com.ar/reactdemo/#/

Laravel Schema Designer
http://laravelsd.com/

Laravel & Repository Pattern
http://germanlena.com.ar/repositorypattern/#/

Rebuilding Laravel — Laravel 4 Tutorials — Medium
https://medium.com/laravel-4/rebuilding-laravel-d2ee113f2876

Laracasts | Server Management With Forge
https://laracasts.com/series/server-management-with-forge/

Laravel – The PHP Framework For Web Artisans.
http://laravel.com/docs/homestead?version=4.2

LaravelBA – YouTube
https://www.youtube.com/user/laravelba

Laravel (framework) – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Laravel_(framework)

Laravel 4 by Pablo Chiappetti
http://slides.com/p4bloch/laravel-4

j0an/LaravelMeetupApiDemo
https://github.com/j0an/LaravelMeetupApiDemo

fedeisas/laravel-dolar-blue
https://github.com/fedeisas/laravel-dolar-blue

Laravel Bundles
http://bundles.laravel.com/search/tag/Bootstrap

58bits/laravel-4-bootstrap-3-starter
https://github.com/58bits/laravel-4-bootstrap-3-starter

andrewelkins/Laravel-4-Bootstrap-Starter-Site
https://github.com/andrewelkins/Laravel-4-Bootstrap-Starter-Site

Adding CSS to Laravel pages – Pikemere Web Services
http://www.pikemere.co.uk/blog/adding-css-to-larvel-pages/

My Links
https://delicious.com/ajlopez/laravel

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 11, 2015

Computer History: Links And Resources (12)

Filed under: Computer History, Links — ajlopez @ 8:54 pm

Previous Post

Alan Turing: The Enigma – A Book Review | Pointers Gone Wild
http://pointersgonewild.wordpress.com/2013/12/06/alan-turing-the-enigma-a-book-review/

Google celebra a Grace Hopper en nuevo doodle – FayerWayer
http://www.fayerwayer.com/2013/12/google-celebra-a-grace-hopper-en-nuevo-doodle/

Perl is Free Software’s COBOL, and That’s Ok! – Bradley M. Kuhn ( Brad ) ( bkuhn )
http://ebb.org/bkuhn/blog/2012/12/18/perl-cobol.html

Happy 18th Birthday JavaScript! A look at an unlikely past and bright future.
http://resin.io/happy-18th-birthday-javascript/

Computer History Museum | @CHM : Apple II DOS source code
http://www.computerhistory.org/atchm/apple-ii-dos-source-code/

Smalltalks 2007 to 2012 History – YouTube
http://www.youtube.com/watch?v=fSjugDrjUpw

Wozniak
http://www.elmundo.es/ciencia/2013/11/09/527d625d63fd3d5d308b4571.html

Martín Salías – Arquitexturas: Un recorrido por la industria del software
http://blog.salias.com.ar/2013/07/un-recorrido-por-la-industria-del.html

8 Lessons Startups Can Learn From Twitter’s Chaotic Creation Story
http://www.fastcompany.com/3021068/most-creative-people/8-lessons-startups-can-learn-from-twitters-chaotic-creation-story

The Roots of Lisp
http://www.paulgraham.com/rootsoflisp.html

Tail Recursion Elimination
http://neopythonic.blogspot.com.ar/2009/04/tail-recursion-elimination.html

http://python-history.blogspot.com.ar/2009/04/origins-of-pythons-functional-features.html

Computing Power Used to Be Measured in ‘Kilo-Girls’ – Megan Garber – The Atlantic
http://www.theatlantic.com/technology/archive/2013/10/computing-power-used-to-be-measured-in-kilo-girls/280633/

Python Packaging User Guide — Python Packaging User Guide documentation
https://python-packaging-user-guide.readthedocs.org/en/latest/

Incremental Plans to Improve Python Packaging — Nick Coghlan’s Python Notes 1.0 documentation
http://python-notes.boredomandlaziness.org/en/latest/pep_ideas/core_packaging_api.html#a-bit-of-python-packaging-history

A history of Python packaging | Secret Weblog
http://blog.startifact.com/posts/older/a-history-of-python-packaging.html

My Links
http://delicious.com/ajlopez/computerhistory

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 7, 2015

Computer History: Links And Resources (11)

Filed under: Computer History, Links — ajlopez @ 9:13 pm

Previous Post   
Next Post

Turbo Pascal Compiler

http://www.teamten.com/lawrence/projects/turbo_pascal_compiler/

Coding Horror: You Don’t Need Millions of Dollars
http://www.codinghorror.com/blog/2013/10/you-dont-need-millions-of-dollars.html

http://softwareagil.blogspot.com.ar/2013/10/historia-de-agiles-2008.html

The History of Packets
http://www.robbiehott.com/cs/gw/

A Brief, Incomplete, and Mostly Wrong History of Programming Languages
http://www.cvaieee.org/html/humor/programming_history.html

Report: Top Microsoft Investors Lobbying for Bill Gates’ Resignation
http://mashable.com/2013/10/02/microsoft-lobby-bill-gates-resign/

The Memo That Spawned Microsoft Research
http://tech.slashdot.org/story/13/10/01/1747235/the-memo-that-spawned-microsoft-research

Alan Turing 101: A Lesson On The Father Of Computer Science – ReadWrite
http://readwrite.com/2013/09/30/alan-turing-101-a-lesson-on-the-father-of-computer-science

‘Free Unix!': The world-changing proclamation made 30 years ago today
http://www.infoworld.com/print/227766

Discipline in Thought – Part 1 of 3 – YouTube
https://www.youtube.com/watch?v=EL97C8C53ZM

The weight of code | The Endeavour
http://www.johndcook.com/blog/2013/06/10/the-weight-of-code/

A Brief History of Lisp Machines
http://andromeda.com/people/ddyer/lisp/

Multifile III – a set on Flickr
http://www.flickr.com/photos/garduino/sets/72157635943601013/

A Coder Interview With Mike Meinz – CodeProject
http://www.codeproject.com/Articles/579456/A-Coder-Interview-With-Mike-Meinz

How did Bill Gates choose the name Microsoft? – Quora
http://www.quora.com/How-did-Bill-Gates-choose-the-name-Microsoft

The End of the Web, Search, and Computer as We Know It | Wired Opinion | Wired.com
http://www.wired.com/opinion/2013/02/the-end-of-the-web-computers-and-search-as-we-know-it/

DSpace@MIT: Viewing Control Structures as Patterns of Passing Messages
http://dspace.mit.edu/handle/1721.1/6272

Dennis Ritchie: The geek Prometheus – Salon.com
http://www.salon.com/2011/10/13/dennis_ritchie_the_geek_prometheus/

Dawn of a revolution | Harvard Gazette
http://news.harvard.edu/gazette/story/2013/09/dawn-of-a-revolution/

My Links
http://delicious.com/ajlopez/computerhistory

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Older Posts »

The Shocking Blue Green Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 68 other followers