SlideShare a Scribd company logo
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-191
I Can Magazine—
And YOU CAN,
TOO!
(a Case Study of
a Boutique Publisher)
Kevin Bruce
musketeers.me,LLC
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-192
Who am I?
Kevin Bruce
•  Designer (Print & Web)
•  PHP Developer
•  Community Advocate
•  Business Cofounder
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-193
musketeers.me
(a short history)
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-194
“PSST!
Hey, buddy!
Want a media company?”
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-195
php|architect
•  Geared towards PHP
developers
•  monthly magazine
•  online and onsite training
•  online summits
•  2 national conferences
•  a library of over 20 tech
books
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-196
The Magazine
•  Started in December 2001
•  In print until 2009, where it
went to digital-only
•  Up to 2500 subscribers
PHPA AUG 09.indd 1
8/22/09 3:22:06 PM
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-197
a Helpful Editor
Beth Tucker Long
•  Developer
•  Community Leader
•  Editor
•  Writer
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-198
Processes
SVN
Article in
Ceres
Article in
Ceres
command-line
tool binds issues
to subscribers
accounts on
phparch.com |
Author
(various)
Editing
(Beth)
Layout
(Kevin)
PDF, ePub and
mobi files pushed
to site from SVN
Proofing
Rounds
Proofing
Rounds
All proofing and file
exchange are managed
with the help of Subversion
Imported
into
InDesign
command-line
tool used to
export epub &
mobi |
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-199
•  A special inhouse markup.
•  Authors wrotebooks and
articles in it.
•  A commandline program
exported it into epub and
mobi ebook formats.
•  Imported into inDesign
with a custom plugin.
Ceres
=t=Chapter Title=t=
Some Text Here, in **bold**, //italics//, //**italic bold**//, **//bold italic//**,
//’’monospaceCode()’’//. ‘’monospaceCode()’’.
=1=A sub-header=1=
- A list
- list item 2
{{figure figure1.jpg}}
{{sidebar something
More stuff here
}}
<code php>
<?php echo “Hello World”; ?>
</code>
<code sql>
SELECT “Hello World” as greeting;
</code>
<code xml>
	 <?xml version=”1.0” encoding=”UTF-8” ?>
	 <hello><world /></hello>
</code>
<code html>
<!DOCTYPE html>
<html>
	 <head><title>Hello World</title></head>
	 <body><p>Hello World</p></body>
</html>
</code>
<code javascript>
	 alert(new String(“Hello World”));
