Canonical Design Blog: Design museum exhibition London


 
Thread Tools Search this Thread
Special Forums Cybersecurity Security Advisories (RSS) Canonical Design Blog: Design museum exhibition London
# 1  
Old 12-20-2010
Canonical Design Blog: Design museum exhibition London



Something exciting Next year
Bruno Maag from Dalton Maag has been asked by the Design Museum London to put on an exhibition of his work. This is a collaboration between ourselves and DM,
the exhibition will be in two parts a substantial part of which will be featuring the Ubuntu font.

read more



More...
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Web Development

Ideas for a New Mobile Design

Does anyone have any favorite mobile tech sites they want me to look at while I'm considering the next phase of mobile redesign? My idea is to build a new mobile design without using any forum framework (do not use vBulletin, XenForo, etc.) and do not use any big SPA Javascript frameworks (do... (2 Replies)
Discussion started by: Neo
2 Replies

2. UNIX for Advanced & Expert Users

SFTP Design

Hi all, I'm seeking an efficient and secure means of providing multiple named users access to files by their functional areas. For security, I've chosen SFTP using key pair authentication. The general principle is we have multiple users as follows: We have two type of files for Function... (2 Replies)
Discussion started by: Bagpuss
2 Replies

3. Shell Programming and Scripting

Automate database design changes!

I need to create a script to automate creating a deployment for me by taking into consideration two input files. 1. design file of entire database, it has the entire database create statements. 2. logs which point to database objects that need to be fixed like below: ... (2 Replies)
Discussion started by: Samuel12
2 Replies

4. Shell Programming and Scripting

Design Search string

I've notepad in which logs are present. I need to design a web page by which if some one paste their ticket number and click on "search" the logs for that ticket number should be displayed at the bottom. I need some advice on how to do this and which is the right platform to do this. Regards... (1 Reply)
Discussion started by: ilugopal
1 Replies

5. UNIX for Dummies Questions & Answers

using nano x to design GUI

Hi, I am working on a project to develop an embedded device that can transfer files between two usb devices ( pen drives). We are using an NUC950A ARM9 microcontroller and we've put the Linux 2.1 kernel on the development board and it works. Can i use nano -x to design my own GUI so that i can run... (3 Replies)
Discussion started by: dilumcc
3 Replies

6. Shell Programming and Scripting

shell design

i want to design the shell for some basic commands such as cp mkdir rm mv etc... so please let me know how to start and wich all books to refer and if any body is having the model just mail me at, devskamat018@gmail.com:) i will be waiting please reply soon (1 Reply)
Discussion started by: devaray
1 Replies

7. Shell Programming and Scripting

I want to design a program

i want to make a shell program. This program i give a current day and the result is to appear the celebrity and birthday(birthday and celebration is 2 txt files). In addition this procedure must do for a space day in future or past depend on user choice. Finally the program can run and as... (2 Replies)
Discussion started by: mytilini boy
2 Replies

8. Programming

C++ class design

Can anybody tell me what is the best website or books to read for getting good knowledge in doing C++ class design. Please leave cplusplus.com or bjorne stroustrup. Other than these is there any website or book. Please do tell me (0 Replies)
Discussion started by: dhanamurthy
0 Replies
Login or Register to Ask a Question
Alzabo::Design(3pm)					User Contributed Perl Documentation				       Alzabo::Design(3pm)

