SML Search

Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Saturday, November 3, 2007

Bug Labs = Mindstorms for Super-Geeks

No comments:
BUG is a collection of easy-to-use, open source hardware modules, each capable of producing one or more Web services. These modules snap together physically and the services connect together logically to enable users to easily build, program and share innovative devices and applications. With BUG, we don't define the final products - you do.
Bug Labs: Products


Bug Labs = Mindstorms for Super-Geeks (by See-ming Lee 李思明 SML)

BugLabs on YouTube
+ YouTube: Bug Labs: Beginnings - Episode A
+ YouTube: Bug Labs: BUG - Episode B

Technical Specifications


  • ARM1136JF-S-based microprocessor
  • 1 USB 2.0 HS host interface/4 hub port connections
  • 1 USB OTG HS interface
  • 4 UART serial links
  • 4 channel SPI interface
  • I2C (400 kbits) interface/4 channels
  • I2S interface/2 channels
  • Smart LCD interface
  • Camera sensor interface
  • Micro memory card interface
  • MPEG4 hardware encoding/decoding
  • Hardware graphic acceleration
  • 10/100 Ethernet MAC
  • 802.11b/g
  • Base unit LCD module interface
  • Base unit onboard memory (FLASH/DDR SDRAM)
  • JTAG/ICE support
  • Serial debug port
  • Power system
  • AC operation
  • Battery operation/up to 4 external batteries
  • Fast battery charging/simultaneous of internal and external batteries
  • Smart power management support
  • Battery-backed real-time clock
  • Audio out via onboard piezo speaker


Pretty cool. Check it out!

SML Thank You
I would like to thank Alex Rainert (Google / SML Wiki) for sending this over :)

SML Copyright Notice
©2007 See-ming Lee 李思明 SML / SML Pro Blog / SML Universe. All rights reserved.

Monday, October 22, 2007

Advanced Python or Understanding Python / Google Video

No comments:

Google Video: Advanced Python or Understanding Python
Google Tech Talks February 21, 2007
Speaker: Thomas Wouters





ABSTRACT

The Python language, while object-oriented, is fundamentally different from both C++ and Java. The dynamic and introspective nature of Python allow for language mechanics unlike that of static languages. This talk aims to enlighten programmers new to Python about these fundamentals, the language mechanics that flow from them and how to effectively put those to use. Among the topics covered are duck-typing, interfaces, descriptors, decorators, metaclasses, reference-counting and the cyclic-garbage collector, the divide between C/C++ data and Python objects and the CPython implementation in general.

This talk is part of the Advanced Topics in Programming Languages series. The goal of this series is to encourage all of the people at Google who know and love programming languages to share their knowledge. If you would like information on upcoming talks, or to schedule a talk of your own, contact information is available on the wiki page.

SML Random Thoughts

I am liking the Google Web History. They kept on sending me these interesting videos :)



Related SML Universe

SML Google Web History

©2007 See-ming Lee 李思明 SML / SML Pro Blog / SML Universe. All rights reserved.

Wednesday, September 19, 2007

FM7 0.2.5 / 2006.09.10 / SML

No comments:



Sound Design: See-ming Lee playing with Native Instruments FM7 in 2006
Algorithmic Music Generation: See-ming Lee using Ableton Live

Result = Engineering + Mathematics + Music + Programming = Fun!

SML Copyright Notice


Copyright 2007 See-ming Lee 李思明 SML / SML Pro Blog / SML Universe. All rights reserved.

Human Identification Algorithm

No comments:
Are you human? (Sorry, We Have to Ask). Can’t read the text? Listen to it.
Digg - Submit Item

You have seen it time and time again. That required step when you submit stories these days for human identification. It composed with letters that are salted with noise and artifacts to defer a bot's attempt to fill out the form and thus spam.


It was a smart idea, but algorithms catch up and soon they don’t work quite as well anymore. So the level has of difficulty for OCR comprehension increased bit by bit everyday. It has become so complex these days that even I cannot identify what characters they are supposed to be.


Perhaps because of the number of complaints received, now we also have the audio version of the same thing. What are they going to do when the audio recognition algorithm got better?


In my opinion, this human identification process simply does not work. Algorithms will get smarter everyday for visual or audio algorithms. A better way is to ask logic questions. For example, ask people to verbally describe the difference between a nerd and a geek. Ask them why they they are reading your blog.


Opinions are largely based on logic, but it is also largely based on creativity, and creativity is something that cannot easily be programmed yet—until the natural language algorithm catch up on it. Another difficult thing that comes natural to us but fairly difficult to do for a machine is comprehension.


I have tested this behavior with a survey which ask the question: Name the odd-man-out among the following: AOL / Google / MSN / Yahoo and state the reason supporting your answer. I get very interesting answers. They are all very inspiring and as such I know that they are not machines.