</code>
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1910
•  http://wikipedia.org/
wiki/Markdown
•  An open standard simple
format that is slowly
getting embraced by
the digital publishing
community.
Markdown
Markdown Syntax - Headings
•	One or more #
•	Provide document structure
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
Markdown Syntax - Text Blocks
• Paragraphs are separated by a new line.
• Block Quotes begin with a >.
I should have used lorem ipsum here as an example of text
> And here is another paragraph
I should have used lorem ipsum here as an example of text
And here is another paragraph
Markdown Syntax - Formatting
*italic* _italic_
**bold**__bold__
‘monospace‘
italic italic
bold bold
monospace
Markdown Syntax - Unordered Lists
• Bullets can be +, -, *
• Nested lists are indented by 4 spaces.
- One
* Sub One
- Two
- Three
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1911
Converts markup in
one format to another
From
•  Markdown
•  HTML
•  LaText, and more
To
•  PDF
•  Latex,
•  ePub and more...
PanDoc
Pandoc
Read the Instructions for
Installing Pandoc on Windows,
Mac OS X, Linux, BSD
http://pandoc.org/
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1912
command-line
tool binds issues
to subscribers
accounts on
phparch.com |
PDF, ePub and
mobi files pushed
to site from SVN
Updated Process
SVN
12 | March 2015 www.phparch.com
12 | March 2015 www.phparch.com
Today, many programmers focus on
their application, not their database.
They think about code—after all, most
of what they do is solving programming
problems, not database problems.
Dry! Theoretical lectures on relational
database theory have little bearing on
modern-day web applications—or so
many seem to think!
FEATURE
Practical Database Design
David Berube
DisplayInfo()
Related URLs:
• Boyce–Codd normal form -
http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form
20 | March 2015 www.phparch.com
Consolidating Doctrine
Migrations
Patrick Schwisow
Doctrine Migrations are a great way to manage changes in your
database structure, but over time migration files can pile up and turn
into an unmaintainable mess. Migration usage is well-documented, but
developers are left to their own devices when it comes to long-term
maintenance. This article outlines a process for cleaning up the mess
and starting fresh with a new base migration with minimal impact on
existing database instances.
FEATURE
DisplayInfo()
Requirements:
• PHP: 5.3.3+
• Doctrine ORM: 2.0+ -
http://www.doctrine-project.org/projects/orm.html
• Doctrine Migrations -
http://www.doctrine-project.org/projects/migrations.html
Other Software:
• MySQL / PgSQL / Oracle / Sqlite
• DoctrineMigrationsBundle -
https://github.com/doctrine/DoctrineMigrationsBundle
Related URLs:
• The Art of Doctrine Migrations (presentation by Ryan Weaver) -
http://www.slideshare.net/weaverryan/the-art-of-doctrine-migrations
4 | March 2015 www.phparch.com
Database Versioning with Liquibase
I think it’s safe to say that database versioning is a subject that
every software developer in the industry will have to deal with
sooner or later. Most development teams have found a way to
deal with schema changes using a tool they either found or built
themselves, which most of the time simply executes all patch files
(or ‘deltas’) that were added since the last time they ran the tool.
This works, and some tools even have some extra-fancy features
like rolling back revisions or tagging certain versions.
Database Versioning
with Liquibase
Harrie Verveer
FEATURE
So people kind of know how to deal with it, but when version numbers collide or conflicts on a
database schema level need to be resolved (especially when merging branches), things get nasty.
We now suddenly have to manually fix our own broken database to a state where it makes sense
again, and we have to open the patch files ourselves and see how we can combine them into
something that works for everybody else, taking into account that some of our users, colleagues,
or environments might already be on a different version number. We have to manually fix it, and it
feels dirty for some reason.
So a while ago, I decided I was going to solve this problem. We did database versioning for our
projects. It kind of worked most of the time, but the manual intervention that was required every
once in a while made it feel like a hack. I decided to go and investigate what solutions were out
there because surely, there must be some sort of magical tool that solves all of our problems once
and for all, right? And if not, I was sure we could look into the problem and build this magical tool
ourselves!
So I took my knapsack and my battle axe +8STR +4DEX, and I went on a quest—the quest to find
the silver bullet solution for database versioning.
Article in
Markdown
Article in
Markdown
PANDOC used to export edited articles to
epub and mobi formats
Author
(various)
Editing
(Oscar)
Layout
(Kevin)
Pandoc
Proofing
Rounds
Proofing
Rounds
All proofing and file
exchange are managed
with the help of Subversion
Imported
into
InDesign
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1913
•  August 2013, LSI approached us with a
pilot journal program.
•  They use their existing book print system
for magazines and journals.
•  Program is print on demand with direct
shipping.
Print is dead. Long live Print!
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1914
•  LSI printed php|architect’s old books. We
had changed to CreateSpace for printing
any new books under musketeers.
•  After much research, we had come to the
conclusion that print was just too risky
to try to bring back because no one was
doing POD for journals..
Back Up
(a brief history)
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1915
Some adjustments needed to be made for
going to print.
1.	Styles (colors) updated for CMYK
2.	Font license checks (meaning I finally get
to clean out any old fonts still hanging
around).
3.	Considerations for bleeds
4.	Facing pages and spreads.
Rerigging
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1916
•  Gloss vs Matte Cover
•  Interior Pages were thin
•  A difference with
standard magazines
was the interior was
matte and a bit faded.
The First Test
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1917
•  Well received
•  Many old subscribers
that remembered print
immediately signed up.
•  A few “old guard” balked
at the $149/year rate but
most changed their minds
as soon as they had it in
their hands.
Rollout
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1918
Revised Process Flow
SVN
12 | March 2015 www.phparch.com
12 | March 2015 www.phparch.com
Today, many programmers focus on
their application, not their database.
They think about code—after all, most
of what they do is solving programming
problems, not database problems.
Dry! Theoretical lectures on relational
database theory have little bearing on
modern-day web applications—or so
many seem to think!
FEATURE
Practical Database Design
David Berube
DisplayInfo()
Related URLs:
• Boyce–Codd normal form -
http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form
20 | March 2015 www.phparch.com
Consolidating Doctrine
Migrations
Patrick Schwisow
Doctrine Migrations are a great way to manage changes in your
database structure, but over time migration files can pile up and turn
into an unmaintainable mess. Migration usage is well-documented, but
developers are left to their own devices when it comes to long-term
maintenance. This article outlines a process for cleaning up the mess
and starting fresh with a new base migration with minimal impact on
existing database instances.
FEATURE
DisplayInfo()
Requirements:
• PHP: 5.3.3+
• Doctrine ORM: 2.0+ -
http://www.doctrine-project.org/projects/orm.html
• Doctrine Migrations -
http://www.doctrine-project.org/projects/migrations.html
Other Software:
• MySQL / PgSQL / Oracle / Sqlite
• DoctrineMigrationsBundle -
https://github.com/doctrine/DoctrineMigrationsBundle
Related URLs:
• The Art of Doctrine Migrations (presentation by Ryan Weaver) -
http://www.slideshare.net/weaverryan/the-art-of-doctrine-migrations
4 | March 2015 www.phparch.com
Database Versioning with Liquibase
I think it’s safe to say that database versioning is a subject that
every software developer in the industry will have to deal with
sooner or later. Most development teams have found a way to
deal with schema changes using a tool they either found or built
themselves, which most of the time simply executes all patch files
(or ‘deltas’) that were added since the last time they ran the tool.
This works, and some tools even have some extra-fancy features
like rolling back revisions or tagging certain versions.
Database Versioning
with Liquibase
Harrie Verveer
FEATURE
So people kind of know how to deal with it, but when version numbers collide or conflicts on a
database schema level need to be resolved (especially when merging branches), things get nasty.
We now suddenly have to manually fix our own broken database to a state where it makes sense
again, and we have to open the patch files ourselves and see how we can combine them into
something that works for everybody else, taking into account that some of our users, colleagues,
or environments might already be on a different version number. We have to manually fix it, and it
feels dirty for some reason.
So a while ago, I decided I was going to solve this problem. We did database versioning for our
projects. It kind of worked most of the time, but the manual intervention that was required every
once in a while made it feel like a hack. I decided to go and investigate what solutions were out
there because surely, there must be some sort of magical tool that solves all of our problems once
and for all, right? And if not, I was sure we could look into the problem and build this magical tool
ourselves!
So I took my knapsack and my battle axe +8STR +4DEX, and I went on a quest—the quest to find
the silver bullet solution for database versioning.
Article in
Markdown
Article in
Markdown
lightningsource.com Issue prints and ships
to individual addresses
uploaded to LSI
PANDOC used to export edited articles to
epub and mobi formats
command-line
tool binds issues
to subscribers
accounts on
phparch.com |
Author
(various)
Editing
(Oscar)
Layout
(Kevin)
Pandoc
Designer loads print
files on LSI’s site
PDF, ePub and
mobi files pushed
to site from SVNProofing
Rounds
Proofing
Rounds
All proofing and file
exchange are managed
with the help of Subversion
Imported
into
InDesign
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1919
•  LSI now has a UK print facility to enable
faster and cheaper shipping to europe.
We have a seperate upload account at
LSI’s site for uploading files to print at
that facility. This also allowed us to lower
international subscription price!
•  We have decided on giving a year’s
subcription to attendees of php[tek] and
php[world]..
Updates
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1920
1.	Demand stays flat
•  	Cultivate advertisers where we can to
suppliment low subscription numbers
•  Stay with POD
2.	Demand increases
•  	Use a higher end printer that requires
minimums
•  Go to a model where we use more
advertisers, cheaper subscription
3.	Demand Dwindles...
Future of Print
Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1921
Thank You
Kevin Bruce
•  kevin@musketeers.me
•  kevinbruce.com
•  @kevinbruce
•  www.phparch.com

