PS Paintings

PS-看世界名画里的丰满女性【摘】


Francisco Goya - Nude Maya (1797–1800) Jean Auguste Dominique Ingres - Grande Odalisque (1814) Titian - Danaë with Eros (1544) Sandro Botticelli - Birth of Venus (1486) Paul Gauguin - Two Tahitian Women (1899) Raphael - Three Graces (1504–1505) Amedeo Modigliani - Nude Sitting on a Divan Edgar Degas - La Toilette (1884–1886)

韦德 (Lauren Wade) 对世界名画里的裸体女性进行了 Photoshop 编辑,目的是想传达一个信息:当今社会用 PhotoShop 实在太泛滥了,以至于影响了我们对美的认识。

The discourse about the media's unrealistic portrayal of female bodies through the use of photoshop retouching continues to demonstrate the unattainable beauty standard society promotes. Senior photo editor for takepart.com, lauren wade has seen a fair share of digital limb lengthening and tummy tucking, bringing the photos of already-thin models up to the 'industry standard'. "Of course it hasn't always been that way." She explains, "throughout art history, painters from titian to rubens to gauguin found beauty in the bodies of women who would never fit into a size 0." with this in mind, Wade has taken the liquify tool to the famous ladies of renaissance and impressionist masterpieces, conforming them to the acceptable image that would suit the pages of today's glossy magazines. Rendering them in gif format, Wade's before-and-after-style images shed light on our present perceptions of beauty, and how drastically it has changed from the past.

其中一个例子便是弗朗西斯科-戈雅的《裸体的玛哈》。韦德调整了腰、臀、大腿的比例,使画中模特符合当今的审美标准。


Francisco Goya - “Nude Maya” (1797–1800)



Jean Auguste Dominique Ingres - “Grande Odalisque” (1814)



Titian - “Danaë with Eros” (1544)



Sandro Botticelli - Birth of Venus (1486)



Paul Gauguin - “Two Tahitian Women” (1899)



Raphael - “Three Graces” (1504–1505)



Amedeo Modigliani - “Nude Sitting on a Divan”



Edgar Degas - “La Toilette” (1884–1886)



See original article: Lauren Wade imagines paintings photoshopped like fashion models.

SQL Named Constraint

SQL supports following constraints:

  • CHECK - Ensures that the value in a column meets a specific condition
  • DEFAULT - Specifies a default value when specified none for this column
  • NOT NULL - Indicates that a column cannot store NULL value
  • FOREIGN KEY - Ensure the referential integrity of the data in one table to match values in another table
  • PRIMARY KEY - A combination of a NOT NULL and UNIQUE. Ensures that a column (or combination of two or more columns) have an unique identity which helps to find a particular record in a table more easily and quickly
  • UNIQUE - Ensures that each row for a column must have a unique value

Starting with an example of having named constraint in CREATE statement.

CREATE TABLE [dbo].[Bar]
(
    [Id] int CONSTRAINT [CO_Bar_Id_NOTNULL] NOT NULL, -- PRIMARY KEY,
    [Name] NVARCHAR(50) -- CONSTRAINT [CO_Bar_Name_NOTNULL] NOT NULL UNIQUE, 
  --CONSTRAINT [PK_Bar_Id] PRIMARY KEY ([Id]), -- named constraint
    CONSTRAINT [CO_Bar_Name_UNIQUE] UNIQUE ([Name]),
)
GO

CREATE TABLE [dbo].[FooType]
(
    [Id] int CONSTRAINT [CO_FooType_Id_NOTNULL] NOT NULL, -- PRIMARY KEY,
    [Name] NVARCHAR(50) CONSTRAINT [CO_FooType_Name_NOTNULL] NOT NULL UNIQUE, 
    CONSTRAINT [PK_FooType_Id] PRIMARY KEY ([Id]), -- named constraint
)
GO

CREATE TABLE [dbo].[Foo]
(
    [Id] int CONSTRAINT [CO_Foo_Id_NOTNULL] NOT NULL,
    [Name] NVARCHAR(50) CONSTRAINT [CO_Foo_Name_NOTNULL] NOT NULL, 
    [Description] NVARCHAR(max) NULL, 
    [LinkedBarId] int CONSTRAINT [CO_Foo_LinkedBarId_NOTNULL] NOT NULL, 
    [TypeId] int, -- CONSTRAINT [CO_Foo_TypeId_NOTNULL] NOT NULL, 
    CONSTRAINT [PK_Foo] PRIMARY KEY ([Id]),
    CONSTRAINT [FK_Foo_TypeId]
        FOREIGN KEY ([TypeId])
        REFERENCES [dbo].[FooType] ([Id]) 
        ON DELETE CASCADE
        ON UPDATE CASCADE,
  --CONSTRAINT [FK_Foo_LinkedBarId] -- named FOREIGN KEY constraint
  --FOREIGN KEY ([LinkedBarId])
  --REFERENCES [dbo].[Bar] ([Id]) 
  --    ON DELETE CASCADE
  --    ON UPDATE CASCADE,
)
GO

Separated from CREATE statement/batch, a constraint can be added in ALTER statement.

ALTER TABLE [dbo].[Bar]
ADD CONSTRAINT [PK_Bar_Id] PRIMARY KEY ([Id])
GO

ALTER TABLE [dbo].[Bar]
ADD CONSTRAINT [CO_Bar_Name_NOTNULL] -- named NOT NULL constraint
CHECK([Name] is NOT NULL)
GO

ALTER TABLE [dbo].[Foo]
ADD CONSTRAINT [DF_Foo_Description_NA] -- named DEFAULT constraint
DEFAULT ('N/A') FOR [Description]
GO

ALTER TABLE [dbo].[Foo]
ADD CONSTRAINT [CO_Foo_TypeId_NOTNULL] -- named NOT NULL constraint
CHECK([TypeId] is NOT NULL)
GO

ALTER TABLE [dbo].[Foo]
ADD CONSTRAINT [FK_Foo_LinkedBarId] -- named FOREIGN KEY constraint
    FOREIGN KEY ([LinkedBarId])
    REFERENCES [dbo].[Bar] ([Id]) 
        ON DELETE CASCADE
        ON UPDATE CASCADE
GO

The following query provides a view of all constraints in a database.

SELECT
 db_name() AS DbName,
 sys_table.name as TableName,
 user_name(sys_column.uid) as SchemaName,
 sys_column.name as ConstraintName,
 col.name as ColumnName,
 col.colid as OrdinalPosition,
 comments.text as DefaultClause 
  FROM sysobjects sys_column
  JOIN syscomments comments ON sys_column.id = comments.id
  JOIN sysobjects sys_table ON sys_column.parent_obj = sys_table.id 
  JOIN sysconstraints con ON sys_column.id = con.constid 
  JOIN syscolumns col ON sys_table.id = col.id AND con.colid = col.colid
 WHERE sys_column.uid = user_id() AND sys_column.xtype = 'D'

GO

See more at W3resource | Wiki.