Being able to go through those answers and pick out the human responses are also most definitely a task that ought to be done by a human. I do not think that there is a computer program that can decipher how creative something is yet. However, I have fears that there are projects underway that is attempting to understand creativity using brute force.


A couple of weeks ago, I went to Google Answers, and I discovered that they are no longer accepting new questions. This was a site where users submit questions and get answers responded by other users. The snippets are very interesting and no doubt allow Google to index more interesting data that is not readily available on the Web. Having the ability to train an algorithm to act like human is a very ambitious activity, but it appears that the algorithm training has paid off.


I visited Google Translate and Google Language Tools recently and I am very impressed with their English to Chinese translation capability.


Unlike English, Chinese uses a defined set of characters. Where Latin languages generally create new meanings by the use of new words, the number of Chinese characters do not change. New meanings are created through the combination of the order of these characters. As such, while Chinese children are rarely able to read newspapers until they are graduating from primary school, there will be no more new words to learn after that. It's all pattern recognition after that part. It's a bit like iconography systems, where new meanings are created out of a predefined set of modifiers.


Despite the language's complexity, I witnessed that the Google Translator is able to handle English to Chinese text relatively easily, which is light years ahead of the translation tools I have used before, and it definitely makes me wonder what else Google Research is brewing inside their labs these days.


SML Copyright Notice


Copyright 2007 See-ming Lee 李思明 SML / SML Pro Blog / SML Universe. All rights reserved.

Wednesday, September 12, 2007

Programming is Translation

No comments:
Programming = Translation;

Translation = English -> Logic -> Français;
Translation = العربية -> Logic -> 中文;
Translation = C# -> Logic -> JavaScript;
Translation = Java -> Logic -> ActionScript;
Translation = Español -> Logic -> XML;
Translation = Български -> Logic -> Python;
Translation = Processing -> Logic -> Dance;

Speech = HHI = Human-Human Interface;
Protocol = CCI = Computer-Computer Interface;
Programming Language = HCI = Human-Computer Interface;

Tags = HSEI = Human-Search-Engine Interface;

Artificial Intelligence = AI = Human-Computer Interpreter;

Sunday, June 3, 2007

Bitstream Vera Sans Mono, a must-have for coders.

1 comment:
Bitstream Vera Sans Mono is the best font for coding, period.

Bitstream Vera
(source: Wikipedia)

The advantages of using Vera Sans Mono--the monospaced variant from the Vera family--are:

  • It comes with normal, bold, oblique and bold oblique. Great for syntax highlighting.

  • Unlike Courier, changing weights from normal to bold do not change the mono-text-width. In other words, if you wish to highlight your keywords in bold, your code won't all of a sudden break your indent formatting

  • Unlike Courier, it carries a Gnome license and thus free. Courier comes with most Microsoft products, but is not freeware. While you are unlikely to be sued by Microsoft for your use of Courier if you do not own any Microsoft products and thus the license that comes with it, that is an illegal activity.

  • It is Unicode aware and comes with the full latin set of Unicode characters so coding on your internationalization projects would always be a breeze.

  • It is highly legible down to 8pt on a 96dpi monitor so you can get as many lines on Eclipse without suffering from legibility issues.

  • It is highly legible when printed. Great for code documentation.

I have been using this for a few years now round-tripping from ActionScript to Python, Java to C# using IDEs like Eclipse, Visual Studio or the almighty Notepad and it never lets me down. Highly recommended.

Download the latest revision of Vera.

Saturday, July 1, 2006

Theorizing aesthetics

No comments:
I have always had an idea of theorizing aesthetics. I believe that aesthetic judgement, though seemingly abstract, can be quantified. And through the discovery of these aesthetics principals, it is possible to create aesthetic composition through programmatic algorithms.

Designers don't like this view of the world. The larger part of the design community, will in fact tell you that designers should be ashamed of themselves if their designs were formed by theory. I, on the other hand, believe that aided with such tool, it will provide enormous advantages in realizing a design.

The music community has created many variants of algorithm-based music generators. Artists have long utilize color theories in their paintings. Itten, from the Bauhaus, wrote a monumental book called The Art of Color on the subject matter. The language of architecture and urban planning was eloquently catalogued in Christopher Alexander's A Pattern Language. This book on architecture has in turn inspired four programmers (Gang of Four) to write a book called Design Patterns, which revolutionized the object-oriented programming space.

So why is the design community so afraid of composition theories?

Related SML Pro Blog entries


Functional = Beautiful
HDR: Manhattan Bridge in Black and White
Manhattan Bridge HDR
Photography = Composition
Photography / Philosophy
SML Collection


SML Copyright Notice


Copyright 2005-2007 See-ming Lee. All rights reserved.