More Related Content

What's hot

Practical IronRuby
Practical IronRubyPractical IronRuby
Practical IronRuby
Shay Friedman
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure Clojure
Dane Schneider
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
John McCaffrey
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
John McCaffrey
 
2010 11 pubcon_hendison_wordpress
2010 11 pubcon_hendison_wordpress2010 11 pubcon_hendison_wordpress
2010 11 pubcon_hendison_wordpress
shendison
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
John McCaffrey
 
WCM-7 Surfing with CMIS
WCM-7 Surfing with CMISWCM-7 Surfing with CMIS
WCM-7 Surfing with CMIS
Alfresco Software
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014
Ricard Clau
 
Deployment Nirvana
Deployment NirvanaDeployment Nirvana
Deployment Nirvana
Adrian Pike
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail Bortnyk
Ruby Meditation
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
Supakit Kiatrungrit
 
從零開始的爬蟲之旅 Crawler from zero
從零開始的爬蟲之旅 Crawler from zero從零開始的爬蟲之旅 Crawler from zero
從零開始的爬蟲之旅 Crawler from zero
Shi-Ken Don
 
UT on Rails3 2010- Week 4
UT on Rails3 2010- Week 4 UT on Rails3 2010- Week 4
UT on Rails3 2010- Week 4
Richard Schneeman
 
Coscup
CoscupCoscup
Coscup
Giivee The
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
Lois Patterson
 
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
Rakuten Group, Inc.
 
Cloud native Continuous Delivery
Cloud native Continuous DeliveryCloud native Continuous Delivery
Cloud native Continuous Delivery
Christian Deger
 
UT on Rails3 2010- Week 1
UT on Rails3 2010- Week 1UT on Rails3 2010- Week 1
UT on Rails3 2010- Week 1
Richard Schneeman
 

What's hot (20)

Practical IronRuby
Practical IronRubyPractical IronRuby
Practical IronRuby
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure Clojure
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
2010 11 pubcon_hendison_wordpress
2010 11 pubcon_hendison_wordpress2010 11 pubcon_hendison_wordpress
2010 11 pubcon_hendison_wordpress
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
WCM-7 Surfing with CMIS
WCM-7 Surfing with CMISWCM-7 Surfing with CMIS
WCM-7 Surfing with CMIS
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014
 
