Object-Oriented Architecture
Object-Oriented Programming: Themes and Variations
The first substantial interactive, display-based implementation was the SMALLTALK language (Goldberg & Robson, 1983). The object-oriented style has often been advocated for simulation programs, systems programming, graphics, and AI programming. The history of ideas has some additional threads including work on message passing as in ACTORS (Lieberman, 1981), and multiple inheritance as in FLAVORS (Weinreb & Moon, 1981). It is also related to a line of work in AI on the theory of frames (Minsky, 1975) and their implementation in knowledge representation languages such as KRL (Bobrow & Winograd, 1977), KEE (Fikes & Kehler, 1985), FRL (Goldstein & Roberts, 1977) and UNITS (Stefik, 1979). One might expect from this long history that by now there would be agreement on the fundamental principles of object-oriented programming.
Workshop on Objects and Artificial Intelligence
The Objects and Artificial Intelligence Workshop was held on 25 August 1991 in conjunction with the 1991 International Joint Conference on Artificial Intelligence. The workshop brought together researchers in AI and objectoriented programming to exchange ideas and investigate possible avenues of cooperation between AI and objectoriented programming. The workshop dealt with both the theoretical and the practical aspects of this cooperation. AI, however, is looking for knowledge representation and programming techniques for developing complex applications and uses constructs (for example, frames) and notions (for example, classification hierarchy) that have similarities to constructs (for example, classes) and notions (for example, class inheritance) in object-oriented programming. The one-day workshop entitled Objects and AI, held in Sydney, Australia, on 25 August 1991 in conjunction with the 1991 International Joint Conference on Artificial Intelligence, was designed to investigate the differences and possible avenues of cooperation between AI and object-oriented programming.
Diagnosing Delivery Problems in the White House Information-Distribution System
A collaborative effort between the White House Office of Media Affairs, the Artificial Intelligence Laboratory at the Massachusetts Institute of Technology (MIT), and others quickly created a workable framework for wide-scale distribution of a stream of daily documents originating from the Executive Office of the President. The document stream includes daily press briefings, speeches by the President and other officials, backgrounders, and proclamations. In addition, the stream of released information includes special documents such as the National Performance Review's reports on reinventing government, the proposed healthcare reform legislation, and the yearly budgets. The Intelligent Information Infrastructure Project at the MIT Artificial Intelligence Laboratory created an information distribution server that functions as the focal point of the distribution chain. Documents are released from the Executive Office of the President through this system; they are sent from this system to a variety of archiving and retrieval systems around the country, most online services (for example, Compuserve, America Online), about 4000 direct subscribers to the MIT server, and a variety of other servers that further redistribute the documents.
TensorFlow: A proposal of good practices for files, folders and models architecture
Designing the right file architecture is not straightforward in Machine Learning. After struggling on that question for a few projects of my owns, I started to discover simple patterns that cover most of the use cases I stumbled upon when reading code or coding my own stuff. This article is about sharing those discoveries with you. That's quite a lot and one can be easily lost in refactoring files and folders to make everything fit nicely, on top of that, there are probably other needs that I'm not even addressing in the list above so let's try to find out some best practices. This is the very basics.
Unsupervised learning of object frames by dense equivariant image labelling
Thewlis, James, Bilen, Hakan, Vedaldi, Andrea
One of the key challenges of visual perception is to extract abstract models of 3D objects and object categories from visual measurements, which are affected by complex nuisance factors such as viewpoint, occlusion, motion, and deformations. Starting from the recent idea of viewpoint factorization, we propose a new approach that, given a large number of images of an object and no other supervision, can extract a dense object-centric coordinate frame. This coordinate frame is invariant to deformations of the images and comes with a dense equivariant labelling neural network that can map image pixels to their corresponding object coordinates. We demonstrate the applicability of this method to simple articulated objects and deformable objects such as human faces, learning embeddings from random synthetic transformations or optical flow correspondences, all without any manual supervision.
LowClass Python: Style Guide for Data Scientists
This style guide is meant for use by advanced beginner to advanced intermediate developers of scientific code in Python. The term LowClass Python hints at reducing the use of object oriented design. It is an attempt to be as witty as Tom Anderson when he coined the term C -- (C plus-plus, minus-minus). You see, C is a very rich language with many features. This allows a variety of abstract design patterns that can result in confusing and hard to maintain code.
R and Python in the workplace - SuperDataScience - Big Data Analytics Careers Mentors Success
Since I primarily use R, I wanted to know what Python does better than R according to Python users. I didn't conduct a survey, so I went to the source of information on the internet: Reddit (and Quora – the scrawny little cousin of Reddit that makes you register before you can read posts). As I discerned from users' comments, Python is easier to learn than R [1, 2] with data analysis and machine learning facilitated with "pandas" and "scikit-learn". Python is a general purpose object-oriented programming language, whereas R is a complex programming environment one needs to master [3]. Being general purpose, users may already be familiar with Python when coding websites and other apps whereas R is focused on data analysis.
End-to-End Learning of Semantic Grasping
Jang, Eric, Vijayanarasimhan, Sudheendra, Pastor, Peter, Ibarz, Julian, Levine, Sergey
We consider the task of semantic robotic grasping, in which a robot picks up an object of a user-specified class using only monocular images. Inspired by the two-stream hypothesis of visual reasoning, we present a semantic grasping framework that learns object detection, classification, and grasp planning in an end-to-end fashion. A "ventral stream" recognizes object class while a "dorsal stream" simultaneously interprets the geometric relationships necessary to execute successful grasps. We leverage the autonomous data collection capabilities of robots to obtain a large self-supervised dataset for training the dorsal stream, and use semi-supervised label propagation to train the ventral stream with only a modest amount of human supervision. We experimentally show that our approach improves upon grasping systems whose components are not learned end-to-end, including a baseline method that uses bounding box detection. Furthermore, we show that jointly training our model with auxiliary data consisting of non-semantic grasping data, as well as semantically labeled images without grasp actions, has the potential to substantially improve semantic grasping performance.
Python vs R for Artificial Intelligence, Machine Learning, and Data Science
Ah yes, the debate about which programming language, Python or R, is better for data science. In this series, I am considering machine learning and artificial intelligence as included in the term data science. This is almost the data science equivalent of tabs vs spaces for software engineers, at least at the time of this writing. This series is intended to be a somewhat definitive guide on this topic, including recommendations for languages and packages (aka libraries) applicable to different use cases, including data science in production and big data scenarios. This series is not intended to give side-by-side code comparisons, as there are plenty of other articles covering that. From my experience, which language to use is one of, if not the first question that someone interested in learning data science wants answered.
Barriers to Refactoring
Refactoring6 is something software developers like to do. But do they refactor as much as they would like? Are there barriers that prevent them from doing so? Refactoring is an important tool for improving quality. Many development methodologies rely on refactoring, especially for agile methodologies but also in more plan-driven organizations. If barriers exist, they would undermine the effectiveness of many product-development organizations. We conducted a large-scale survey in 2009 of 3,785 practitioners' use of object-oriented concepts,7 including questions as to whether they would refactor to deal with certain design problems. We expected either that practitioners would tell us our choice of design principles was inappropriate for basing a refactoring decision or that refactoring is the right decision to take when designs were believed to have quality problems. However, we were told the decision of whether or not to refactor was due to non-design considerations. It is now eight years since the survey, but little has changed in integrated development environment (IDE) support for refactoring, and what has changed has done little to address the barriers we identified.