Date post: | 02-Jun-2018 |
Category: |
Documents |
Upload: | roman-sukochev |
View: | 222 times |
Download: | 0 times |
of 52
8/10/2019 Full Circle Magazine - issue 91 EN
1/52
f u l l c i r c l e m a g a z i n e # 9 1 1
c o n t e n t s ^
F u l l C i r c l e
T H E I N D E P E N D E N T M A G A Z I N E F O R T H E U B U N T U L I N U X C O M M U N I T Y
I S S U E # 9 1 - N o v e m b e r 2 0 1 4
F
F
u
u
l
l
l
l
C
C
i
i
r
r
c
c
l
l
e
e
M
M
a
a
g
g
a
a
z
z
i
i
n
n
e
e
i
i
s
s
n
n
e
e
i
i
t
t
h
h
e
e
r
r
a
a
f
f
f
f
i
i
l
l
i
i
a
a
t
t
e
e
d
d
w
w
i
i
t
t
h
h
,
,
n
n
o
o
r
r
e
e
n
n
d
d
o
o
r
r
s
s
e
e
d
d
b
b
y
y
,
,
C
C
a
a
n
n
o
o
n
n
i
i
c
c
a
a
l
l
L
L
t
t
d
d
.
.
K
K
O
O
D
D
I
I
(
(
F
F
K
K
A
A
:
:
X
X
B
B
M
M
C
C
)
)
B O O K R E V I E W
S O M E S O F T W A R E A D D I T I O N S
http://fullcirclemagazine.org/8/10/2019 Full Circle Magazine - issue 91 EN
2/52
f u l l c i r c l e m a g a z i n e # 9 1
2
c o n t e n t s ^
T h e a r t i c l e s c o n t a i n e d i n t h i s m a g a z i n e a r e r e l e a s e d u n d e r t h e C r e a t i v e C o m m o n s A t t r i b u t i o n - S h a r e A l i k e 3 . 0 U n p o r t e d l i c e n s e .
T h i s m e a n s y o u c a n a d a p t , c o p y , d i s t r i b u t e a n d t r a n s m i t t h e a r t i c l e s b u t o n l y u n d e r t h e f o l l o w i n g c o n d i t i o n s : y o u m u s t a t t r i b u t e
t h e w o r k t o t h e o r i g i n a l a u t h o r i n s o m e w a y ( a t l e a s t a n a m e , e m a i l o r U R L ) a n d t o t h i s m a g a z i n e b y n a m e ( ' F u l l C i r c l e M a g a z i n e ' )
a n d t h e U R L w w w . f u l l c i r c l e m a g a z i n e . o r g ( b u t n o t a t t r i b u t e t h e a r t i c l e ( s ) i n a n y w a y t h a t s u g g e s t s t h a t t h e y e n d o r s e y o u o r y o u r u s e o f t h e w o r k ) . I f
y o u a l t e r , t r a n s f o r m , o r b u i l d u p o n t h i s w o r k , y o u m u s t d i s t r i b u t e t h e r e s u l t i n g w o r k u n d e r t h e s a m e , s i m i l a r o r a c o m p a t i b l e l i c e n s e .
F u l l C i r c l e m a g a z i n e i s e n t i r e l y i n d e p e n d e n t o f C a n o n i c a l , t h e s p o n s o r o f t h e U b u n t u p r o j e c t s , a n d t h e v i e w s a n d o p i n i o n s i n t h e
m a g a z i n e s h o u l d i n n o w a y b e a s s u m e d t o h a v e C a n o n i c a l e n d o r s e m e n t .
F u l l C i r c l e
T H E I N D E P E N D E N T M A G A Z I N E F O R T H E U B U N T U L I N U X C O M M U N I T Y
M u l t i p l e P a s s w o r d s p . 1 6
L i b r e O f f i c e p . 1 3
P r o g r a m I n P y t h o n p . 1 1
B l e n d e r p . X X
H o w T o
Q & A p . 4 6
C o m m a n d & C o n q u e r p . 0 9
I n k s c a p e p . 1 9
T u x i d e r m y p . 4 5
L e t t e r s p . 4 4
S e c u r i t y p . X X
L i n u x L a b s p . 3 2
L i n u x N e w s p . 0 4
U b u n t u G a m e s p . 4 8
A r d u i n o p . 2 3
R e v i e w p . 3 9
U b u n t u W o m e n p . X X
G r a p h i c s
B A C K N E X T M O N T H
B A C K N E X T M O N T H
B A C K N E X T M O N T H
M y S t o r y p . 4 2
L i n u x L a b s p . 2 6
http://creativecommons.org/licenses/by-sa/3.0/8/10/2019 Full Circle Magazine - issue 91 EN
3/52
f u l l c i r c l e m a g a z i n e # 9 1
3
c o n t e n t s ^
E
E
D
D
I
I
T
T
O
O
R
R
I
I
A
A
L
L
W E L C O M E T O A N O T H E R I S S U E O F F U L L C I R C L E .
P
y t h o n m a k e s a t r i u m p h a n t r e t u r n t h i s m o n t h , b u t s t i l l n o B l e n d e r a g a i n t h i s m o n t h I ' m
a f r a i d . I f y o u r e a d l a s t m o n t h ' s i s s u e y o u ' l l k n o w t h a t N i c h o l a s i s n o w o f f i c i a l l y a f a t h e r
a n d h a s p r o b a b l y o n l y s l e p t a h a n d f u l l o f h o u r s t h i s m o n t h . C o m p l e t i n g t h e t r i n i t y ( w i t h
L i b r e O f f i c e ) i s a n i n t e r e s t i n g a r t i c l e o n m a n a g i n g m u l t i p l e p a s s w o r d s w i t h a B A S H s c r i p t .
V e r y d i f f e r e n t !
I n k s c a p e a l s o c o n t i n u e s a s n o r m a l a n d i s j o i n e d w i t h t h e f o u r t h i n o u r s e r i e s o f k e r n e l
a r t i c l e s a n d C h a r l e s r e t u r n s w i t h a s e c o n d p a r t t o h i s K o d i ( f o r m e r l y k n o w n a s X B M C ) s e r i e s .
W h y I r e m e m b e r i n s t a l l i n g X B M C o n t o a n X b o x . T h e f i r s t X b o x n o l e s s ! O K , I ' m g i v i n g a w a y m y
a g e . I ' l l s t o p n o w .
E l e m e n t a r y O S i s r e v i e w e d a s i s t h e b o o k ( k i n d l y g i f t e d t o u s b y P a c k t P u b l i s h i n g ) W e b
D e v e l o p m e n t w i t h M o n g o D B a n d N o d e J S b y J a s o n K r o l . L u c a s t o u c h e d u p o n N o d e J S i n a
p r e v i o u s C o m m a n d a n d C o n q u e r a r t i c l e . S o , i t ' s o n l y n a t u r a l t h a t h e s h o u l d r e v i e w t h e b o o k .
A s e v e r , p l e a s e s u p p o r t P a c k t a s t h e y ' r e o n e o f t h e f e w p u b l i s h e r s w h o s e n d u s b o o k s f o r
r e v i e w .
T h i s m o n t h b r i n g s t o a n e n d m y c u r r e n t A r d u i n o p r o j e c t , b u t I ' l l h a v e s o m e t h i n g n e w f o r
y o u t o d o n e x t m o n t h . F e a r n o t !
A n y w a y , e n o u g h r a m b l i n g f r o m m e . I h o p e y o u e n j o y t h e i s s u e .
A l l t h e b e s t , a n d k e e p i n t o u c h !
R o n n i e
r o n n i e @ f u l l c i r c l e m a g a z i n e . o r g
T h i s m a g a z i n e w a s c r e a t e d u s i n g :
F u l l C i r c l e P o d c a s t
R e l e a s e d m o n t h l y , e a c h e p i s o d e
c o v e r s a l l t h e l a t e s t U b u n t u n e w s ,
o p i n i o n s , r e v i e w s , i n t e r v i e w s a n d
l i s t e n e r f e e d b a c k . T h e S i d e - P o d i s
a n e w a d d i t i o n , i t ' s a n e x t r a
( i r r e g u l a r ) s h o r t - f o r m p o d c a s t
w h i c h i s i n t e n d e d t o b e a b r a n c h
o f t h e m a i n p o d c a s t . I t ' s
s o m e w h e r e t o p u t a l l t h e g e n e r a l
t e c h n o l o g y a n d n o n - U b u n t u s t u f f
t h a t d o e s n t f i t i n t h e m a i n
p o d c a s t .
H o s t s :
L e s P o u n d e r
T o n y H u g h e s
J o n C h a m b e r l a i n
O l i v e r C l a r k
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g
http://fullcirclemagazine.org/http://creativecommons.org/http://www.libreoffice.org/http://www.gimp.org/http://www.scribus.net/mailto:[email protected]8/10/2019 Full Circle Magazine - issue 91 EN
4/52
8/10/2019 Full Circle Magazine - issue 91 EN
5/52
8/10/2019 Full Circle Magazine - issue 91 EN
6/52
f u l l c i r c l e m a g a z i n e # 9 1 6
c o n t e n t s ^
N E W S
d e f i n i t e l y w o r t h c h e c k i n g o u t .
S o u r c e :
h t t p : / / w w w . n e t w o r k w o r l d . c o m / a r t
i c l e / 2 8 4 1 8 0 4 / s o f t w a r e / k r i t a -
d e s k t o p - a - f r e e - o p e n - s o u r c e -
p a i n t i n g - t o o l - m a y b e - a s - g o o d - a s -
p h o t o s h o p . h t m l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
L I N U X F O U N D A T I O N : O P E N
SO U R C E I S
EA T I N G T H E
SO F T W A R E
WO R L D
I
n e v e r y s e c t o r o f t h e t e c h n o l o g y
w o r l d t h e r e i s n o w a n o p e n
s o u r c e p r o j e c t t h a t i s d e f i n i n g t h a t
p a r t i c u l a r t e c h n o l o g y . S o f t w a r e
d r i v e s v a l u e i n n e a r l y e v e r y
i n d u s t r y , a n d o p e n s o u r c e p r o j e c t s
a r e w h e r e m o s t o f t h a t v a l u e
c o m e s f r o m .
T h a t s a c c o r d i n g t o J i m Z e m l i n ,
e x e c u t i v e d i r e c t o r o f t h e L i n u x
F o u n d a t i o n a n d o n e o f M o n d a y s
k e y n o t e s p e a k e r s a t t h i s w e e k s
O p e n S t a c k s u m m i t i n P a r i s t h e
f i r s t i n E u r o p e . O p e n s o u r c e i s
r e a l l y e a t i n g t h e s o f t w a r e w o r l d ,
Z e m l i n s a i d , a d a p t i n g t h e f a m o u s
p h r a s e f r o m a 2 0 1 1 W a l l S t r e e t
J o u r n a l O p E d b y v e n t u r e c a p i t a l i s t
M a r k A n d r e e s s e n , t i t l e d S o f t w a r e
i s e a t i n g t h e w o r l d .
T h e r e i s a w h o l e s a l e s h i f t i n t h e
e n t e r p r i s e s o f t w a r e w o r l d f r o m
u s i n g a l i t t l e b i t o f o p e n s o u r c e
c o d e h e r e a n d t h e r e t o a n 8 0 - 2 0
s p l i t , w h e r e 8 0 i s t h e o p e n s o u r c e
p o r t i o n , h e s a i d . T h e r e a s o n f o r t h e
s h i f t i s q u i t e s i m p l e : s o f t w a r e h a s
b e c o m e a w a y f o r a n e n t e r p r i s e t o
a d d v a l u e , a n d o p e n s o u r c e i s t h e
b e s t w a y t o u s e a l o t o f s o f t w a r e .
T h e r e i s t o o m u c h s o f t w a r e b e i n g
w r i t t e n f o r a n y o r g a n i z a t i o n t o
w r i t e t h a t s o f t w a r e o n t h e i r o w n ,
Z e m l i n e x p l a i n e d .
S o u r c e :
h t t p : / / w w w . d a t a c e n t e r k n o w l e d g e .
c o m / a r c h i v e s / 2 0 1 4 / 1 1 / 0 3 / l i n u x -
f o u n d a t i o n - o p e n - s o u r c e - e a t i n g -
e n t e r p r i s e - s o f t w a r e - w o r l d /
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
G O O G L E C L O U D A D D S
S U P P O R T F O R U B U N T U
LI N U X
DI S T R I B U T I O N
G
o o g l e p a r t n e r e d w i t h
C a n o n i c a l t o b r i n g o f f i c i a l
U b u n t u i m a g e s t o G o o g l e C o m p u t e
E n g i n e .
G o o g l e C o m p u t e E n g i n e
b e c a m e g e n e r a l l y a v a i l a b l e i n
D e c e m b e r 2 0 1 3 . S i n c e t h e n , i t
a d d e d s u p p o r t f o r C o r e O S , D e b i a n ,
R e d H a t E n t e r p r i s e L i n u x , S U S E a n d
M i c r o s o f t W i n d o w s S e r v e r . T h o u g h
D e b i a n a n d U b u n t u d i s t r i b u t i o n s
a r e c o m p a t i b l e , m a n y d e v e l o p e r s
p r e f e r t o w o r k o n U b u n t u .
A c c o r d i n g t o C a n o n i c a l , U b u n t u
p o w e r s 8 5 % o f L i n u x w o r k l o a d s
r u n n i n g o n p u b l i c c l o u d s . U b u n t u i s
a p o p u l a r c h o i c e o f L i n u x
d i s t r i b u t i o n o n A m a z o n E C 2 ,
M i c r o s o f t A z u r e a n d H P C l o u d a n d
J o y e n t .
A c c o r d i n g t o a b l o g p o s t f r o m
G o o g l e C l o u d P l a t f o r m t e a m ,
C a n o n i c a l m a i n t a i n e d i m a g e s a r e
c o n t i n u a l l y t e s t e d a n d u p d a t e d ,
f o l l o w i n g U b u n t u s b e s t - p r a c t i c e s .
S o u r c e :
h t t p : / / w w w . i n f o q . c o m / n e w s / 2 0 1 4 /
1 1 / g o o g l e - c l o u d - s u p p o r t s -
u b u n t u ? u t m _ c a m p a i g n = i n f o q _ c o n t
e n t & u t m _ s o u r c e = i n f o q & u t m _ m e d i
u m = f e e d & u t m _ t e r m = g l o b a l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
UB U N T U
G N O M E 1 4 . 1 0 :
U N I F Y I N G T H E L I N U X
D E S K T O P
A
s y o u m a y k n o w , U b u n t u 1 4 . 1 0
c a m e o u t w i t h a b o u t a s m u c h
f a n f a r e a s g r o w i n g g r a s s . I f y o u ' r e
u n s u r e w h y t h i s h a p p e n e d , i t ' s
s i m p l e - - U b u n t u i s i n a s t a t e o f
h o l d i n g b e c a u s e o f U n i t y 8 / M i r .
U n t i l t h a t h a p p e n s , U b u n t u v e r s i o n
u p g r a d e s w i l l b e a b o u t b u g f i x e s
a n d n o t m u c h m o r e . I t m a k e s
s e n s e . . . w h y d u m p a b u n c h o f
t i m e / e f f o r t i n t o a n i n t e r f a c e t h a t ' s
a b o u t t o u n d e r g o a r a d i c a l s h i f t ?
H o w e v e r , t h a t ' s n o t t h e c a s e f o r
t h e G N O M E f l a v o r o f U b u n t u .
U b u n t u G N O M E 1 4 . 1 0 w a s r e l e a s e d
a l o n g w i t h t h e o f f i c i a l f l a v o r a n d
b r i n g s t o l i g h t s o m e r e a l l y
i m p r e s s i v e f e a t u r e s . T h i s r e l e a s e
a l s o i n c l u d e s t h e m u c h a n t i c i p a t e d
G N O M E - M a p s a n d G N O M E -
W e a t h e r - - a n d i t ' s i m p o r t a n t t o
d e v e l o p e r s , b e c a u s e i t c o m e s w i t h
n u m e r o u s n e w A P I s a n d w i d g e t s .
S o u r c e :
h t t p : / / w w w . t e c h r e p u b l i c . c o m / a r t i c l
e / u b u n t u - g n o m e - 1 4 - 1 0 - u n i f y i n g -
t h e - l i n u x - d e s k t o p /
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
C A N O N I C A L C O N F I R M S
IN V O L V E M E N T I N
UB U N T U
LI N U X
TA B L E T
A
c c o r d i n g t o e m a i l s f r o m
A n d r e w B e r n s t e i n , w h o h a s
e m e r g e d a s t h e p u b l i c f a c e o f t h e
U T O n e t a b l e t p r o j e c t , C a n o n i c a l
http://www.techrepublic.com/article/ubuntu-gnome-14-10-unifying-the-linux-desktop/http://www.infoq.com/news/2014/11/google-cloud-supports-ubuntu?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=globalhttp://www.datacenterknowledge.com/archives/2014/11/03/linux-foundation-open-source-eating-enterprise-software-world/http://www.networkworld.com/article/2841804/software/krita-desktop-a-free-open-source-painting-tool-maybe-as-good-as-photoshop.html8/10/2019 Full Circle Magazine - issue 91 EN
7/52
f u l l c i r c l e m a g a z i n e # 9 1 7
c o n t e n t s ^
N E W S
" c e r t a i n l y w i l l b e i n v o l v e d " i n t h e
p r o d u c t i o n o f t h e t a b l e t , w h i c h w i l l
f e a t u r e a n I n t e l x 8 6 p r o c e s s o r .
F o r n o w , B e r n s t e i n i s h o l d i n g h i s
c a r d s c l o s e w i t h r e g a r d t o
s p e c i f y i n g e x a c t l y w h a t C a n o n i c a l ' s
r o l e w i l l b e . B u t h e w r i t e s t h a t , a t a
m i n i m u m , " w e d o h o p e t o g e t
o f f i c i a l h a r d w a r e c e r t i f i c a t i o n a n d
s o m e a g r e e m e n t o n s u p p o r t f o r U T
O n e ' s s o f t w a r e , a s i n p r o v i d i n g
s u p p o r t f o r e n d u s e r s i n r e l a t i o n t o
t h e h a r d w a r e . "
B e r n s t e i n a l s o c o n f i r m e d t h a t
t h e t a b l e t h a r d w a r e w i l l b e r e a d y
t o s h i p b y D e c e m b e r , a l t h o u g h h e
e x p r e s s e d d o u b t t h a t t h e s o f t w a r e
i t n e e d s t o r u n w i l l b e a v a i l a b l e
t h a t s o o n . T h a t ' s b e c a u s e
C a n o n i c a l l i k e l y w o n ' t c o m p l e t e
w o r k o n U b u n t u T o u c h , t h e v e r s i o n
o f U b u n t u t h a t i t i s b u i l d i n g f o r
t a b l e t s , p h o n e s a n d o t h e r m o b i l e
d e v i c e s , u n t i l s o m e t i m e i n t h e n e w
y e a r , p o s t p o n i n g t h e U T O n e
r e l e a s e d , B e r n s t e i n s a i d .
S o u r c e :
h t t p : / / t h e v a r g u y . c o m / u b u n t u / 1 1 0 6
1 4 / c a n o n i c a l - c o n f i r m s -
i n v o l v e m e n t - u b u n t u - l i n u x - t a b l e t
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
LI N U X S T I L L O W N S
S U P E R C O M P U T I N G
T
h a t ' s n o s u r p r i s e . F o r y e a r s ,
L i n u x h a s d o m i n a t e d
s u p e r c o m p u t i n g . T h e N o v e m b e r
2 0 1 4 T o p 5 0 0 s u p e r c o m p u t e r
r a n k i n g f o u n d 4 8 5 o u t o f t h e
w o r l d ' s f a s t e s t 5 0 0 c o m p u t e r s
r u n n i n g L i n u x . T h a t ' s 9 7 p e r c e n t f o r
t h o s e o f y o u w i t h o u t a c a l c u l a t o r a t
h a n d .
C o m p a r e d t o t h a t , W i n d o w s o n
d e s k t o p s a n d A n d r o i d o n
s m a r t p h o n e s a r e p i k e r s .
L i n u x h a s g r o w n t o o w n
s u p e r c o m p u t i n g s i n c e i t f i r s t
a p p e a r e d o n t h e T o p 5 0 0 l i s t i n
J u n e 1 9 9 8 b e c a u s e i t s i m p l y w o r k s
w e l l i n c r e a t i n g u l t r a - f a s t
c o m p u t e r s . U n i x , w h i c h o n c e
d o m i n a t e d t h e b i - a n n u a l l i s t i n g s i s
d o w n t o a m e r e 1 3 s y s t e m s , 2 . 6
p e r c e n t . T h e r e m a i n i n g t w o
s u p e r c o m p u t e r s c o n s i s t s o f a
s y s t e m r u n n i n g a m i x e d o p e r a t i n g
s y s t e m a n d a s i n g l e W i n d o w s
s y s t e m .
S o u r c e :
h t t p : / / w w w . z d n e t . c o m / l i n u x - s t i l l -
o w n s - s u p e r c o m p u t i n g -
7 0 0 0 0 3 5 8 7 6 /
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
P R O M I N E N T D E V E L O P E R S
P U L L I N G O U T O F D
E B I A N A S
V O T I N G D E A D L I N E N E A R S
F
o u r p r o m i n e n t m e m b e r s o f t h e
D e b i a n c o m m u n i t y h a v e
s t e p p e d d o w n o r r e d u c e d t h e i r
i n v o l v e m e n t i n t h e p r o j e c t a s a
r e s u l t o f a n i n c r e a s i n g l y b i t t e r
a r g u m e n t o v e r t h e f u t u r e o f t h e
w i d e l y i n f l u e n t i a l L i n u x
d i s t r i b u t i o n .
T h e b a t t l e s c e n t e r o n t h e r e c e n t
d e c i s i o n b y D e b i a n ' s g o v e r n i n g
t e c h n i c a l c o m m i t t e e t o r e p l a c e t h e
v e n e r a b l e s y s v i n i t s t a r t u p m o d u l e
w i t h s y s t e m d i n t h e f o r t h c o m i n g
r e l e a s e , d u b b e d " J e s s i e . " S y s t e m d
i s a m o r e s o p h i s t i c a t e d , c o m p l e x
p i e c e o f s o f t w a r e , w h i c h
s u p p o r t e r s s a y i s a n e c e s s a r y
u p d a t e t o a b a d l y o u t m o d e d p a r t
o f D e b i a n , w h i l e c r i t i c s a c c u s e i t o f
b e i n g n e e d l e s s l y c o m p l e x a n d
s u f f e r i n g f r o m s e r i o u s f e a t u r e
c r e e p .
T h e c r i t i c i s m h a s h i t a f e v e r
p i t c h i n r e c e n t m o n t h s , w i t h
s y s t e m d c r e a t o r L e n n a r t
P o e t t e r i n g t a k i n g t o G o o g l e P l u s t o
t a l k a b o u t r e c e i v i n g d e a t h t h r e a t s
a n d o t h e r o n l i n e a b u s e .
S o u r c e :
h t t p : / / w w w . i n f o w o r l d . c o m / a r t i c l e /
2 8 4 9 3 6 4 / l i n u x / p r o m i n e n t -
d e v e l o p e r s - p u l l i n g - o u t - o f - d e b i a n -
a s - v o t i n g - d e a d l i n e - n e a r s . h t m l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
C R O W D F U N D I N G J O L L A , A
G N U / L I N U X
-P O W E R E D
H I G H -
S P E C T A B L E T
I
t r u n s a n O S c a l l e d S a i l f i s h t h a t
c a n u s e A n d r o i d a p p s a s w e l l i t s
o w n n a t i v e a p p s , a n d w a s c r e a t e d
b y a t e a m w i t h a b u n c h o f s e n i o r
N o k i a r e f u g e e s o n i t .
T h e t a b l e t i t s e l f i s s u p e r h i g h -
s p e c a n d c o m p e t i t i v e l y p r i c e d ( a n d
t o t a l v a p o u r w a r e a t t h i s p o i n t ,
c a v e a t e m p t o r ) . T h e O S i s b u i l t o n
G N U / L i n u x w i t h t h e Q t a p p l i c a t i o n
f r a m e w o r k . T h e c o m p a n y
a d v e r t i s e s i t s e l f a s p r i v a c y - f r i e n d l y
a n d p r o m i s e s n e v e r t o s e l l o r s h a r e
y o u r d a t a a n d n o t t o b u i l d i n a n y
i n t e n t i o n a l b a c k - d o o r s .
I t o o k a f l u t t e r a n d p r e - o r d e r e d
o n e .
S o u r c e :
h t t p : / / b o i n g b o i n g . n e t / 2 0 1 4 / 1 1 / 1 9 /
c r o w d f u n d i n g - j o l l a - a - g n u l i n u . h t m l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
http://boingboing.net/2014/11/19/crowdfunding-jolla-a-gnulinu.htmlhttp://www.infoworld.com/article/2849364/linux/prominent-developers-pulling-out-of-debian-as-voting-deadline-nears.htmlhttp://www.zdnet.com/linux-still-owns-supercomputing-7000035876/http://thevarguy.com/ubuntu/110614/canonical-confirms-involvement-ubuntu-linux-tablet8/10/2019 Full Circle Magazine - issue 91 EN
8/52f u l l c i r c l e m a g a z i n e # 9 1 8c o n t e n t s ^
N E W S
HO W T H E
LI N U X
F O U N D A T I O N ' S C I I I S
S E C U R I N G T H E I N T E R N E T
T
h e H e a r t b l e e d f l a w t h a t w a s
f i r s t p u b l i c l y d i s c l o s e d i n A p r i l
o f t h i s y e a r , w a s i n s o m e r e s p e c t s a
b l a c k e y e o n t h e o p e n - s o u r c e
c o m m u n i t y . H e a r t b l e e d i s a f l a w i n
t h e o p e n - s o u r c e O p e n S S L
c r y p t o g r a p h i c l i b r a r y t h a t h a d w i d e
r a n g i n g i m p a c t a c r o s s t h e
i n f r a s t r u c t u r e o f t h e I n t e r n e t . I n
t h e a f t e r m a t h o f H e a r t b l e e d , a
n e w e f f o r t e m e r g e d c a l l e d t h e
C o r e I n f r a s t r u c t u r e I n i t i a t i v e ( C I I )
t o h e l p f u n d d e v e l o p e r s w a n t i n g t o
i m p r o v e s e c u r i t y a c r o s s c r i t i c a l
o p e n - s o u r c e i n f r a s t r u c t u r e
t e c h n o l o g i e s . I n a v i d e o i n t e r v i e w
w i t h e W E E K , J i m Z e m l i n , e x e c u t i v e
d i r e c t o r o f t h e L i n u x F o u n d a t i o n ,
e x p l a i n s h o w C I I w o r k s a n d w h a t
c a n b e d o n e t o i m p r o v e o p e n -
s o u r c e s e c u r i t y . Z e m l i n n o t e d t h a t
i n t h e c a s e o f O p e n S S L , t h o u g h i t
p l a y s a c r i t i c a l r o l e i n I n t e r n e t
i n f r a s t r u c t u r e , i t w a s n o t r e c e i v i n g
t h e l e v e l o f s u p p o r t t h a t i s
c o m m e n s u r a t e w i t h t h e r o l e i t
p l a y s . T h e r e a r e o t h e r o p e n - s o u r c e
e f f o r t s b e y o n d j u s t O p e n S S L t h a t
c o u l d a l s o b e n e f i t f r o m i n c r e a s e d
f i n a n c i a l s u p p o r t , h e a d d e d .
S o u r c e :
h t t p : / / w w w . e w e e k . c o m / s e c u r i t y / h
o w - t h e - l i n u x - f o u n d a t i o n s - c o r e -
i n f r a s t r u c t u r e - i n i t i a t i v e - i s - s e c u r i n g -
t h e - i n t e r n e t - v i d e o . h t m l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
' L E S S ' M E A N S M O R E T O
M A L W A R E A U T H O R S
T A R G E T I N G L
I N U X U S E R S
U
s i n g t h e l e s s L i n u x c o m m a n d
t o v i e w t h e c o n t e n t s o f f i l e s
d o w n l o a d e d f r o m t h e I n t e r n e t i s a
d a n g e r o u s o p e r a t i o n t h a t c a n l e a d
t o r e m o t e c o d e e x e c u t i o n ,
a c c o r d i n g t o a s e c u r i t y r e s e a r c h e r .
A t f i r s t g l a n c e , l e s s a p p e a r s t o
b e a h a r m l e s s c o m m a n d t h a t
o u t p u t s a f i l e s c o n t e n t t o a
t e r m i n a l w i n d o w a n d a l l o w s t h e
u s e r s t o n a v i g a t e f o r w a r d a n d
b a c k w a r d t h r o u g h i t . L e s s d o e s n o t
a l l o w f i l e e d i t i n g , w h i c h i s a j o b f o r
f i l e e d i t o r s l i k e t h e w i d e l y u s e d v i ,
b u t h a s t h e b e n e f i t o f d i s p l a y i n g
d a t a o n t h e f l y w i t h o u t n e e d i n g t o
l o a d a n e n t i r e f i l e i n t o m e m o r y .
T h i s i s u s e f u l w h e n d e a l i n g w i t h
l a r g e f i l e s . L e s s i s f r e q u e n t l y u s e d
t o v i e w t e x t f i l e s , b u t o n m a n y
L i n u x d i s t r i b u t i o n s , i n c l u d i n g
U b u n t u a n d C e n t O S , i t s u p p o r t s
m a n y m o r e f i l e t y p e s , i n c l u d i n g
a r c h i v e s , i m a g e s a n d P D F . T h a t s
b e c a u s e , o n t h e s e s y s t e m s , l e s s i s
e x t e n d e d t h r o u g h a s c r i p t c a l l e d
l e s s p i p e t h a t r e l i e s o n d i f f e r e n t
t h i r d - p a r t y t o o l s t o p r o c e s s f i l e s
w i t h v a r i o u s e x t e n s i o n s .
S o u r c e :
h t t p : / / w w w . p c w o r l d . c o m / a r t i c l e / 2
8 5 1 6 9 2 / l e s s - m e a n s - m o r e - t o -
m a l w a r e - a u t h o r s - t a r g e t i n g - l i n u x -
u s e r s . h t m l
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
AN T A R C T I C I C E M I G H T B E
T H I C K E R T H A N P R E V I O U S L Y
T H O U G H T , R E V E A L S L I N U X
P O W E R E D U N D E R W A T E R
R O B O T S E A B E D
S
e a B E D , a s u b m e r s i b l e r o b o t
p o w e r e d b y L i n u x , w a s r e c e n t l y
u s e d t o s c a n t h e h u g e f r o z e n i c e
s h e e t s a c r o s s A n t a r c t i c a . T h a t h a s
h e l p e d s c i e n t i s t s g e t d e t a i l e d a n d
h i g h - r e s o l u t i o n 3 - D m a p s o f t h e
f r o z e n c o n t i n e n t f o r t h e f i r s t t i m e .
R e s e a r c h e r s a t t h e B r i t i s h A n t a r c t i c
S u r v e y w i l l n o w b e a b l e t o k n o w
m o r e r e g i o n s w h i c h h a d e a r l i e r
b e e n d i f f i c u l t t o a c c e s s b e c a u s e o f
t h e h o s t i l e c o n d i t i o n s p r e v a i l i n g i n
t h e a r e a .
T h e r o b o t r u n s o n a 1 . 2 G H z I n t e l
P e n t i u m p r o c e s s o r a n d u s e s
U b u n t u , w h i l e t h e h u l l o f t h e s u b
h a s b e e n s o d e s i g n e d t h a t i t s t a y s
s t a b l e e n o u g h f o r p h o t o g r a p h i c
w o r k , t o a l l o w t h e s o n a r t o a i m
p r e c i s e l y a n d t o b e a b l e t o s e n d t h e
d a t a t h u s c o l l e c t e d c o n s i s t e n t l y .
S o u r c e :
h t t p : / / t h e w e s t s i d e s t o r y . n e t / 2 0 1 4 /
1 1 / 2 5 / 2 1 7 9 4 / a n t a r c t i c - i c e - m i g h t -
t h i c k e r - p r e v i o u s l y - t h o u g h t - r e v e a l s -
l i n u x - p o w e r e d - u n d e r w a t e r - r o b o t -
s e a b e d /
S u b m i t t e d b y : A r n f r i e d W a l b r e c h t
http://thewestsidestory.net/2014/11/25/21794/antarctic-ice-might-thicker-previously-thought-reveals-linux-powered-underwater-robot-seabed/http://www.pcworld.com/article/2851692/less-means-more-to-malware-authors-targeting-linux-users.htmlhttp://www.eweek.com/security/how-the-linux-foundations-core-infrastructure-initiative-is-securing-the-internet-video.html8/10/2019 Full Circle Magazine - issue 91 EN
9/52f u l l c i r c l e m a g a z i n e # 9 1
9
c o n t e n t s ^
L
a s t m o n t h I m e n t i o n e d t h e
Z u r b F o u n d a t i o n w h e n
d i s c u s s i n g b o w e r . F o r a l o n g w h i l e
i t w a s m y g o - t o g r i d s y s t e m ,
r e g a r d l e s s o f m y o p i n i o n t o w a r d s
u s i n g d i v s f o r r o w s a n d t h e s t r i c t
f o r m a t t i n g g u i d e l i n e s . V e r y
r e c e n t l y , h o w e v e r , I h a v e f o u n d a
n e w f r a m e w o r k w h i c h d o e s n o t
r e q u i r e t h o s e s o r t s o f d i v s ( o r e v e n
p r e - d e f i n e d c l a s s e s ) . I t i s c a l l e d
J e e t , a n d a f t e r u s i n g i t o n o n l y o n e
p r o j e c t , I d o n t s e e m y s e l f u s i n g
F o u n d a t i o n f o r t h e g r i d a n y m o r e .
E X A M P L E F I L E S
I v e c r e a t e d a g i t h u b r e p o s i t o r y
c o n t a i n i n g a l l m y e x a m p l e f i l e s . F o r
a n y o n e i n t e r e s t e d i n t h e m , t h e y
c a n e i t h e r b e v i e w e d o n t h e w e b ,
o r c l o n e d . T h e r e p o s i t o r y i s h e r e :
h t t p s : / / g i t h u b . c o m / l s w e s t / F C M 9 1 .
JE E T
- WH A T I S I T
?
J e e t i s a s o - c a l l e d R a t i o G r i d .
I t f e a t u r e s f u n c t i o n s i n S A S S o r
S t y l u s t o g e n e r a t e t h e C S S
r e q u i r e d t o c r e a t e c o l u m n s o n a n y
e l e m e n t . T h e w e b s i t e l i n k e d t o i n
F u r t h e r R e a d i n g ( b e l o w ) d o e s a n
e x c e l l e n t j o b d e s c r i b i n g w h a t
e x a c t l y J e e t i s . S o i n s t e a d , I w i l l
f o c u s o n a n e x a m p l e o f h o w i t
d i f f e r s f r o m F o u n d a t i o n .
EM M E T
? WH O
?
E m m e t i s e s s e n t i a l l y t h e
s p i r i t u a l s u c c e s s o r t o Z e n C o d i n g . I t
e n a b l e s y o u t o e n t e r a s e r i e s o f
s e l e c t o r s ( b a s e d o f f t h e C S S
s e l e c t o r s ) , w h i c h t h e n a u t o -
c o m p l e t e s i n t o H T M L c o d e w h e n
y o u h i t t a b . T h e r e a r e p l u g i n s
a v a i l a b l e f o r t h e v a s t m a j o r i t y o f
t e x t e d i t o r s , s o y o u s h o u l d h a v e n o
p r o b l e m f i n d i n g o n e .
T H E E M M E T E X A M P L E
F o r t h e i l l u s t r a t i o n b e t w e e n t h e
d i f f e r e n c e s o f J e e t a n d
F o u n d a t i o n , I w i l l u s e t h e s a m e
t h r e e s t a t e m e n t s i n E m m e t , a n d
w o r k f r o m t h e r e . A f t e r e a c h
s t a t e m e n t , I l l h i t t a b a n d h a v e
e m m e t c o m p l e t e i t , t h e n m o v e
o n t o t h e n e x t . T h e y a r e :
html:5
T h i s g e n e r a t e s t h e b a s i c H T M L 5
p a g e s t r u c t u r e ( d o c t y p e , h t m l t a g s ,
h e a d a n d b o d y ) .
link[href=css/foundation.css]:css
T h i s g e n e r a t e s a < l i n k
r e l = s t y l e s h e e t
h r e f = c s s / f o u n d a t i o n . c s s > l i n e .
R e p l a c e f o u n d a t i o n . c s s f o r a p p . c s s
f o r t h e J e e t e x a m p l e
header+section>article+aside^footer
T h i s c r e a t e s a s e t o f h e a d e r t a g s ,
f o l l o w e d b y ( + a d j a c e n t s i b l i n g
s e l e c t o r ) a s e c t i o n e l e m e n t w i t h
t w o c h i l d r e n ( > , a n a r t i c l e a n d a n
a s i d e ) , a n d t h e n a f o l l o w i n g ( ^ " u p
o n e l e v e l ) f o o t e r t a g .
A f t e r r u n n i n g t h e s e c o m m a n d s ,
I w i l l h a v e a b a s i c H T M L 5 p a g e . T o
s e e w h a t t h e e n d r e s u l t w a s , l o o k
i n t h e e m m e t . h t m l f i l e i n t h e
e x a m p l e c o d e .
TH E
EX A M P L E
A s s u m i n g y o u w a n t e d t o c r e a t e
a t w o - c o l u m n l a y o u t t h a t s p a n s t h e
w h o l e w i d t h o f t h e w e b p a g e , y o u d
n e e d t o d o t h e f o l l o w i n g f o r
F o u n d a t i o n :
C r e a t e a d i v w i t h c l a s s r o w
w i t h i n t h e b o d y t a g s .
C r e a t e a n e x t r a s t y l e t o e x p a n d
t h e w i d t h o f t h e r o w t o 1 0 0 % .
A d d y o u r c o l u m n c l a s s e s t o e v e r y
e l e m e n t .
A d d a d i v w i t h c l a s s r o w a r o u n d
t h e a r t i c l e a n d t h e a s i d e e l e m e n t s
w i t h i n s e c t i o n .
T h e s a m e s t e p s f o r J e e t
( s t a r t i n g a f t e r t h e e m m e t f i l e w a s
c r e a t e d ) :
R u n t h e c f ( ) f u n c t i o n o n h e a d e r ,
f o o t e r a n d s e c t i o n ( N o t s t r i c t l y
n e c e s s a r y , b u t i t d e f i n i t e l y d o e s n t
h u r t ) .
R u n t h e c o l u m n f u n c t i o n o n
a r t i c l e a n d a s i d e ( c o l ( 0 . 7 5 ) a n d
c o l ( 0 . 2 5 ) r e s p e c t i v e l y ) .
C o m p i l e t h e s c s s o r s t y l u s f i l e .
I n b o t h c a s e s , I v e a d d e d a f e w
e x t r a s t y l e s t o h e l p i l l u s t r a t e t h e
e n d l a y o u t , b u t a s t h e y a r e n t
n e c e s s a r y , I h a v e n t i n c l u d e d t h e m .
N o t e : T h e f u n c t i o n s f o r J e e t c a n
b e r u n i n s c s s , b u t t h a t r e q u i r e s t h e
f o r m a t @ i n c l u d e c o l ( 0 . 7 5 ) ; T h e
f o r m a t I u s e a b o v e i s f o r S t y l u s .
C
C
O
O
M
M
M
M
A
A
N
N
D
D
&
&
C
C
O
O
N
N
Q
Q
U
U
E
E
R
R
W r i t t e n b y L u c a s W e s t e r m a n n
J
J
e
e
e
e
t
t
&
&
E
E
m
m
m
m
e
e
t
t
https://github.com/lswest/FCM918/10/2019 Full Circle Magazine - issue 91 EN
10/52f u l l c i r c l e m a g a z i n e # 9 1
1 0
c o n t e n t s ^
C O M M A N D & C O N Q U E R
N o t e # 2 : I f y o u w a n t t o w o r k o n
t h e s t y l u s f i l e , y o u l l f i r s t n e e d t o
i n s t a l l j e e t ( m o s t e a s i l y d o n e v i a
n p m ) .
TH E C O N C L U S I O N
A s y o u c a n s e e , t h e
c o n f i g u r a t i o n o f t h e c o l u m n s
o c c u r s i n a s t y l e s h e e t , m e a n i n g y o u
c a n f o c u s o n c r e a t i n g a b a s i c h t m l
s t r u c t u r e , a n d t h e n o n l y e d i t i t a s
y o u a d d e x t r a s t y l e s t h a t y o u m a y
n e e d . Y o u r e n o t f o r c e d t o a d j u s t
t h e c o l u m n s b y e d i t i n g t h e e l e m e n t
t a g s , w h i c h i s g r e a t w h e n y o u r e
w o r k i n g w i t h a C M S a n d w o n t
n e c e s s a r i l y b e a b l e t o e a s i l y e d i t a n
H T M L f i l e t o m a k e y o u r c h a n g e s .
A n o t h e r b e n e f i t i s t h a t t h e
c o m p i l e d C S S f i l e c o n t a i n s l i t e r a l l y
o n l y t h e s t y l e s y o u u s e . W h i l e
F o u n d a t i o n d o e s l e t y o u p i c k a n d
c h o o s e d i f f e r e n t m o d u l e s t o
c o m p i l e , t h e r e i s v e r y o f t e n a l a r g e
a m o u n t o f u n n e c e s s a r y c o d e .
H o p e f u l l y t h i s w i l l h e l p b r i n g
J e e t t o t h e a t t e n t i o n o f t h o s e j u s t
s t a r t i n g o u t , s o t h e y c a n f o c u s
m o r e o n g o o d f o r m a t t i n g a n d
b e i n g s u c c i n c t r a t h e r t h a n
c o n f o r m i n g t o t h e Z u r b F o u n d a t i o n
f o r m a t . T h a t i s n t t o s a y
F o u n d a t i o n i s n t u s e f u l f o r c e r t a i n
a s p e c t s , a s i t o f f e r s m o r e t h a n j u s t
a g r i d ( s u c h a s p r e - d e f i n e d s t y l e s
f o r b u t t o n s o r m e n u s ) , a n d i t c a n
e a s i l y b e m i x e d w i t h t h e J e e t g r i d .
F i n a l n o t e : I f y o u w a n t J e e t t o
w o r k i n o l d e r v e r s i o n s o f I n t e r n e t
E x p l o r e r , y o u l l n e e d t o u s e
s o m e t h i n g l i k e s e l e c t i v z r ,
m o d e r n i z r , o r H T M L 5 s h i v , o r a
c o m b i n a t i o n .
I h o p e t h i s a r t i c l e h a s b e e n
h e l p f u l t o a n y o n e s t a r t i n g o u t w i t h
w e b p r o g r a m m i n g . I f y o u h a v e a n y
q u e s t i o n s , o r h a v e u s e d e i t h e r
E m m e t o r J e e t f o r a n i n t e r e s t i n g
p r o j e c t , f e e l f r e e t o e m a i l m e a t
l s w e s t 3 4 + f c m @ g m a i l . c o m . A l s o ,
a n y o n e w h o h a s a r e q u e s t f o r a n
a r t i c l e i s a l s o w e l c o m e t o e m a i l m e .
F U R T H E R R E A D I N G
h t t p : / / j e e t . g s / - T h e J e e t
F r a m e w o r k
h t t p s : / / g i t h u b . c o m / m o j o t e c h / j e e t /
t r e e / m a s t e r / s t y l u s - T h e J e e t
F r a m e w o r k S t y l u s g i t h u b
r e p o s i t o r y w i t h u s e f u l s t y l u s
p r o j e c t s ( l i s t e d u n d e r P r o t i p s ) .
h t t p : / / e m m e t . i o / - T h e E m m e t
w e b s i t e
h t t p s : / / g i t h u b . c o m / l s w e s t / F C M 9 1 -
G i t h u b r e p o s i t o r y w i t h e x a m p l e s .
P Y T H O N S P E C I A L E D I T I O N S :
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / i s s u e - p y 0 1 / h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / i s s u e - p y 0 2 /
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / p y t h o n -
s p e c i a l - e d i t i o n - i s s u e - t h r e e /
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / p y t h o n -
s p e c i a l - e d i t i o n - v o l u m e - f o u r /
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / p y t h o n -
s p e c i a l - e d i t i o n - v o l u m e - f i v e /
h t t p : / / f u l l c i r c l e m a g a z i n e . o r g / p y t h o n -
s p e c i a l - e d i t i o n - v o l u m e - s i x /
http://fullcirclemagazine.org/python-special-edition-volume-six/http://fullcirclemagazine.org/python-special-edition-volume-five/http://fullcirclemagazine.org/python-special-edition-volume-four/http://fullcirclemagazine.org/python-special-edition-issue-three/http://fullcirclemagazine.org/issue-py02/http://fullcirclemagazine.org/issue-py01/https://github.com/lswest/FCM91http://emmet.io/https://github.com/mojotech/jeet/tree/master/stylushttp://jeet.gs/mailto:[email protected]8/10/2019 Full Circle Magazine - issue 91 EN
11/52f u l l c i r c l e m a g a z i n e # 9 1
1 1
c o n t e n t s ^
H
H
O
O
W
W
-
-
T
T
O
O
W r i t t e n b y G r e g W a l t e r s
P
P
r
r
o
o
g
g
r
r
a
a
m
m
I
I
n
n
P
P
y
y
t
t
h
h
o
o
n
n
P
P
t
t
.
.
5
5
7
7
CR O S S
ST I T C H
PA T T E R N
G E N E R A T O R - P A R T 4 -
U N D E R S T A N D I N G P Y F P D F
S
o r r y f o r m i s s i n g s o m a n y
m o n t h s . I s t i l l c a n t s i t f o r l o n g
p e r i o d s o f t i m e , s o t h i s a r t i c l e
m i g h t b e s h o r t e r t h a n w h a t y o u a r e
u s e d t o . M y o r i g i n a l p l a n w a s t o
j u m p r i g h t i n t o t h e P D F o u t p u t
p o r t i o n o f t h e p r o g r a m , b u t t h e r e
i s s o m u c h t o u n d e r s t a n d a b o u t
t h i s l i b r a r y , I d e c i d e d t o u s e t h i s
i n s t a l l m e n t a s a t u t o r i a l o n p y f P D F
a n d t h e n t a c k l e t h e P D F o u t p u t
n e x t t i m e . S o l e t s g e t s t a r t e d .
F P D F s t a n d s f o r F r e e P D F . A
V E R Y m i n i m a l e x a m p l e w o u l d b e a s
f o l l o w s :
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_font(Arial,B,16)
pdf.cell(40,10,Hello FromPython)
pdf.output(example1.pdf,F)
T h e f i r s t l i n e i m p o r t s t h e l i b r a r y
f i l e . T h e n e x t c r e a t e s a n i n s t a n c e o f
t h e F P D F o b j e c t . W e u s e t h e
d e f a u l t v a l u e s f o r t h i s e x a m p l e ,
w h i c h a r e :
P o r t r a i t
M e a s u r e U n i t = M i l l i m e t e r s .
F o r m a t = A 4
I f y o u n e e d t o u s e U S
s t a n d a r d s , y o u c o u l d d o i t t h i s w a y :
pdf=FPDF(P,in,Letter)
N o t i c e t h e p a r a m e t e r s a r e
F P D F ( o r i e n t a t i o n , u n i t s , f o r m a t ) :
P o s s i b l e v a l u e s f o r o r i e n t a t i o n a r e
P f o r P o r t r a i t a n d L f o r
L a n d s c a p e .
P o s s i b l e v a l u e s f o r u n i t s a r e : p t
( p o i i n t s ) , m m ( m i l l i m e t e r ) , c m
( c e n t i m e t e r ) , i n ( i n c h e s ) .
P o s s i b l e v a l u e s f o r f o r m a t a r e :
A 3 , A 4 , A 5 , L e t t e r , L e g a l o r a
t u p l e c o n t a i n i n g t h e w i d t h a n d
h e i g h t e x p r e s s e d i n t h e u n i t g i v e n
i n t h e u n i t p a r a m e t e r .
T h e t h i r d l i n e c r e a t e s a p a g e t o
e n t e r d a t a i n t o . N o t i c e a p a g e i s
n o t a u t o m a t i c a l l y c r e a t e d w h e n w e
c r e a t e t h e i n s t a n c e o f t h e o b j e c t .
T h e o r i g i n o f t h e p a g e i s t h e u p p e r -
l e f t c o r n e r , a n d t h e c u r r e n t
p o s i t i o n d e f a u l t s t o 1 c m f r o m t h e
m a r g i n . T h e m a r g i n c a n b e c h a n g e d
w i t h t h e S e t M a r g i n s f u n c t i o n .
B e f o r e y o u c a n a c t u a l l y p r i n t
a n y t e x t , y o u m u s t c a l l
p d f . s e t _ f o n t ( ) t o d e f i n e a f o n t . I n
t h e l i n e a b o v e , w e a r e d e f i n i n g
A r i a l B o l d 1 6 p o i n t . S t a n d a r d v a l i d
f o n t s a r e A r i a l , T i m e s , C o u r i e r ,
S y m b o l a n d Z a p f D i n g b a t s .
N o w w e c a n p r i n t a c e l l w i t h t h e
p d f . c e l l ( ) c a l l . A c e l l i s a r e c t a n g u l a r
a r e a , p o s s i b l y f r a m e d , w h i c h
c o n t a i n s s o m e t e x t . O u t p u t i s a t
t h e c u r r e n t p o s i t i o n w h i c h i s
s p e c i f i e d ( 4 0 , 1 0 c m ) i n t h e a b o v e
e x a m p l e . T h e p a r a m e t e r s a r e :
pdf.cell(Width, Height, text,border, line, align, fill,link)
W h e r e :
W i d t h i s l e n g t h o f c e l l . I f 0 , w i d t h
e x t e n d s t o t h e r i g h t m a r g i n .
H e i g h t i s t h e h e i g h t o f t h e c e l l .
T e x t i s t h e s t r i n g o f t e x t y o u w a n t
t o p r i n t .
B o r d e r i s e i t h e r 0 ( n o
b o r d e r ( d e f a u l t ) ) , 1 i s b o r d e r , o r a
s t r i n g o f a n y o r a l l o f t h e f o l l o w i n g
c h a r a c t e r s : " L " , " T " , " B " , " R "
L i n e i s w h e r e t h e c u r r e n t p o s i t i o n
s h o u l d g o a f t e r p r i n t i n g t h e t e x t .
V a l u e s a r e 0 ( t o t h e r i g h t ) , 1 ( t o t h e
b e g i n n i n g o f t h e n e x t l i n e , 2
( b e l o w ) . D e f a u l t i s 0 , a n d p u t t i n g 1
i s e q u i v a l e n t t o p u t t i n g 0 a n d
c a l l i n g l n ( ) i m m e d i a t l y a f t e r .
A l i g n a l l o w s t o c e n t e r o r a l i g n t h e
t e x t w i t h i n t h e c e l l . V a l u e s a r e " L "
( l e f t ) , " C " ( c e n t e r ) , " R " ( r i g h t ) .
F i l l s e t s t h e b a c k g r o u n d t o b e
p a i n t e d ( t r u e ) o r t r a n s p a r e n t
( f a l s e ) . D e f a u l t i s f a l s e .
L i n k i s a u r l o r i d e n t i f i e r r e t u r n e d
b y a d d l i n k ( ) .
F i n a l l y , t h e d o c u m e n t i s c l o s e d
a n d s e n t t o t h e f i l e w i t h O u t p u t .
T h e p a r a m e t e r s a r e
f p d f . o u t p u t ( n a m e , d e s t ) . I f f i l e i s
n o t s p e c i f i e d , t h e o u t p u t w i l l b e
s e n t t o t h e b r o w s e r . O p t i o n s f o r
d e s t i n a t i o n a r e " I " ( i n l i n e t o
b r o w s e r ( d e f a u l t ) ) , " F " ( l o c a l f i l e
g i v e n b y n a m e ) , " D " ( t o t h e
b r o w s e r a n d f o r c e a f i l e d o w n l o a d
w i t h t h e n a m e p a s s e d ) , a n d " S "
( r e t u r n t h e d o c u m e n t a s a s t r i n g ) .
8/10/2019 Full Circle Magazine - issue 91 EN
12/52f u l l c i r c l e m a g a z i n e # 9 1
1 2
c o n t e n t s ^
G r e g W a l t e r s i s o w n e r o f R a i n y D a y
S o l u t i o n s , L L C , a c o n s u l t i n g c o m p a n y
i n A u r o r a , C o l o r a d o , a n d h a s b e e n
p r o g r a m m i n g s i n c e 1 9 7 2 . H e e n j o y s
c o o k i n g , h i k i n g , m u s i c , a n d s p e n d i n g
t i m e w i t h h i s f a m i l y . H i s w e b s i t e i s
w w w . t h e d e s i g n a t e d g e e k . n e t .
H O W T O - P R O G R A M I N P Y T H O N
S i n c e w e w i l l b e s e n d i n g o u r
c r o s s s t i t c h i m a g e s t o t h e p d f f i l e ,
w e w i l l h a v e t o u n d e r s t a n d t h e
i m a g e f u n c t i o n .
T h e f u n c t i o n i s c a l l e d l i k e t h i s :
pdf.image(name,x=None,y=None,
w=0,h=0,type="",link="")
T h i s f u n c t i o n p u t s t h e i m a g e .
T h e s i z e i t w i l l t a k e o n t h e p a g e c a n
b e s p e c i f i e d i n d i f f e r e n t w a y s :
E x p l i c i t w i d t h a n d h e i g h t o r
O n e e x p l i c i t d i m e n s i o n
S u p p o r t e d f o r m a t s a r e J P E G ,
P N G , a n d G I F . I f y o u w i s h t o u s e G I F
f i l e s , y o u m u s t g e t t h e G D
e x t e n s i o n .
F o r J P E G s , a l l f l a v o r s a r e
a l l o w e d :
g r a y s c a l e
t r u e c o l o u r s ( 2 4 b i t s )
C M Y K ( 3 2 b i t s )
F o r P N G s , t h e f o l l o w i n g a r e
a l l o w e d :
g r a y s c a l e s o n a t m o s t 8 b i t s ( 2 5 6
l e v e l s )
i n d e x e d c o l o r s
t r u e c o l o r s ( 2 4 b i t s )
N o t e : i n t e r l a c i n g i s n o t a l l o w e d ,
a n d i f y o u a r e u s i n g a v e r s i o n o f
F P D F p r i o r t o 1 . 7 , A l p h a c h a n n e l i s
n o t s u p p o r t e d .
I s t o l e t h i s e x a m p l e ( s h o w n
r i g h t ) f r o m t h e p y F P D F t u t o r i a l .
Y o u h a v e b e e n a r o u n d l o n g
e n o u g h t h a t y o u s h o u l d b e a b l e t o
l o o k a t t h e p r o g r a m a n d
u n d e r s t a n d w h a t i s g o i n g o n . B u t i n
t h i s e x a m p l e t h e l i n e w e a r e
R E A L L Y i n t e r e s t e d i n i s t h e f o u r t h
l i n e :
this.image('img1.png',10,8,33)
I n t h i s i n s t a n c e , w e a r e c a l l i n g
t h e i m a g e f u n c t i o n w i t h t h e
f i l e n a m e , t h e x p o s i t i o n o f w h e r e
t h e p i c t u r e w i l l g o o n t h e p a g e , t h e
y p o s i t i o n , a n d t h e w i d t h o f t h e
p i c t u r e .
N o w t h a t y o u h a v e a g r o s s
g r a s p o f t h e l i b r a r y , w e w i l l s t a r t
o u r P D F c o d e n e x t t i m e .
U n t i l t h e n , h a v e a g o o d m o n t h .
S e e y o u s o o n .
from fpdf import FPDF
class PDF(FPDF):def header(this):
# Logo - replace with a small png of your ownthis.image('img1.png',10,8,33)# Arial bold 15this.set_font('Arial','B',15)# Move to the right
this.cell(80)# Titlethis.cell(30,10,'Title',1,0,'C')# Line breakthis.ln(20)
# Instantiation of inherited classpdf=PDF()pdf.alias_nb_pages()pdf.add_page()pdf.set_font('Times','',12)for i in range(1,41):
pdf.cell(0,10,'Printing line number '+str(i),0,1)pdf.output('example2.pdf','F')
http://www.thedesignatedgeek.net/8/10/2019 Full Circle Magazine - issue 91 EN
13/52f u l l c i r c l e m a g a z i n e # 9 1
1 3
c o n t e n t s ^
H
H
O
O
W
W
-
-
T
T
O
O
W r i t t e n b y E l m e r P e r r y
L
L
i
i
b
b
r
r
e
e
O
O
f
f
f
f
i
i
c
c
e
e
P
P
t
t
.
.
4
4
3
3
-
-
S
S
t
t
a
a
t
t
i
i
s
s
t
t
i
i
c
c
a
a
l
l
F
F
u
u
n
n
c
c
t
t
i
i
o
o
n
n
s
s
S
p r e a d s h e e t s a r e g o o d f o r
c o l l e c t i n g d a t a l i k e
t e m p e r a t u r e s , s t o c k p r i c e s , a n d
s p o r t s d a t a . H o w e v e r , t h e d a t a o n
i t s o w n d o e s u s l i t t l e g o o d . W e
n e e d w a y s t o a n a l y z e t h e d a t a .
L i b r e O f f i c e C a l c p r o v i d e s u s w i t h
b u i l t - i n f u n c t i o n s t o d o t h i s . I n t h i s
a r t i c l e , w e w i l l l o o k a t a f e w o f t h e
s i m p l e s t a t i s t i c a l f u n c t i o n s b u i l t
i n t o C a l c . T h i s i s n o t m e a n t a s a
t h o r o u g h e x a m i n a t i o n o f a l l t h e
f u n c t i o n s , b u t m o r e a n e x e r c i s e t o
g e t y o u c o m f o r t a b l e u s i n g
f u n c t i o n s .
IM P O R T I N G T H E
DA T A
F o r o u r d a t a , I h a v e c o l l e c t e d a
f e w m o n t h s w o r t h o f s t o c k p r i c e s
o n t h e m u t u a l f u n d F F A C X . Y o u c a n
f i n d t h e d a t a a t
h t t p : / / p a s t e b i n . c o m / A e L c y M 1 t .
T h e d a t a i s l a i d o u t a s c o m m a -
d e l i m i t e d p l a i n t e x t . C o p y t h e d a t a
f r o m P a s t e b i n . M a k e s u r e t h a t y o u
c o p y f r o m t h e R a w P a s t e D a t a
t e x t b o x . C r e a t e a n e w C a l c
d o c u m e n t . R i g h t - c l i c k o n c e l l A 1
a n d s e l e c t P a s t e . T h e T e x t I m p o r t
d i a l o g w i l l s h o w . U n d e r S e p a r a t o r
O p t i o n s , s e l e c t S e p a r a t e d b y a n d
c h e c k C o m m a . C l i c k O K . Y o u n o w
h a v e t w o c o l u m n s o f d a t a , t h e d a t e
a n d t h e p r i c e . S a v e t h e s h e e t .
CR E A T I N G A
NA M E D
CE L L
R A N G E
T h r o u g h o u t t h i s a r t i c l e w e w i l l
u s e t h e p r i c e s a s o u r d a t a r a n g e .
S i n c e w e w i l l u s e t h e r a n g e s e v e r a l
t i m e s , w e w i l l n a m e i t t o m a k e t h e
r e f e r e n c e s e a s i e r . S e l e c t a l l t h e
p r i c e s ( c e l l s B 2 : B 8 2 ) . T h e e a s i e s t
w a y t o s e l e c t a l l t h e c e l l s i s t o t y p e
t h e r a n g e B 2 : B 8 2 i n t o t h e c e l l
n a m e b o x o n t h e f o r m u l a t o o l b a r
a n d p r e s s E n t e r o n t h e k e y b o a r d .
I n s e r t > N a m e s > D e f i n e , a n d t h e
D e f i n e N a m e d i a l o g s h o w s . N a m e
t h e r a n g e P r i c e s . N o t i c e t h e
a b s o l u t e r e f e r e n c e i n t h e R a n g e
t e x t b o x ( $ S h e e t 1 . $ B $ 2 : $ B $ 8 2 ) .
N a m e s a p p l y t o a s p e c i f i c g r o u p o f
c e l l s , s o t h e r e f e r e n c e i s a b s o l u t e .
U n d e r t h e S c o p e , w e w i l l r e s t r i c t
t h e u s e o f t h i s n a m e t o j u s t S h e e t 1 .
C l i c k A d d t o c r e a t e t h e r a n g e
n a m e .
N o w , i n a n y f o r m u l a o r f u n c t i o n
w h e r e w e u s e t h e n a m e P r i c e s , i t
i s t h e s a m e a s t y p i n g t h e c e l l r a n g e
$ S h e e t 1 . $ B $ 2 : $ B $ 8 2 .
M A XA N D
M I N
T h e f i r s t t w o s t a t i s t i c a l
f u n c t i o n s w e w i l l l o o k a t a r e M A X
a n d M I N . B o t h f u n c t i o n s a c c e p t a
http://pastebin.com/AeLcyM1t8/10/2019 Full Circle Magazine - issue 91 EN
14/52
f u l l c i r c l e m a g a z i n e # 9 1 1 4
c o n t e n t s ^
H O W T O - L I B R E O F F I C E
l i s t o f v a l u e s o r r a n g e ( s ) . M A X
r e t u r n s t h e m a x i m u m ( o r l a r g e s t )
v a l u e i n t h e l i s t . M I N d o e s j u s t t h e
o p p o s i t e , r e t u r n i n g t h e m i n i m u m
( o r s m a l l e s t ) v a l u e i n t h e l i s t .
M o v e y o u r c u r s o r t o D 4 . T y p e i n
H i g h e s t . I n t h e c e l l E 4 , t y p e i n t h e
f o r m u l a
=MAX(Prices)
Y o u s h o u l d g e t t h e r e s u l t 1 4 . 1 6 .
I f y o u l o o k t h r o u g h t h e l i s t o f
p r i c e s , y o u w i l l d i s c o v e r t h i s i s t h e
l a r g e s t n u m b e r i n t h e l i s t .
I n D 5 p u t L o w e s t . T h e f o r m u l a
f o r E 5 i s
=MIN(Prices)
T h e r e s u l t i s 1 3 . 5 7 , t h e l o w e s t
n u m b e r i n t h e l i s t .
I t i s a l s o p o s s i b l e t o u s e t h e s e ,
o r a n y C a l c f u n c t i o n , a s a n o p e r a n d
i n a f o r m u l a . F o r e x a m p l e , i f w e
w a n t e d t o k n o w t h e d i f f e r e n c e
b e t w e e n t h e h i g h e s t a n d l o w e s t
p r i c e , w e c o u l d u s e t h e f o r m u l a
=MAX(Prices) MIN(Prices)
i n c e l l E 6 . I n t h e f o r m u l a , t h e
r e s u l t s o f t h e f u n c t i o n s a r e
c a l c u l a t e d f i r s t . M A X ( P r i c e s )
b e c o m e s 1 4 . 1 6 , a n d M I N ( P r i c e s )
b e c o m e s 1 3 . 5 7 . T h e n t h e r e s u l t o f
1 4 . 1 6 - 1 3 . 5 7 i s p l a c e d i n t h e c e l l E 6 .
P l a c e t h e t e x t D i f f e r e n c e i n t h e
c e l l D 6 a s a l a b e l .
A V E R A G E , M E D I A N ,
A N DM O D E
I n s t a t i s t i c s t h e r e a r e m a n y
w a y s t o d e t e r m i n e j u s t w h a t i s t h e
t y p i c a l v a l u e f o r a s e t o f n u m b e r s .
A m o n g t h e s e a r e t h e a r i t h m e t i c
a v e r a g e , t h e m e d i a n , a n d t h e
m o d e . T h e a r i t h m e t i c a v e r a g e ,
k n o w n t o m o s t p e o p l e a s s i m p l y
t h e a v e r a g e , i s t h e s u m o f a s e r i e s
o f n u m b e r s d i v i d e d b y t h e n u m b e r
o f i t e m s i n t h e s e r i e s . I n C a l c w e
u s e t h e A V E R A G E f u n c t i o n t o g e t
t h e a r i t h m e t i c a v e r a g e .
T h e m e d i a n r a n k s t h e n u m b e r s
f r o m t h e l o w e s t t o t h e h i g h e s t . I f
t h e n u m b e r o f i t e m s i n t h e s e r i e s i s
a n o d d n u m b e r , i t t a k e s t h e o n e i n
t h e m i d d l e . I f i t i s e v e n , t h e m e d i a n
i s t h e a r i t h m e t i c a v e r a g e o f t h e
t w o c e n t e r n u m b e r s . C a l c u s e s t h e
M E D I A N f u n c t i o n t o c a l c u l a t e t h e
m e d i a n f o r y o u .
M o d e i s t h e n u m b e r t h a t
r e p e a t s m o s t o f t e n . I f t h e r e i s a t i e ,
i t u s e s t h e s m a l l e s t n u m b e r . C a l c
u s e s t h e M O D E f u n c t i o n t o g e t t h e
m o d e f o r y o u .
W e c a n s e e t h e r e s u l t s o f t h e s e
t h r e e f u n c t i o n s b y p u t t i n g t h e
f o l l o w i n g f o r m u l a s i n t h e c e l l s E 7 ,
E 8 , a n d E 9 .
=AVERAGE(Prices)
=MEDIAN(Prices)
=MODE(Prices)
Y o u w i l l n o t i c e t h a t t h e r e s u l t s
a r e w i t h i n a f e w h u n d r e d t h s o f
e a c h o t h e r s . T h i s i s n o t t r u e i n a l l
c a s e s . N u m b e r s t h a t a r e m u c h
l a r g e r o r m u c h s m a l l e r t h a n a l l t h e
o t h e r s c a n a f f e c t t h e a v e r a g e . I n
t h o s e c a s e s , t h e m o d e o r m e d i a n
m i g h t b e t t e r s u i t y o u r n e e d s f o r a
t y p i c a l v a l u e .
T h e C a l c s t a t i s t i c a l f u n c t i o n s
h e l p u s t o a n a l y z e t h e d a t a i n a C a l c
s p r e a d s h e e t . W e t o u c h e d o n o n l y a
f e w o f t h e s t a t i s t i c a l f u n c t i o n s .
C a l c h a s o v e r 7 0 s t a t i s t i c a l
f u n c t i o n s . T h i s i s j u s t o n e o f m a n y
c a t e g o r i e s o f f u n c t i o n s a v a i l a b l e t o
u s i n C a l c . Y o u c a n g e t a l i s t o f a l l
t h e C a l c f u n c t i o n s i n t h e h e l p
d o c u m e n t a t i o n .
C O N D I T I O N A L F O R M A T T I N G
I n o u r d a t a s e t , t h e t o p a n d
b o t t o m a r e p r e t t y c l o s e t o g e t h e r ,
s o t h e a v e r a g e w i l l w o r k g o o d f o r
u s a s t h e t y p i c a l v a l u e f o r t h i s d a t a
s e t . W e c a n u s e c o n d i t i o n a l
f o r m a t t i n g t o m a r k e a c h o f t h e
p r i c e s a s e i t h e r a b o v e o r b e l o w t h e
a v e r a g e .
S t a r t b y s e l e c t i n g a l l t h e p r i c e s
i n t h e B c o l u m n ( B 2 : B 8 2 ) . S i n c e w e
n a m e d t h e r a n g e B 2 : B 8 2 , a q u i c k
w a y t o s e l e c t a l l t h e p r i c e s i s b y
u s i n g t h e d r o p d o w n a r r o w f o r t h e
c e l l n a m e b o x o n t h e f o r m u l a
t o o l b a r a n d s e l e c t i n g t h e n a m e
P r i c e s ( S h e e t 1 ) .
F o r m a t > C o n d i t i o n a l
F o r m a t t i n g > C o n d i t i o n w i l l b r i n g
u p t h e C o n d i t i o n a l F o r m a t t i n g
d i a l o g . S e l e c t C e l l v a l u e i s f r o m
t h e l e f t d r o p - d o w n l i s t . F r o m t h e
d r o p - d o w n l i s t i n t h e c e n t e r , s e l e c t
l e s s t h a n . E n t e r $ E $ 7 i n t h e t e x t
b o x t o t h e r i g h t . I f y o u w a n t t o u s e
t h e m e d i a n o r m o d e f o r t h e
8/10/2019 Full Circle Magazine - issue 91 EN
15/52
f u l l c i r c l e m a g a z i n e # 9 1 1 5
c o n t e n t s ^
E l m e r P e r r y ' s h i s t o r y o f w o r k i n g , a n d
p r o g r a m m i n g , c o m p u t e r s i n v o l v e s a n
A p p l e ] [ E , a d d i n g s o m e A m i g a , a
g e n e r o u s h e l p i n g o f D O S a n d
W i n d o w s , a d a s h o f U n i x , a n d b l e n d
w e l l w i t h L i n u x a n d U b u n t u .
H e b l o g s a t
h t t p : / / e e p e r r y . w o r d p r e s s . c o m
E X T R A ! E X T R A !
R E A D A L L A B O U T I T !
O u r g l o r i o u s n e w s r e p o r t e r s
a r e n o w p o s t i n g r e g u l a r n e w s
u p d a t e s t o t h e m a i n F u l l C i r c l e
s i t e .
C l i c k t h e N E W S l i n k , i n t h e s i t e
m e n u a t t h e t o p o f t h e p a g e ,
a n d y o u ' l l s e e t h e n e w s
h e a d l i n e s .
A l t e r n a t i v e l y , l o o k o n t h e r i g h t
s i d e o f a n y p a g e o n t h e s i t e ,
a n d y o u ' l l s e e t h e f i v e l a t e s t
n e w s p o s t s .
F e e l f r e e t o d i s c u s s t h e n e w s
i t e m s . I t ' s m a y b e s o m e t h i n g
t h a t c a n s p i l l b a c k f r o m t h e s i t e
i n t o t h e m a g a z i n e . E n j o y !
H O W T O - L I B R E O F F I C E
c o m p a r i s o n , y o u c a n u s e $ E $ 8 o r
$ E $ 9 . W e a r e u s i n g a n a b s o l u t e
r e f e r e n c e h e r e b e c a u s e w e w a n t t o
r e f e r e n c e t h e s a m e c e l l r e g a r d l e s s
o f w h a t r o w w e a r e f o r m a t t i n g .
F o r t h e A p p l y S t y l e , s e l e c t N e w
S t y l e f r o m t h e d r o p - d o w n l i s t . T h e
C e l l S t y l e d i a l o g w i l l o p e n . O n t h e
O r g a n i z e r t a b , n a m e t h e s t y l e
B e l o w A v e r a g e . S w i t c h t o t h e
B a c k g r o u n d t a b a n d s e l e c t t h e R e d
c o l o r s w a t c h . C l i c k O K t o c l o s e t h e
d i a l o g a n d s a v e t h e n e w s t y l e . Y o u
w i l l s e e B e l o w A v e r a g e i s n o w
s e l e c t e d a s t h e A p p l y S t y l e .
C l i c k A d d t o a d d a s e c o n d
c o n d i t i o n . T h i s t i m e s e l e c t g r e a t e r
t h a n i n s t e a d o f l e s s t h a n . U s e
t h e s a m e a b s o l u t e r e f e r e n c e , $ E $ 7 ,
$ E $ 8 , o r $ E $ 9 , a s y o u u s e d i n t h e
l e s s t h a n c o n d i t i o n . O n c e a g a i n
s e l e c t N e w S t y l e f o r t h e A p p l y
S t y l e . G i v e t h e n e w s t y l e t h e n a m e
A b o v e A v e r a g e , a n d m a k e t h e
b a c k g r o u n d g r e e n i n s t e a d o f r e d .
O K t o s a v e t h e n e w s t y l e .
O K i n t h e C o n d i t i o n a l
F o r m a t t i n g d i a l o g w i l l s a v e t h e
s e t t i n g s . P r i c e s t h a t a r e o v e r t h e
a v e r a g e w i l l h i g h l i g h t i n g r e e n , a n d
t h e p r i c e s b e l o w t h e a v e r a g e w i l l
h i g h l i g h t i n r e d .
N O T E : Y o u c a n c r e a t e y o u r s t y l e
f o r c o n d i t i o n a l f o r m a t t i n g b e f o r e
c r e a t i n g t h e c o n d i t i o n . I n s u c h a
c a s e , y o u w o u l d j u s t s e l e c t t h e
s t y l e t o u s e .
I h o p e t h i s a r t i c l e h a s h e l p e d
y o u t o u n d e r s t a n d t h e u s e o f t h e
s t a t i s t i c a l f u n c t i o n s d e m o n s t r a t e d
a n d f u n c t i o n s i n g e n e r a l . W e s a w
h o w t o u s e n a m e d r a n g e s t o
i d e n t i f y c e l l r a n g e s b e i n g u s e d
r e p e a t e d l y . W e u s e d f u n c t i o n s b y
t h e m s e l v e s a n d a s o p e r a n d s i n a
f o r m u l a . U s i n g c o n d i t i o n a l
f o r m a t t i n g , w e h i g h l i g h t e d c e r t a i n
c e l l s t o s h o w v i s u a l l y t h e s t a t u s o f
t h e c e l l ' s v a l u e . T h i s e l i m i n a t e s t h e
n e e d t o s c r o l l b a c k u p t h e s h e e t t o
c h e c k t h e a v e r a g e v a l u e . U n t i l n e x t
m o n t h , l o o k u p s o m e f u n c t i o n s i n
t h e h e l p a n d p u t t h e m t o w o r k f o r
y o u . A l s o , p l a y w i t h s o m e o f t h e
f e a t u r e s o f t h e c o n d i t i o n a l
f o r m a t t i n g a n d s e e w h a t o t h e r
v i s u a l s y o u c a n c r e a t e .
N e x t t i m e , I w i l l s h o w y o u h o w
t o v a l i d a t e c e l l v a l u e s .
http://eeperry.wordpress.com/8/10/2019 Full Circle Magazine - issue 91 EN
16/52
f u l l c i r c l e m a g a z i n e # 9 1 1 6
c o n t e n t s ^
H
H
O
O
W
W
-
-
T
T
O
O
W r i t t e n b y D a v i d M a w d s l e y
M
M
u
u
l
l
t
t
i
i
p
p
l
l
e
e
P
P
a
a
s
s
s
s
w
w
o
o
r
r
d
d
s
s
W
W
i
i
t
t
h
h
A
A
S
S
c
c
r
r
i
i
p
p
t
t
I
u s e a T e r m i n a l B a s h s c r i p t t o
i n t e r a c t w i t h m y e n c r y p t e d
p a s s w o r d f i l e s a s n e e d e d . M y s c r i p t
p r o c e d u r e i s s i m p l e a n d q u i c k . A
p e r s o n n e w t o B a s h s c r i p t s s h o u l d
s e e t h e m a s s m a l l , s e l f - c o n t a i n e d ,
u t i l i t y p r o g r a m s w h i c h u s e t h e f u l l
p o w e r o f L i n u x a n d m a k e
r e p e t i t i v e , p e r h a p s t e d i o u s ,
d i f f i c u l t t a s k s m u c h e a s i e r t o
a c c o m p l i s h .
H O W I S T O R E M Y
P A S S W O R D S
M y p a s s w o r d s a l l r e s i d e i n
e n c r y p t e d t e x t f i l e s o n m y
c o m p u t e r , a n d a l s o a s n o n - l i n k e d ,
e n c r y p t e d t e x t f i l e s o n m y
w e b s i t e ' s h o s t i n g s e r v e r . H e r e s m y
r a t i o n a l e : I a m a b l e t o e a s i l y
d e c r y p t a n y f i l e i n t o c l e a r t e x t
w h e n n e e d e d o n m y r e g u l a r
c o m p u t e r w h e r e b y I c a n . . .
U s e i t o n a d a y - t o - d a y b a s i s , a n d
S a v e i t t o a U S B k e y i n a s a f e
d e p o s i t b o x u s i n g c l e a r - t e x t t h a t
g e t s r o t a t e d e v e r y 1 5 d a y s m y
r e g u l a r b u s i n e s s p r a c t i c e .
( E n c r y p t e d f i l e s w o u l d b e q u i t e
s a f e t o s t o r e e v e n o n a c l o u d
s t o r a g e s e r v i c e . )
H O W I M A N A G E M Y
E N C R Y P T I O N / D E C R Y P T I O N O F
M Y P A S S W O R D L I S T S
F i r s t , m y s c r i p t r u n s a q u i c k
c h e c k t o s e e i f t h e c a p s l o c k k e y i s
e n a b l e d o n m y k e y b o a r d s o t h a t I
a m c e r t a i n t h a t m y m a s t e r
p a s s w o r d i s c o r r e c t l y t y p e d t h o u g h
i t d o e s n ' t d i s p l a y a s I t y p e .
N e x t , c o n t r o l g o e s t h r o u g h a
d e c r y p t i o n r o u t i n e r e s u l t i n g i n
o p e n i n g t h e c l e a r - t e x t f i l e i n m y
c h o i c e L i n u x t e x t e d i t o r g e d i t
w h e r e I c a n r e a d t h e c l e a r - t e x t f i l e
o f p a s s w o r d s w i t h a c c o m p a n y i n g
d e t a i l s .
I t h e n c l o s e t h a t c l e a r - t e x t f i l e
a f t e r s e e i n g w h a t I n e e d . T h e u t i l i t y
t h e n c o n t i n u e s a n d p r o c e s s e s t h e
e n c r y p t i o n t h e r e b y c o n v e r t i n g
t h e c l e a r - t e x t f i l e b a c k t o i t s
e n c r y p t e d f o r m a n d t h e n i t s a v e s
t h e r e s u l t .
L a s t l y , m y s c r i p t l i s t s t h e f o l d e r
o f e n c r y p t e d f i l e s ( I h a v e m a n y i n
m y a c t u a l b u s i n e s s ) , s h o w i n g t h e
f i l e a n d i t s e x t e n s i o n a s e n c r y p t e d
t o v e r i f y t h a t t h e e n c r y p t i o n
a c t u a l l y w a s s u c c e s s f u l w i t h t h e
c l e a r - t e x t f i l e n o w g o n e .
E n c r y p t e d f i l e s g e t t h e
e x t e n s i o n . c p t t o i n d i c a t e
e n c r y p t e d s t a t u s . A l l a c t i v i t y
r e g a r d i n g e n c r y p t i o n / d e c r y p t i o n o f
p a s s w o r d f i l e s i s t h e n l o g g e d i n t o
t h e f i l e ' p w l o g . ' f o r r e c o r d i n g m y
p a s s w o r d f i l e a c c e s s a c t i v i t y . N o t e
t h a t r e m o v i n g t h e ' . c p t ' e x t e n s i o n
d o e s n ' t u n d o t h e e n c r y p t i o n .
M y s c r i p t a l s o a l l o w s m e t o
n a v i g a t e t o a n d e n c r y p t o r d e c r y p t
a n y c h o s e n f i l e o n m y c o m p u t e r .
T h e e n c r y p t i o n u t i l i t y I u s e i s
c c r y p t , i t s a v a i l a b l e f r o m m o s t
s t a n d a r d r e p o s i t o r i e s v i a :
sudo apt-get install ccrypt
N o t e s o n c c r y p t c a n b e f o u n d a t :
h t t p : / / c c r y p t . s o u r c e f o r g e . n e t / # d e s
c r i p t i o n w h i c h d e s c r i b e f u l l y h o w t o
u s e i t .
I c h o s e c c r y p t b a s e d o f i t s e a s e
o f u s e a n d t h e o v e r a l l q u i c k n e s s
a n d s i m p l i c i t y o f i t s m e t h o d . ( I
f i r m l y b e l i e v e t h a t m o s t u s e r s f a i l
t o u s e e n c r y p t i o n b e c a u s e o f t h i s . )
I ' m s u r e y o u ' d t e l l m e a b o u t t h e
a d v a n t a g e s o f p g p o r g p g
p u b l i c / p r i v a t e k e y s , b u t I n e e d e d
s o m e t h i n g t h a t m a k e s e n c r y p t i n g
a n d d e c r y p t i n g f i l e s a s d e a d - s i m p l e
a s p o s s i b l e , a n d w i t h a r e a s o n a b l e
l e v e l o f s e c u r i t y . c c r y p t u s e s a
s i m p l e r s y m m e t r i c k e y i n s t e a d .
I i m a g i n e t h a t m a l i c i o u s h a c k e r s
t r y i n g t o g e t p e r s o n a l i n f o r m a t i o n
a b o u t m e o r m y f i l e s a l w a y s g o f o r
m y l o w h a n g i n g f r u i t o n m y
d o c u m e n t t r e e f i r s t , a n d t h e n
m a y b e e v e n n e v e r b o t h e r w i t h t h e
d e l i c i o u s h i g h e r f r u i t ( w h e r e m y
e n c r y p t e d f i l e s a r e ) .
Y o u m i g h t a p p r e c i a t e w h a t a n
e n c r y p t e d t e x t f i l e u s i n g c c r y p t
a c t u a l l y l o o k s l i k e . B r i n g i t u p w i t h
e x t e n s i o n . c p t i n y o u r t e x t e d i t o r ;
y o u w i l l q u i c k l y r e a l i z e t h a t
d e c r y p t i n g t h a t f i l e u s i n g t r i a l a n d
e r r o r , a n t i - e n c r y p t i o n s o f t w a r e j u s t
i s n ' t a s h o r t - t i m e p o s s i b i l i t y f o r
a n y o n e t r y i n g t o b r e a k y o u r
e n c r y p t i o n . H o w e v e r , I a l w a y s
a s s u m e t h a t N O e n c r y p t i o n w i l l
http://ccrypt.sourceforge.net/#description8/10/2019 Full Circle Magazine - issue 91 EN
17/52
f u l l c i r c l e m a g a z i n e # 9 1 1 7
c o n t e n t s ^
H O W T O - M U L T I P L E P A S S W O R D S W I T H A S C R I P T
r e s i s t p e r s i s t e n t b r e a k a g e f o r e v e r .
T h u s , m y m e t h o d i s p r a c t i c a l
w i t h o u t b e i n g f o o l - p r o o f .
R e m e m b e r t h e l o w h a n g i n g f r u i t
p r i n c i p l e .
M a k e y o u r c c r y p t d e f a u l t
p a s s w o r d d i f f i c u l t t o g u e s s a n d
y o u ' r e p r o b a b l y p r o t e c t i n g
y o u r s e l f v e r y w e l l . ( 1 1 + p a s s w o r d
c h a r a c t e r s o r m o r e w i t h n o n -
d i c t i o n a r y w o r d s , u p p e r / l o w e r c a s e
l e t t e r s , n u m b e r s a n d p u n c t u a t i o n )
E x a m p l e :
mYbroTher#owEmE400$
T H E S C R I P T
T h e s c r i p t r e s i d e s i n m y h o m e
d i r e c t o r y w i t h t h e t e r m i n a l
c o m m a n d o f . / d i r p w t o s t a r t i t . M y
' p w ' f o l d e r w i t h p a s s w o r d f i l e s
r e s i d e s o n m y D e s k t o p f o l d e r ' p w . '
I n t h a t f o l d e r a r e m y e n c r y p t e d
t e x t f i l e s : ' c u s t o m e r s . c p t ' a n d
' p e r s o n a l . c p t ' t h a t c o n t a i n
r e l e v a n t w e b p a g e c o n t r o l p a n e l
l o g i n d e t a i l s , e - m a i l s e c u r i t y
q u e s t i o n s , e t c . A l l a c t i v i t y
r e g a r d i n g e n c r y p t i o n / d e c r y p t i o n o f
f i l e s i s a l s o l o g g e d i n t o t h e f i l e
' p w l o g . ' f o r r e c o r d i n g p a s s w o r d -
f i l e a c c e s s e s .
T h e s c r i p t p r e s e n t s a d i r e c t o r y
o f 4 c h o i c e s a n d a n e x i t o p t i o n .
E n t e r i n g 1 , 2 , 3 , 4 o r 0 s e n d s s c r i p t
c o n t r o l t o t h e r e l e v a n t s e l e c t i o n . I
p a r t i c u l a r l y l i k e t o u s e c o l o r s i n m y
s c r i p t s s o t h a t t h e p r e s e n t e d d i a l o g
a n d r e s p o n s e s s t a n d o u t . W h i l e I
n o r m a l l y h e a v i l y c o m m e n t m y
s c r i p t s , I s u s p e c t t h a t m o s t r e a d e r s
w i l l h a v e l i t t l e t r o u b l e f o l l o w i n g
t h e f l o w . A r u n o f t h e s c r i p t u s u a l l y
c l e a r s u p t h e r e m a i n i n g u s e r / c o d e r
u n c e r t a i n t i e s .
B e l o w I ' v e i n c l u d e d a
m o d i f i c a t i o n o f m y B a s h s c r i p t s o
t h a t y o u c a n e a s i l y c o n v e r t i t t o
y o u r c o m p u t i n g e n v i r o n m e n t .
M a k e i t e x e c u t a b l e v i a o w n e r f o r
y o u r c o m p u t i n g n e e d s w i t h :
chmod u+x
N o t e t h a t I a l w a y s u s e i n d e n t s
e v e n i n B a s h s c r i p t s t o i m p r o v e
r e a d a b i l i t y a n d t h a t l o n g l i n e s
s h o w n h e r e m a y d i s p l a y a s
w r a p p e d a r o u n d .
S C R I P T
h t t p : / / g o o . g l / o c k J E j
http://goo.gl/ockJEj8/10/2019 Full Circle Magazine - issue 91 EN
18/52
f u l l c i r c l e m a g a z i n e # 9 1 1 8
c o n t e n t s ^
http://www.apress.com/8/10/2019 Full Circle Magazine - issue 91 EN
19/52
f u l l c i r c l e m a g a z i n e # 9 1 1 9
c o n t e n t s ^
H
H
O
O
W
W
-
-
T
T
O
O
W r i t t e n b y M a r k C r u t c h
I
I
n
n
k
k
s
s
c
c
a
a
p
p
e
e
-
-
P
P
a
a
r
r
t
t
3
3
1
1
A
f t e r t h e p r e v i o u s i n s t a l m e n t
o f t h i s s e r i e s h a d g o n e t o
p r e s s , a n i n t e r e s t i n g p r o b l e m w a s
r a i s e d a t w w w . i n k s c a p e f o r u m . c o m
t h a t d i r e c t l y r e l a t e s t o t h e u s e o f
u n s e t f i l l s a n d c l o n e s . S o , b e f o r e
m o v i n g o n t o t h e n e x t t o p i c , I t h i n k
i t ' s w o r t h d r a w i n g a t t e n t i o n t o t h i s
i s s u e , a n d h o w y o u c a n d e a l w i t h i t .
L e t u s s u p p o s e t h a t y o u c r e a t e a
p a r e n t o b j e c t a n d u n s e t b o t h i t s f i l l
a n d s t r o k e . A s y o u k n o w f r o m t h e
p r e v i o u s i n s t a l m e n t , y o u c a n n o w
s e t t h e f i l l a n d s t r o k e o n a n y c l o n e s
i n d e p e n d e n t l y . I d e m o n s t r a t e d
u s i n g c o l o r s , p a t t e r n s a n d
g r a d i e n t s f o r b o t h t h e f i l l a n d t h e
s t r o k e , b u t i t s e e m s t h a t o n e t h i n g
I m i s s e d w a s s e t t i n g a n o n - o p a q u e
c o l o r i . e . o n e w i t h t h e a l p h a ( A )
c h a n n e l i n t h e F i l l a n d S t r o k e
d i a l o g s e t t o s o m e t h i n g o t h e r t h a n
2 5 5 . I t t u r n s o u t t h a t d o i n g t h i s
w i t h t h e s t r o k e w o r k s p e r f e c t l y
w e l l , b u t t h e o p a c i t y o f t h e f i l l
c o l o r i s c o m p l e t e l y i g n o r e d . I n t h i s
e x a m p l e y o u c a n s e e w h a t I m e a n .
B o t h t h e f i l l a n d s t r o k e o p a c i t i e s
o n t h e c l o n e h a v e b e e n s e t t o 1 7 7 ,
b u t o n l y t h e s t r o k e a c t u a l l y
a p p e a r s t r a n s p a r e n t ( t h e b o t t o m
d i a m o n d s h o w s h o w t h e c l o n e
s h o u l d a p p e a r ) .
I t t u r n s o u t t h a t t h e r e ' s a b i t o f
a b u g i n I n k s c a p e ( i s s u e 1 1 8 3 4 0 0 i n
L a u n c h p a d ) . W h e n y o u u n s e t a f i l l ,
t h e p r o g r a m f a i l s t o r e m o v e t h e
f i l l - o p a c i t y a t t r i b u t e i n t h e S V G .
A n y c l o n e s m a d e f r o m t h a t o b j e c t
a r e t h e n s t u c k w i t h t h e o p a c i t y
t h a t t h e p a r e n t f i l l h a d b e f o r e i t
w a s u n s e t . A s a d e m o n s t r a t i o n o f
t h i s , I c r e a t e d a c l o n e a n d f i l l e d i t
w i t h a n o p a q u e g r e e n c o l o r . T h e n I
s e t t h e a l p h a c h a n n e l f o r t h e g r e e n
f i l l t o 1 7 7 . N e x t I u n s e t t h e f i l l
a l t o g e t h e r . F i n a l l y I c l o n e d t h e
o b j e c t a n d g a v e t h e c l o n e a f u l l y
o p a q u e p u r p l e c o l o r .
W h a t I w o u l d e x p e c t t o s e e h e r e
i s t h a t u n s e t t i n g t h e f i l l s h o u l d a l s o
u n s e t t h e o p a c i t y , m a k i n g i t d e f a u l t
t o t h e S V G s t a n d a r d o f f u l l y
o p a q u e . C l e a r l y t h e p a r e n t a t t h e
b o t t o m i s s t i l l t r a n s l u c e n t , a s t h e
b l u e b a r b e h i n d i t s h o w s . E v e n
w i t h o u t t h e b l u e b a r , i t a p p e a r s a s
a w a s h e d o u t g r a y c o l o r , r a t h e r
t h a n t h e d e e p b l a c k w e w o u l d
u s u a l l y e x p e c t o f a n u n s e t f i l l .
F u r t h e r m o r e , t h e c l o n e i s n o w
f o r c e d t o a d o p t t h e t r a n s p a r e n c y
o f t h e p a r e n t , s o t h e r e ' s n o w a y
t h a t a n y c l o n e s o f t h i s o b j e c t c o u l d
b e c o m p l e t e l y o p a q u e , r e g a r d l e s s
o f t h e i r o w n a l p h a v a l u e .
F o r m o s t p e o p l e t h i s b u g m a y
n e v e r b e a p r o b l e m , b u t i f y o u d o
w a n t t o s e t t h e o p a c i t y o f y o u r
c l o n e s t o b e a n y t h i n g o t h e r t h a n
1 0 0 % , t h e r e i s a f i x f o r t h e i s s u e .
I t w i l l m e a n u s i n g I n k s c a p e ' s X M L
E d i t o r d i a l o g , w h i c h i s a t o p i c I h a d
h o p e d t o a v o i d u n t i l l a t e r i n t h i s
s e r i e s , b u t a s m y h a n d h a s b e e n
f o r c e d , I ' v e d e c i d e d t o i n t r o d u c e i t
n o w . B u t t o u n d e r s t a n d t h e X M L
e d i t o r , y o u f i r s t n e e d a l i t t l e i n s i g h t
i n t o t h e s t r u c t u r e o f a n I n k s c a p e
f i l e .
T h e S V G f o r m a t t h a t I n k s c a p e
n a t i v e l y u s e s i s a n X M L f i l e ,
m e a n i n g t h a t i t f o l l o w s t h e r u l e s ,
c o n v e n t i o n s a n d s t r u c t u r e f o r s u c h
f i l e s a s d e f i n e d b y t h e W 3 C t h e
s t a n d a r d s b o d y o f t h e w e b . X M L i s
a d u b i o u s a b b r e v i a t i o n o f
e X t e n s i b l e M a r k u p L a n g u a g e . I n
s h o r t , i t m e a n s t h a t e v e r y I n k s c a p e
f i l e i s m a d e u p o f a h i e r a r c h i c a l
c o l l e c t i o n o f t a g s ( a l s o c a l l e d
e l e m e n t s o r n o d e s ) , e a c h o f
w h i c h c a n c a r r y a t t r i b u t e s t o
f u r t h e r d e f i n e i t . F o r e x a m p l e a
s i m p l e r e c t a n g l e m i g h t a p p e a r i n
a n S V G d o c u m e n t a s a r e c t t a g ,
w i t h a t t r i b u t e s f o r d e f i n i n g i t s s i z e
a n d l o c a t i o n :
8/10/2019 Full Circle Magazine - issue 91 EN
20/52
f u l l c i r c l e m a g a z i n e # 9 1
2 0
c o n t e n t s ^
H O W T O - I N K S C A P E
W h a t a b o u t t h e h i e r a r c h i c a l
a s p e c t I m e n t i o n e d ? H o w a b o u t
t h i s m o r e c o m p l e x e x a m p l e :
A s y o u c a n s e e , w e ' v e g o t t w o
r e c t a n g l e s n o w , a n d t h e y ' v e g a i n e d
a c o u p l e m o r e a t t r i b u t e s t o s e t t h e
f i l l c o l o r , a n d t o g i v e e a c h o f t h e m
a n I D s o w e c a n i d e n t i f y t h e m
i n d i v i d u a l l y . T h o s e a r e b o t h i n s i d e
a s e t o f < g > . . . < / g > t a g s , w h i c h
d e f i n e s a g r o u p i n S V G t e r m s . T h e
g r o u p , i n t u r n , i s i n s i d e t h e
o u t e r m o s t p a i r o f < s v g > . . . < / s v g >
t a g s . Y o u c a n t h i n k o f t h e s e a s a
c l u e t o a n a p p l i c a t i o n t h a t t h e
c o n t e n t i n s i d e t h e m s h o u l d b e
r e n d e r e d a s S V G , r a t h e r t h a n a s
H T M L o r p l a i n t e x t .
B e c a u s e t h e r 1 r e c t a n g l e i s
f i r s t i n t h e f i l e , i t ' s d r a w n f i r s t o n
t h e c a n v a s . T h e r 2 r e c t a n g l e i s
d r a w n a f t e r w a r d s , s o i t o v e r l a p s
t h e f i r s t o n e . T h e r e s u l t i s a s i m p l e
S V G i m a g e w i t h a b l u e r e c t a n g l e o n
t o p o f a r e d o n e , b o t h i n s i d e a
g r o u p . T r y i t f o r y o u r s e l f : c o p y t h e
c o d e a b o v e i n t o a t e x t e d i t o r a n d
s a v e i t w i t h a n s v g e x t e n s i o n ,
t h e n l o a d t h e f i l e i n t o a w e b
b r o w s e r o r I n k s c a p e .
W h a t i f w e w a n t e d a n o t h e r
r e c t a n g l e , o u t s i d e t h e g r o u p ? W e
c o u l d j u s t i n c l u d e a n a d d i t