Deployment Nirvana
Deployment NirvanaDeployment Nirvana
Deployment Nirvana
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail Bortnyk
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
從零開始的爬蟲之旅 Crawler from zero
從零開始的爬蟲之旅 Crawler from zero從零開始的爬蟲之旅 Crawler from zero
從零開始的爬蟲之旅 Crawler from zero
 
UT on Rails3 2010- Week 4
UT on Rails3 2010- Week 4 UT on Rails3 2010- Week 4
UT on Rails3 2010- Week 4
 
Coscup
CoscupCoscup
Coscup
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
 
Cloud native Continuous Delivery
Cloud native Continuous DeliveryCloud native Continuous Delivery
Cloud native Continuous Delivery
 
UT on Rails3 2010- Week 1
UT on Rails3 2010- Week 1UT on Rails3 2010- Week 1
UT on Rails3 2010- Week 1
 

Viewers also liked

Celia Aragon Salinas celebra su natividad 21 06 1016
Celia Aragon Salinas celebra su natividad 21 06 1016Celia Aragon Salinas celebra su natividad 21 06 1016
Celia Aragon Salinas celebra su natividad 21 06 1016
megaradioexpress
 
Позитив с Мариной Ли_15 лет в эфире
Позитив с Мариной Ли_15 лет в эфиреПозитив с Мариной Ли_15 лет в эфире
Позитив с Мариной Ли_15 лет в эфире
AnnElec77
 
Radio video web (i)
Radio video web (i)Radio video web (i)
Radio video web (i)flormarfia
 
Présentation1 (2)
Présentation1 (2)Présentation1 (2)
Présentation1 (2)jihanbakhan
 
Presentacio christofer larroza
Presentacio christofer larrozaPresentacio christofer larroza
Presentacio christofer larroza
Christofer Larroza
 
Joan scabino vosa y edison molina
Joan scabino vosa y edison molinaJoan scabino vosa y edison molina
Joan scabino vosa y edison molinaJoan Scabino Vosa
 

Viewers also liked (10)

Leo y agus 6
Leo y agus 6Leo y agus 6
Leo y agus 6
 
Celia Aragon Salinas celebra su natividad 21 06 1016
Celia Aragon Salinas celebra su natividad 21 06 1016Celia Aragon Salinas celebra su natividad 21 06 1016
Celia Aragon Salinas celebra su natividad 21 06 1016
 
Empresa ron damon
Empresa ron damonEmpresa ron damon
Empresa ron damon
 
Позитив с Мариной Ли_15 лет в эфире
Позитив с Мариной Ли_15 лет в эфиреПозитив с Мариной Ли_15 лет в эфире
Позитив с Мариной Ли_15 лет в эфире
 
Radio video web (i)
Radio video web (i)Radio video web (i)
Radio video web (i)
 
Masonic regalia Jewel
Masonic regalia JewelMasonic regalia Jewel
Masonic regalia Jewel
 
Présentation1 (2)
Présentation1 (2)Présentation1 (2)
Présentation1 (2)
 
Presentacio christofer larroza
Presentacio christofer larrozaPresentacio christofer larroza
Presentacio christofer larroza
 
Vittoz
VittozVittoz
Vittoz
 
Joan scabino vosa y edison molina
Joan scabino vosa y edison molinaJoan scabino vosa y edison molina
Joan scabino vosa y edison molina
 

Similar to I Can Magazine- and YOU CAN, TOO! (A Case Study of a Boutique Designer)

Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Developmentkmloomis
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
Teamstudio
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databases
Chris Skardon
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
Colin Charles
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
Advanced Schema Design Patterns
Advanced Schema Design PatternsAdvanced Schema Design Patterns
Advanced Schema Design Patterns
MongoDB
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsMongoDB
 
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
IBM Connect 2016 - AD1548 - Building Responsive XPages ApplicationsIBM Connect 2016 - AD1548 - Building Responsive XPages Applications
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
beglee
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
Kimihiko Kitase
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
NETWAYS
 
Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz S.A.
 
Mongodb, our Swiss Army Knife Database
Mongodb, our Swiss Army Knife DatabaseMongodb, our Swiss Army Knife Database
Mongodb, our Swiss Army Knife Database
Mathieu Poumeyrol
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
Derek Jacoby
 
Notes From Velocity Conference Europe
Notes From Velocity Conference EuropeNotes From Velocity Conference Europe
Notes From Velocity Conference Europe
SiriusWay
 
Connecting Intelligent Content with Micropublishing and Beyond
Connecting Intelligent Content with Micropublishing and BeyondConnecting Intelligent Content with Micropublishing and Beyond
Connecting Intelligent Content with Micropublishing and Beyond
Don Day
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)
François Massart
 