NAME
Alzabo::Design - Documentation on Alzabo's design DESCRIPTION
This document describes some of the Alzabo's design. ARCHITECTURE
There are objects representing the schema, which contains table objects. Table objects contain column, foreign key, and index objects. Column objects contain column definition objects. A single column definition may be shared by multiple columns, but has only one owner. This is a diagram of these inheritance relationships: Alzabo::* (::Schema, ::Table, ::Column, ::ColumnDefinition, ::ForeignKey, ::Index) / is parent to / Alzabo::Create::* Alzabo::Runtime::* This a diagram of how objects contain other objects: Schema - makes--Alzabo::SQLMaker subclass object (many) / contains contains--Alzabo::Driver subclass object(1) | Table (0 or more) Alzabo::RDBMSRules subclass object(1) / (* Alzabo::Create::Schema only) / contains-------------------- / / ForeignKey Column (0 or more) Index (0 or more) (0 or more) | contains | ColumnDefinition(1) Note that more than one column may share a single definition object (this is explained in the "Alzabo::Create::ColumnDefinition" documenta- tion). This is only relevant if you are writing a schema creation interface. Other classes * "Alzabo::Driver" These objects handle all the actual communication with the database, using a thin wrapper over DBI. The subclasses are used to imple- ment functionality that must be handled uniquely for a given RDBMS, such as creating new values for sequenced columns. * "Alzabo::SQLMaker" These objects handle the generation of all SQL for runtime operations. The subclasses are used to implement functionality that varies between RDBMS's, such as outer joins. * "Alzabo::RDBMSRules" These objects perform several funtions. First, they validate things such as schema or table names, column type and length, etc. Second they are used to generate SQL for creating and updating the database and its tables. And finally, they also handle the reverse engineering of an existing database. * "Alzabo::Runtime::Row" and "Alzabo::Runtime::RowState::*" The "Alzabo::Runtime::Row" class represents a single row. These objects are created by "Alzabo::Runtime::Table", "Alzabo::Run- time::RowCursor", and "Alzabo::Runtime::JoinCursor" objects. It is the sole interface by which actual data is retrieved, updated, or deleted in a table. The various "RowState" classes are used in order to change a row's behavior depending on whether it is live, live and cached, poten- tial, or deleted. * "Alzabo::Runtime::JoinCursor" and "Alzabo::Runtime::RowCursor" These objects are cursor that returns row objects. Using a cursor saves a lot of memory for big selects. * "Alzabo::Runtime::UniqueRowCache" Loading this class turns on Alzabo's simple row caching mechanism. * "Alzabo::Config" This class is generated by Makefile.PL during installation and contains information such as what directory contains saved schemas and other configuration information. * "Alzabo::ChangeTracker" This object provides a method for an object to register a series to backout from multiple changes. This is done by providing the ChangeTracker object with a callback after a change is succesfully made to an object or objects. If a future change in a set of opera- tions fail, the tracker can be told to back the changes out. This is used primarily in "Alzabo::Create::Schema". * "Alzabo::MethodMaker" This module can auto-generate useful methods for you schema, table, and row objects based on the structure of your schema. * "Alzabo::Exceptions" This object creates the exception subclasses used by Alzabo. WHY THE SUBDIVISION BETWEEN Alzabo::*, Alzabo::Create::*, and Alzabo::Runtime::*? There are several reasons for doing this: o In some environments (mod_perl) we would like to optimize for memory. For an application that uses an existing schema, all we need is to be able read object information, rather than needing to change the schema's definition. This means there is no reason to have the overhead of compiling all the methods used when creating and modifying objects. o In other environments (for example, when running as a separately spawned CGI process) compile time is important. o Many people using Alzabo will use the schema creation GUI and then write an application using that schema. At the simplest level, they would only need to learn how to instantiate "Alzabo::Runtime::Row" objects and how that class's methods work. For more sophisticated users, they can still avoid having to ever look at documentation on methods that alter the schema and its contained objects. RATIONALE FOR CURSORS
Using cursors is definitely more complicated. However, there are two excellent reasons for using them: speed and memory savings. As an example, I did a test with the old code (which returned all its objects at once) against a table with about 8,000 rows using the "Alz- abo::Runtime::Table->all_rows" method. Under the old implementation, it took significantly longer to return the first row. Even more importantly than that, the old implementation used up about 10MB of memory versus about 4MB! Now imagine that with a 1,000,000 row table. Thus Alzabo uses cursors so it can scale better. This is a particularly big win in the case where you are working through a long list of rows and may stop before the end is reached. With cursors, Alzabo creates only as many rows as you need. Plus the start up time on your loop is much, much quicker. In the end, your program is quicker and less of a memory hog. This is good. AUTHOR
Dave Rolsky, <autarch@urth.org> perl v5.8.8 2007-12-23 Alzabo::Design(3pm)