Plone for Education: Bibliographies
Plone for Education: BibliographiesPlone for Education: Bibliographies
Plone for Education: Bibliographies
Cristopher Ewing
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
Henry S
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
Derek Jacoby
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
Dominic Woodman
 

Similar to I Can Magazine- and YOU CAN, TOO! (A Case Study of a Boutique Designer) (20)

Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databases
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
Advanced Schema Design Patterns
Advanced Schema Design PatternsAdvanced Schema Design Patterns
Advanced Schema Design Patterns
 
Rapid Development with Schemaless Data Models
Rapid Development with Schemaless Data ModelsRapid Development with Schemaless Data Models
Rapid Development with Schemaless Data Models
 
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
IBM Connect 2016 - AD1548 - Building Responsive XPages ApplicationsIBM Connect 2016 - AD1548 - Building Responsive XPages Applications
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
 
Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...Skroutz redesign - How to approach card-based design & SASS content - specifi...
Skroutz redesign - How to approach card-based design & SASS content - specifi...
 
Mongodb, our Swiss Army Knife Database
Mongodb, our Swiss Army Knife DatabaseMongodb, our Swiss Army Knife Database
Mongodb, our Swiss Army Knife Database
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 
Notes From Velocity Conference Europe
Notes From Velocity Conference EuropeNotes From Velocity Conference Europe
Notes From Velocity Conference Europe
 
Connecting Intelligent Content with Micropublishing and Beyond
Connecting Intelligent Content with Micropublishing and BeyondConnecting Intelligent Content with Micropublishing and Beyond
Connecting Intelligent Content with Micropublishing and Beyond
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)
 
Plone for Education: Bibliographies
Plone for Education: BibliographiesPlone for Education: Bibliographies
Plone for Education: Bibliographies
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 

More from Kevin Bruce

Design for Developers SunshinePHP 2017
Design for Developers  SunshinePHP 2017Design for Developers  SunshinePHP 2017
Design for Developers SunshinePHP 2017
Kevin Bruce
 
News From the Front Lines - an update on Front-End Tech
News From the Front Lines - an update on Front-End TechNews From the Front Lines - an update on Front-End Tech
News From the Front Lines - an update on Front-End Tech
Kevin Bruce
 
Design trends - from html tables to semantic html5
Design trends - from html tables to semantic html5Design trends - from html tables to semantic html5
Design trends - from html tables to semantic html5
Kevin Bruce
 
Responsive Development (ZendCon 2012)
Responsive Development (ZendCon 2012)Responsive Development (ZendCon 2012)
Responsive Development (ZendCon 2012)
Kevin Bruce
 
Building html5 sites that don't suck
Building html5 sites that don't suck Building html5 sites that don't suck
Building html5 sites that don't suck Kevin Bruce
 
Web Design Trends - the Do's and Don'ts of using HTML5
Web Design Trends - the Do's and Don'ts of using HTML5Web Design Trends - the Do's and Don'ts of using HTML5
Web Design Trends - the Do's and Don'ts of using HTML5Kevin Bruce
 

More from Kevin Bruce (6)

Design for Developers SunshinePHP 2017
Design for Developers  SunshinePHP 2017Design for Developers  SunshinePHP 2017
Design for Developers SunshinePHP 2017
 
News From the Front Lines - an update on Front-End Tech
News From the Front Lines - an update on Front-End TechNews From the Front Lines - an update on Front-End Tech
News From the Front Lines - an update on Front-End Tech
 
Design trends - from html tables to semantic html5
Design trends - from html tables to semantic html5Design trends - from html tables to semantic html5
Design trends - from html tables to semantic html5
 
Responsive Development (ZendCon 2012)
Responsive Development (ZendCon 2012)Responsive Development (ZendCon 2012)
Responsive Development (ZendCon 2012)
 
Building html5 sites that don't suck
Building html5 sites that don't suck Building html5 sites that don't suck
Building html5 sites that don't suck
 
Web Design Trends - the Do's and Don'ts of using HTML5
Web Design Trends - the Do's and Don'ts of using HTML5Web Design Trends - the Do's and Don'ts of using HTML5
Web Design Trends - the Do's and Don'ts of using HTML5
 

Recently uploaded

一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
h7j5io0
 
Let's Summon Demons Shirt Let's Summon Demons Shirt
Let's Summon Demons Shirt Let's Summon Demons ShirtLet's Summon Demons Shirt Let's Summon Demons Shirt
Let's Summon Demons Shirt Let's Summon Demons Shirt
TeeFusion
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
ameli25062005
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
Alan Dix
 
Common Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid themCommon Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid them
madhavlakhanpal29
 
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
asuzyq
 
Transforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting ProfitabilityTransforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting Profitability
aaryangarg12
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
boryssutkowski
 
7 Alternatives to Bullet Points in PowerPoint
7 Alternatives to Bullet Points in PowerPoint7 Alternatives to Bullet Points in PowerPoint
7 Alternatives to Bullet Points in PowerPoint
Alvis Oh
 
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
gpffo76j
 
vernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdfvernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdf
PrabhjeetSingh219035
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
cy0krjxt
 
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
7sd8fier
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
9a93xvy
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Mansi Shah
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
n0tivyq
 
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
smpc3nvg
 
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
7sd8fier
 
projectreportnew-170307082323 nnnnnn(1).pdf
projectreportnew-170307082323 nnnnnn(1).pdfprojectreportnew-170307082323 nnnnnn(1).pdf
projectreportnew-170307082323 nnnnnn(1).pdf
farazahmadas6
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
h7j5io0
 

Recently uploaded (20)

一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
 
Let's Summon Demons Shirt Let's Summon Demons Shirt
Let's Summon Demons Shirt Let's Summon Demons ShirtLet's Summon Demons Shirt Let's Summon Demons Shirt
Let's Summon Demons Shirt Let's Summon Demons Shirt
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
 
Can AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI preludeCan AI do good? at 'offtheCanvas' India HCI prelude
Can AI do good? at 'offtheCanvas' India HCI prelude
 
Common Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid themCommon Designing Mistakes and How to avoid them
Common Designing Mistakes and How to avoid them
 
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
 
Transforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting ProfitabilityTransforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting Profitability
 
Borys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior designBorys Sutkowski portfolio interior design
Borys Sutkowski portfolio interior design
 
7 Alternatives to Bullet Points in PowerPoint
7 Alternatives to Bullet Points in PowerPoint7 Alternatives to Bullet Points in PowerPoint
7 Alternatives to Bullet Points in PowerPoint
 
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
 
vernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdfvernacular architecture in response to climate.pdf
vernacular architecture in response to climate.pdf
 
Design Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinkingDesign Thinking Design thinking Design thinking
Design Thinking Design thinking Design thinking
 
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
 
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
Between Filth and Fortune- Urban Cattle Foraging Realities by Devi S Nair, An...
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
 
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
一比一原版(Bristol毕业证书)布里斯托大学毕业证成绩单如何办理
 
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
一比一原版(NCL毕业证书)纽卡斯尔大学毕业证成绩单如何办理
 
projectreportnew-170307082323 nnnnnn(1).pdf
projectreportnew-170307082323 nnnnnn(1).pdfprojectreportnew-170307082323 nnnnnn(1).pdf
projectreportnew-170307082323 nnnnnn(1).pdf
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
 

I Can Magazine- and YOU CAN, TOO! (A Case Study of a Boutique Designer)

  • 1. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-191 I Can Magazine— And YOU CAN, TOO! (a Case Study of a Boutique Publisher) Kevin Bruce musketeers.me,LLC
  • 2. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-192 Who am I? Kevin Bruce •  Designer (Print & Web) •  PHP Developer •  Community Advocate •  Business Cofounder
  • 3. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-193 musketeers.me (a short history)
  • 4. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-194 “PSST! Hey, buddy! Want a media company?”
  • 5. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-195 php|architect •  Geared towards PHP developers •  monthly magazine •  online and onsite training •  online summits •  2 national conferences •  a library of over 20 tech books
  • 6. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-196 The Magazine •  Started in December 2001 •  In print until 2009, where it went to digital-only •  Up to 2500 subscribers PHPA AUG 09.indd 1 8/22/09 3:22:06 PM
  • 7. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-197 a Helpful Editor Beth Tucker Long •  Developer •  Community Leader •  Editor •  Writer
  • 8. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-198 Processes SVN Article in Ceres Article in Ceres command-line tool binds issues to subscribers accounts on phparch.com | Author (various) Editing (Beth) Layout (Kevin) PDF, ePub and mobi files pushed to site from SVN Proofing Rounds Proofing Rounds All proofing and file exchange are managed with the help of Subversion Imported into InDesign command-line tool used to export epub & mobi |
  • 9. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-199 •  A special inhouse markup. •  Authors wrotebooks and articles in it. •  A commandline program exported it into epub and mobi ebook formats. •  Imported into inDesign with a custom plugin. Ceres =t=Chapter Title=t= Some Text Here, in **bold**, //italics//, //**italic bold**//, **//bold italic//**, //’’monospaceCode()’’//. ‘’monospaceCode()’’. =1=A sub-header=1= - A list - list item 2 {{figure figure1.jpg}} {{sidebar something More stuff here }} <code php> <?php echo “Hello World”; ?> </code> <code sql> SELECT “Hello World” as greeting; </code> <code xml> <?xml version=”1.0” encoding=”UTF-8” ?> <hello><world /></hello> </code> <code html> <!DOCTYPE html> <html> <head><title>Hello World</title></head> <body><p>Hello World</p></body> </html> </code> <code javascript> alert(new String(“Hello World”)); </code>
  • 10. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1910 •  http://wikipedia.org/ wiki/Markdown •  An open standard simple format that is slowly getting embraced by the digital publishing community. Markdown Markdown Syntax - Headings • One or more # • Provide document structure # Heading 1 ## Heading 2 ### Heading 3 #### Heading 4 ##### Heading 5 <h1>Heading 1</h1> <h2>Heading 2</h2> <h3>Heading 3</h3> <h4>Heading 4</h4> <h5>Heading 5</h5> Markdown Syntax - Text Blocks • Paragraphs are separated by a new line. • Block Quotes begin with a >. I should have used lorem ipsum here as an example of text > And here is another paragraph I should have used lorem ipsum here as an example of text And here is another paragraph Markdown Syntax - Formatting *italic* _italic_ **bold**__bold__ ‘monospace‘ italic italic bold bold monospace Markdown Syntax - Unordered Lists • Bullets can be +, -, * • Nested lists are indented by 4 spaces. - One * Sub One - Two - Three
  • 11. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1911 Converts markup in one format to another From •  Markdown •  HTML •  LaText, and more To •  PDF •  Latex, •  ePub and more... PanDoc Pandoc Read the Instructions for Installing Pandoc on Windows, Mac OS X, Linux, BSD http://pandoc.org/
  • 12. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1912 command-line tool binds issues to subscribers accounts on phparch.com | PDF, ePub and mobi files pushed to site from SVN Updated Process SVN 12 | March 2015 www.phparch.com 12 | March 2015 www.phparch.com Today, many programmers focus on their application, not their database. They think about code—after all, most of what they do is solving programming problems, not database problems. Dry! Theoretical lectures on relational database theory have little bearing on modern-day web applications—or so many seem to think! FEATURE Practical Database Design David Berube DisplayInfo() Related URLs: • Boyce–Codd normal form - http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form 20 | March 2015 www.phparch.com Consolidating Doctrine Migrations Patrick Schwisow Doctrine Migrations are a great way to manage changes in your database structure, but over time migration files can pile up and turn into an unmaintainable mess. Migration usage is well-documented, but developers are left to their own devices when it comes to long-term maintenance. This article outlines a process for cleaning up the mess and starting fresh with a new base migration with minimal impact on existing database instances. FEATURE DisplayInfo() Requirements: • PHP: 5.3.3+ • Doctrine ORM: 2.0+ - http://www.doctrine-project.org/projects/orm.html • Doctrine Migrations - http://www.doctrine-project.org/projects/migrations.html Other Software: • MySQL / PgSQL / Oracle / Sqlite • DoctrineMigrationsBundle - https://github.com/doctrine/DoctrineMigrationsBundle Related URLs: • The Art of Doctrine Migrations (presentation by Ryan Weaver) - http://www.slideshare.net/weaverryan/the-art-of-doctrine-migrations 4 | March 2015 www.phparch.com Database Versioning with Liquibase I think it’s safe to say that database versioning is a subject that every software developer in the industry will have to deal with sooner or later. Most development teams have found a way to deal with schema changes using a tool they either found or built themselves, which most of the time simply executes all patch files (or ‘deltas’) that were added since the last time they ran the tool. This works, and some tools even have some extra-fancy features like rolling back revisions or tagging certain versions. Database Versioning with Liquibase Harrie Verveer FEATURE So people kind of know how to deal with it, but when version numbers collide or conflicts on a database schema level need to be resolved (especially when merging branches), things get nasty. We now suddenly have to manually fix our own broken database to a state where it makes sense again, and we have to open the patch files ourselves and see how we can combine them into something that works for everybody else, taking into account that some of our users, colleagues, or environments might already be on a different version number. We have to manually fix it, and it feels dirty for some reason. So a while ago, I decided I was going to solve this problem. We did database versioning for our projects. It kind of worked most of the time, but the manual intervention that was required every once in a while made it feel like a hack. I decided to go and investigate what solutions were out there because surely, there must be some sort of magical tool that solves all of our problems once and for all, right? And if not, I was sure we could look into the problem and build this magical tool ourselves! So I took my knapsack and my battle axe +8STR +4DEX, and I went on a quest—the quest to find the silver bullet solution for database versioning. Article in Markdown Article in Markdown PANDOC used to export edited articles to epub and mobi formats Author (various) Editing (Oscar) Layout (Kevin) Pandoc Proofing Rounds Proofing Rounds All proofing and file exchange are managed with the help of Subversion Imported into InDesign
  • 13. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1913 •  August 2013, LSI approached us with a pilot journal program. •  They use their existing book print system for magazines and journals. •  Program is print on demand with direct shipping. Print is dead. Long live Print!
  • 14. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1914 •  LSI printed php|architect’s old books. We had changed to CreateSpace for printing any new books under musketeers. •  After much research, we had come to the conclusion that print was just too risky to try to bring back because no one was doing POD for journals.. Back Up (a brief history)
  • 15. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1915 Some adjustments needed to be made for going to print. 1. Styles (colors) updated for CMYK 2. Font license checks (meaning I finally get to clean out any old fonts still hanging around). 3. Considerations for bleeds 4. Facing pages and spreads. Rerigging
  • 16. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1916 •  Gloss vs Matte Cover •  Interior Pages were thin •  A difference with standard magazines was the interior was matte and a bit faded. The First Test
  • 17. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1917 •  Well received •  Many old subscribers that remembered print immediately signed up. •  A few “old guard” balked at the $149/year rate but most changed their minds as soon as they had it in their hands. Rollout
  • 18. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1918 Revised Process Flow SVN 12 | March 2015 www.phparch.com 12 | March 2015 www.phparch.com Today, many programmers focus on their application, not their database. They think about code—after all, most of what they do is solving programming problems, not database problems. Dry! Theoretical lectures on relational database theory have little bearing on modern-day web applications—or so many seem to think! FEATURE Practical Database Design David Berube DisplayInfo() Related URLs: • Boyce–Codd normal form - http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form 20 | March 2015 www.phparch.com Consolidating Doctrine Migrations Patrick Schwisow Doctrine Migrations are a great way to manage changes in your database structure, but over time migration files can pile up and turn into an unmaintainable mess. Migration usage is well-documented, but developers are left to their own devices when it comes to long-term maintenance. This article outlines a process for cleaning up the mess and starting fresh with a new base migration with minimal impact on existing database instances. FEATURE DisplayInfo() Requirements: • PHP: 5.3.3+ • Doctrine ORM: 2.0+ - http://www.doctrine-project.org/projects/orm.html • Doctrine Migrations - http://www.doctrine-project.org/projects/migrations.html Other Software: • MySQL / PgSQL / Oracle / Sqlite • DoctrineMigrationsBundle - https://github.com/doctrine/DoctrineMigrationsBundle Related URLs: • The Art of Doctrine Migrations (presentation by Ryan Weaver) - http://www.slideshare.net/weaverryan/the-art-of-doctrine-migrations 4 | March 2015 www.phparch.com Database Versioning with Liquibase I think it’s safe to say that database versioning is a subject that every software developer in the industry will have to deal with sooner or later. Most development teams have found a way to deal with schema changes using a tool they either found or built themselves, which most of the time simply executes all patch files (or ‘deltas’) that were added since the last time they ran the tool. This works, and some tools even have some extra-fancy features like rolling back revisions or tagging certain versions. Database Versioning with Liquibase Harrie Verveer FEATURE So people kind of know how to deal with it, but when version numbers collide or conflicts on a database schema level need to be resolved (especially when merging branches), things get nasty. We now suddenly have to manually fix our own broken database to a state where it makes sense again, and we have to open the patch files ourselves and see how we can combine them into something that works for everybody else, taking into account that some of our users, colleagues, or environments might already be on a different version number. We have to manually fix it, and it feels dirty for some reason. So a while ago, I decided I was going to solve this problem. We did database versioning for our projects. It kind of worked most of the time, but the manual intervention that was required every once in a while made it feel like a hack. I decided to go and investigate what solutions were out there because surely, there must be some sort of magical tool that solves all of our problems once and for all, right? And if not, I was sure we could look into the problem and build this magical tool ourselves! So I took my knapsack and my battle axe +8STR +4DEX, and I went on a quest—the quest to find the silver bullet solution for database versioning. Article in Markdown Article in Markdown lightningsource.com Issue prints and ships to individual addresses uploaded to LSI PANDOC used to export edited articles to epub and mobi formats command-line tool binds issues to subscribers accounts on phparch.com | Author (various) Editing (Oscar) Layout (Kevin) Pandoc Designer loads print files on LSI’s site PDF, ePub and mobi files pushed to site from SVNProofing Rounds Proofing Rounds All proofing and file exchange are managed with the help of Subversion Imported into InDesign
  • 19. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1919 •  LSI now has a UK print facility to enable faster and cheaper shipping to europe. We have a seperate upload account at LSI’s site for uploading files to print at that facility. This also allowed us to lower international subscription price! •  We have decided on giving a year’s subcription to attendees of php[tek] and php[world].. Updates
  • 20. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1920 1. Demand stays flat •  Cultivate advertisers where we can to suppliment low subscription numbers •  Stay with POD 2. Demand increases •  Use a higher end printer that requires minimums •  Go to a model where we use more advertisers, cheaper subscription 3. Demand Dwindles... Future of Print
  • 21. Musketeers.me AIGA Blue Ridge Essentials • 2015-03-1921 Thank You Kevin Bruce •  kevin@musketeers.me •  kevinbruce.com •  @kevinbruce •  www.phparch.com