Gunnar Heinsohn Biographie

Gunnar Heinsohn Biographie

Search

Q-mag.org
rss
Wrecked Metropolises of the 1st Millennium: a comparison
Gunnar Heinsohn
Gunnar Heinsohn (born 1943 in Gdynia/Poland, emeritus professor at Universität Bremen (University of Bremen/Germany) has studied sociology, history, psychology, economics and religious studies at the Freie Universität Berlin. He has earned a university diploma in sociology in 1971, as well as doctorates summa cum laude in both sociology (1973), and in economics (1982).

From 1976 to 1978 he has lived in Israel. His publication list exceeds 750 titles including more than thirty monographies. Since 1984 he has been a tenured professor at Universität Bremen where he has served, from 1993-2009, as speaker of Europe’s first university institute devoted to comparative genocide research, the Raphael-Lemkin Institut für Xenophobie und Genozidforschung [Institute for xenophobia and genocide research]. He has published in the major newspapers and magazines of the German language area as well as in the Wall Street Journal, the International Herald Tribune, Newsweek, Le Monde, the Financial Times, the Weekly Standard, NRC-Handelsblad (Amsterdam). In recent years, he has been involved in fierce controversies over his proposals of limiting to five years the reception of welfare benefits in Germany.

His research focuses on the HISTORY AND THEORY OF CIVILIZATION with special emphasis on (i) Population/Childhood/Family, (ii) Economy, (iii) Religion, (iv) Genocide/War, and (v) Chronology.

(i) Major subjects of Population/Childhood/Family were dealt with in (1) Vorschulerziehung in der bürgerlichen Gesellschaft [1991; ‘Pre-school Education in Modern Times’] (Frankfurt am Main: S. Fischer 1974). (2) Theorie des Kindergartens und der Spielpädagogik [‘Theory of the Kindergarten and Play-Pedagogy’] (Frankfurt am Main: Suhrkamp, 1975; co-author: B.M.C. Knieper; translations into Danish and Swedish). (3) Theorie des Familienrechts: Geschlechtsrollenaufhebung, Kindesvernachlässigung, Geburtenrückgang [1974; ‘Theory of Family Law: Diminishing Sex Role differences, Child Neglect and Falling Birth Rates’] (Frankfurt am Main: Suhrkamp, 19762, co-author: R. Knieper). (4) The Bancruptcy of the Economics of Population: Why Economists have Failed to Develop an Economic Theory of the Production of Human Beings, (Universität Bremen: Forschungsgruppe ‘Postkeynesianische Ökonomie’, als Diskussionsbeiträge zur Politischen Ökonomie, Nr. 21, 1979, co-author: O. Steiger); (5) Menschenproduktion: Allgemeine Bevölkerungstheorie der Neuzeit [The ‘Production of Human Beings: General Theory of Population in Modern Times’] (Frankfurt am Main: Suhrkamp, 1979; 1986; co-authors: R. Knieper and O. Steiger).

(ii) In the field of Economics appeared (6) Das Kibbuz-Modell -Bestandsaufnahme einer alternativen Wirtschafts- und Lebensform nach sieben Jahrzehnten [ ‘The Kibbutz as a Model: An Alternative Economy and Life Style after Seven Decades’] (Frankfurt am Main: Suhrkamp, 1982). (7) Privateigentum, Patriarchat, Geldwirtschaft. Eine sozialtheoretische Rekonstruktion zur Antike [‘Private Ownership, Patriarchy and the Monetary Economy: A Socio-theoretical Reconstruction of Occidental Antiquity’] (Frankfurt am Main: Suhrkamp 1984). (8) Eigentum, Zins und Geld: Ungelöste Rätsel der Wirtschaftswissenschaft [‘Property, Interest and Money: Unsolved Enigmas of Economics’] (Reinbek: Rowohlt, 1996; co-author: O. Steiger; corr. 5th ed Marburg: Metropolis 2009). (9) Kontroversen der Geldentstehung: Streit um die Anfänge des Geldes [‘Controversies on the Origin of Money’] (Universität Bremen: Institut für Konjunktur und Strukturforschung, als IKSF Discussion Paper, Nr. 11, 1997, co-author: O. Steiger); (10) Das Eurosystem und die Verletzung der Zentralbankregeln: Was man darüber wissen muß und was dazu gerne verschwiegen wird [‘The Euro-System and the Violation of the Art of Central Banking’] (St. Gallen: Managementzentrum [MZSG], 2000, co-author: O. Steiger). (11) The Property Theory of Interest and Money (London&New York: Routledge [“What Is Money?”]; co-author: O. Steiger). (12) Geld und Zins: Gemeinverständliche Grundlegung der Wirtschaftstheorie [“Money and Interest: A Popular Foundation of Economics”] (St. Gallen: Managementzentrum [MZSG], 2001). (13) Eigentumstheorie des Wirtschaftens versus Wirtschaftstheorie ohne Eigentum [‘Property Theory of the Economy versus Economic Theory without Property’ (Marburg: Metropolis, 2002, co-author: O. Steiger). (14) Eigentumsökonomik [“Property Economics”] (Marburg: Metropolis, 2006, 2008, co-author: O. Steiger). (15) A Property Economics Explanation of the 2008 Global Financial Crisis http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1331712 (Social Science Research Network [SSRN] 2008). (16) Property Theory of the Market (Social Science Research Network [SSRN] 2009). In the Encyclopedia of Economic Works covering the most inspiring 650 works in economics of altogether 460 authors worldwide from antiquity to the 20th century, the author is the only living scholar of the German language area represented with four different studies (followed by Reinhard Selten [*1930; Nobel Price 1994] with three texts). See D. Herz and V. Weinberger, eds., Lexikon ökonomischer Werke: 650 wegweisende Schriften von der Antike bis ins 20. Jahrhundert, Düsseldorf: Wirtschaft und Finanzen, 2006, pp. 186-190. The money explanation of Eigentum, Zins und Geld [(8) above] is, since 2000, represented in the Geldmuseum der Deutschen Bundesbank (Money-Museum of the German Bundesbank, Frankfurt am Main) in juxtaposition with the money views of Aristotle, Adam Smith, Bernard Laum, and John Maynard Keynes.

(iii) Matters of Religion became the subject of (17) Theorie des Tötungsverbotes [‘Theory of the Prohibition of Killing’] (Pamphlet 7 of L`invitation au voyage zu Alfred Sohn-Rethel (Festschrift zum 80. Geburtstag), Bremen: Wassmann, 1979). (18) Was ist Antisemitismus? – Der Ursprung von Monotheismus und Judenhaß – Warum Antizionismus? [‘What is anti-Semitism? – The Origin of Monotheism and anti-Judaism. – Why anti-Zionism?’] (Frankfurt am Main: Eichborn, 1988). (19) Die Erschaffung der Götter: Das Opfer als Ursprung der Religion [‘Creation of the Gods: Sacrifice and the Origin of Religion’] (Reinbek: Rowohlt, 1997) – English translation here.

(iv) Genocide and other mega-killings were dealt with in (20) Die Vernichtung der weisen Frauen: Beiträge zur Theorie und Geschichte von Bevölkerung und Kindheit [‘The Elimination of the Wise Women: Contributions to the Theory and History of Population and Childhood’] (München: Heyne [19851], 20055; co-author: O. Steiger; translation into Swedish). (21) Warum Auschwitz? Hitlers Plan und die Ratlosigkeit der Nachwelt [‘Why Auschwitz? Hitler’s Plan and The Perplexity of Holocaust Scholars’] (Reinbek: Rowohlt, 1995; translation into French in prep.). (22) Was wollte Hitler? Auschwitz und die Lehre von den drei Weltzeitaltern [‘What Was Hitler’s Motive? Auschwitz and the Doctrine of the three Universal Epochs’] (Bremen: Raphael-Lemkin-Institut für Xenophobie- und Genozidforschung, 1996). (23) Anfang und Ende des Klimawahns [‘Rise and Fall of the Climate Scare’] (St. Gallen: Managementzentrum [MZSG], 1997). (24) Post-Genocidal Reconciliation in Rwanda: Are There Lessons from Germany? (Universität Bremen: Raphael-Lemkin-Institut für Xenophobie- und Genozidforschung / Schriftenreihe Bd. 3, 1997). (25) Inflation and Witchcraft or the Birth of Political Economy: The Case of Jean Bodin Reconsidered (Universität Bremen: Institut für Konjunktur und Strukturforschung, als IKSF Discussion Paper, Nr. 8, 1997, co-autho: O. Steiger). (26) GUlag und Auschwitz: Ein Wort zur Klärung der Differenz [‘GULag and Auschwitz: A Word on their Difference’] (Universität Bremen: Raphael-Lemkin-Institut für Xenophobie- und Genozidforschung / Schriftenreihe Bd. 6, 1998); (27) Lexikon der Völkermorde [“Encyclopedia of Genocides”] (Reinbek: Rowohlt, 1998, 1999; Swedish and Bulgarian translations in prep.). (28) “Why Was the Holocaust a Unique Genocide,” Journal of Genocide Research II/2, 2000). (29) “Jüdische Sklaven Hitlerdeutschlands: Wie viele überlebten 1945 den Genozid und wie viele könnten im Jahr 2000 noch leben?” [‘Jewish Slaves of Hitler’s Germany: How Many Have Survived the Genocide in 1945 and How Many Could Still Be Alive in 2000)’] (Universität Bremen: Raphael-Lemkin-Institut für Xeno-phobie- und Genozidforschung / Schriftenreihe Bd. 9, 2001). (30) Entry “Genocide” (International Encyclopedia of the Social and Behavioral Sciences, London: Elsevier, 2001); (31) Söhne und Weltmacht ([‘Sons and World Power’] Zuerich: Orell & Füssli, 2003). ‘Sons and World Power’ (a scholastic bestseller with 10th impression in 2008 and Dutch, Japanese as well as Polish editions in 2008/2009) tries to illuminate the role of youth bulges in mega-killings of past, present, and future. From 2005 to 2009, the author gave lectures on the subject to Germany’s secret services (BND; BfV), commanders of major NATO forces, Germany’s National Academy of Security Policy as well as its Ministry of the Interior. Together with Philippe Bourcier de Carbon (Paris), he was the only expert from continental Europe consulted for the study “The Graying of the Great Powers” by the Center for Strategic and International Studies (CSIS; Washington DC 2008).

(v) On Chronology were published (32) Nullpunkt Abraham. Abraham und die Chronologien Mesopotamiens und Ägyptens [‘Point Zero: Abraham and the Chronologies of Mesopotamia and Egypt’] (Basel: PAF, 1987). (33) Wie alt ist das Menschengeschlecht? [1991; ‘How Ancient Is Mankind?’] (München: Gräfelfing 1996, 2003. (34) Die Sumerer gab es nicht: Von den Phantom-Imperien der Lehrbücher zur wirklichen Epochenabfolge in der “Zivilisationswiege” Südmesopotamien [‘Have the enigmatic Sumerians been the lost Chaldaeans: From the Phantom Empires of Modern Textbooks to the Real Sequence of Epochs in Southern Mesopotamia’s “Cradle of Civilization”‘ (Frankfurt am Main: Eichborn, 1988). (35) Wann lebten die Pharaonen? Archäologische und technologische Grundlagen für eine Neuschreibung der Geschichte Ägyptens und der übrigen Welt [1991; ‘When Did the Pharaohs Thrive? Archaeological and Technological Foundations for the Re-writing of Ancient History’] (Frankfurt/Main: Eichborn, 1990; München: Mantis, 1997, 2065; co-author: H. Illig). (36) Wer herrschte im Industal? Die wiedergefundenen Imperien der Meder und der Perser [1993; ‘Who Ruled in the Indus Valley? The Rediscovery of the Medish and Akhaemenid Empires’] (Gräfelfing: Mantis, 19972). (37) Assyrerkönige gleich Perserherrscher! Die Assyrienfunde bestätigen das Achämenidenreich [1992; ‘Assyrian Kings as Persian Rulers in Assyrian Garb: The Archaeology of Assyria Confirms the Existence of the Akhaemenid Empire’] (Gräfelfing: Mantis, 19962). (38) Empires Lost and Found: Stratigraphy and the Search for the Great Powers of the Past, in http://www.cais-soas.com/CAIS/History/empires_lost_found.htm CAIS (The Circle of Ancient Iranian Studies ) 2006a. (39) Cyaxares: Media’s Great King in Egypt, Assyria & Iran, in CAIS (The Circle of Ancient Iranian Studies) 2006b; http://www.cais-soas.com/CAIS/History/madha/cyaxares_Egypt_assyria.htm CAIS (The Circle of Ancient Iranian Studies) 2006b; (40) “Die Wiederher-stellung der alten Geschichte” [‘The Reconstruction of Ancient History’], Introduction to the new edition of Die Sumerer gab es nicht (see (34) above), Gräfelging: Mantis 2007, pp. 9-65).

by Gunnar Heinsohn
athens under hadrian
A reconstitution of Athens at the time of Hadrian
Gunnar Heinsohn is presenting here stratigraphic evidence for seven cities which he is discussing in his forthcoming book: Aachen, Kalisz, Rome, Athens, Byzantium, Jerusalem, and Samarra, underlining the claim that each site experiences just one devastating destruction during the 1st millennium CE that, in each case, is the same that brings about, at the beginning of the 10th c. CE, the dramatic shift from the Early Middle Ages to the High Middle Ages. It is presented as a schematic overview to facilitate objections.

Go to the pdf

See also:
Gunnar Heinsohn
The 1st Millennium AD chronology controversy
Gunnar Heinsohn’s latest
The Creation of the Gods – Sacrifice as the origin of religion (book)
Biography

The next major nuclear accident

Alfred de Grazia: From political science to quantavolution

Cosmic collisions created tsunamis on Mars

Wrecked metropolises of the 1st Millennium

Pytheas, megaliths and the tides

Piteraqs, Geenland’s stroms from hell

Marina, Iphigeneia and the Morning Star

Neanderthals used chemical fire-starter

Is Earth’s magentic field responsible for the Cambrian Explosion?

Neanderthals transmitted a taste for nicotine

“We contain multitudes” (5)

“We contain multitudes” (4)

“We contain multitudes” (3)

Alfred de Grazia: Brain specialization

A street-map in the sky

A New Little Ice Age by 2030?

The Dragon at the bus-stop

Nicolas-Claude Fabri de Pereisc, humanist genius

The German sun-machine is on

“We contain multitudes” (2)

“We contain multitudes” (1)

The tangible proof of earthquake lights

Alfred de Grazia: Man’s divine mirror

Ruth Dwyer: the comet of 536 and the Ravenna mosaics

Doggerland to be digitally repopulated

Hot explosions, cool Sun

Earliest Modern European had a close Neanderthal ancestor

A hardware store for the Neanderthals

Nepal earthquake associated with distrubances in the ionosphere

550,000 year old human tooth found in Tautavel, France

CO2 emissions are ruining C-14 readings

Blood-red flint tools – souvenirs of Doggerland?

G.H.: How did so many Roman elements make it into the Viking Age?

Drought-control and weather management through ionization?

Neanderthal jewels and fashions

Alfred de Grazia: The Ruined Face of a Classic Beauty

Moon rocks show: Collision ripped the Moon out of Earth

Are super-magnetic fields competing companions of Black Holes?

A5th century Celtic Royal tomb in Champagne

Gunnar Heinsohn: in a nutshell

Alfred de Grazia: The Search for Lost Instinct

G.H.: Bulgaria’s Early Medieval Cities really built to look Roman?

Stars in Collision

Spedicato: pyramids of Gizah, Belt of Orion, volcanoes on Mars

Barbiero: Mithras, Jesus and Josephus Flavius

Water on Earth is Older than the Sun

Cadmus and Viracocha

Lost forest of Doggerland found under the North Sea

G.H.: Sarmatians, Huns and Khazars

Doggerland died in Fall

Sanchunjaton, Phoenicia and Hesiod

Topics

Archive

Gunnar Heinsohn: The Creation of the Gods – Sacrifice as the Origin of Religion (book)

Alfred de Grazia & Earl R. Milton: Solaria Binaria – The 30th Anniversary

That Hot Corona – three unconventional views

The Ice Age Flute

G.H.: The Winchester of Alfred the Great

G.H.: The Creation of the First Millennium

Mega-Streams of the Atlantic

Understanding and Forecasting Solar Eruptions

Earth’s weakening magnetic field

My encounter with a bolide

G.H.: Archaeological strata vs tree-rings

Mike Baillie: Tree-ring and radiocarbon rebuttal of Gunnar Heinsohn

Cyprus salt lakes exonerate Peoples of the Sea from destroying Bronze Age civilizations

The 1st Millenniu AD Chronology Controversy

Toppling Rome’s obelisks and aqueducts

A Stone Ax from Doggerland

Trevor Palmer’s response to Gunnar Heinsohn

Conspiracy of Religious History?

Gunnar Heinsohn’s answer to Trevor Palmer

G.H.: Vikings without towns, ports and sails…

Trevor Palmer challenges Gunnar Heinsohn

The Exact Date of the Deaths of Patroclus and Hector

Libyan rock-art erased by Jihadists

The tsunami which obliterated Doggerland

Miles below ground, live the creatures of the Deep

Navigation systems of migratory birds suffer…

G.H.: Charlemagne’s correct place in History

The Petroglyphs of Mount Bégo

The Petroglyph sundial of Mount Bégo

Mount Bégo: an Electrical Mountain
Copyright 2017. All rights reserved
Contact:
m e t r o n a x @ gmail. com
Webmaster and sole responsible for contents: Anne-Marie (Ami) de Grazia

Using Universal Connection Pool (UCP) as a Pool Datasource in JBoss 7.0 EAP

Using Universal Connection Pool (UCP) as a Pool Datasource in JBoss 7.0 EAP

Blog NameDev2Dev

CATEGORIES
Blogs Home
Blogs Directory
Author Directory
Contact Us
Oracle Cloud Trial:
$300 in Free Credits

Try Oracle Cloud for Free
FRIDAY, MARCH 24, 2017
Share
Facebook
LinkedIn
Twitter
Google Plus
Email
Comment
Using Universal Connection Pool (UCP) as a Pool Datasource in JBoss 7.0 EAP
By: Pablo Silberkasten
In a previous article we detailed the steps to configure Universal Connection Pooling (UCP) running in JBoss AS 6.1 as a singleton service. This service allows consumers to acquire database connections with all the intrinsic benefits of UCP (also detailed in the previous article):

. Runtime Connection Load Balancing (RCLB)
. Fast Connection Failover (FCF)
. Transaction Affinity
. Built-in support for Database Resident Connection Pooling (DRCP) and Application Continuity (AC)

In this article we are going to take a more generic approach -avoiding the usage of a wrapping service- to directly use UCP as a Pool Data Source defined in JBoss’ configuration file (standalone.xml). We are also going to build a basic Servlet to retrieve the pool through JNDI and test it through an http request. We will deploy the web application in an updated version of JBoss (JBoss 7.0 EAP).

1. First step is the same as in the previous article (link) which is downloading JBoss 7.0 EAP https://developers.redhat.com/products/eap/download

2. Also as in the previous article, optionally download JBoss Developer Studio https://developers.redhat.com/products/devstudio/download

3. Configure JBoss 7.0 EAP as a server in JBoss Developer Studio (Servers / New Server / Red Hat JBoss Enterprise Application Platform 7.0 and select installation directory)

4. Install UCP. JDBC driver and ONS as a module. Let’s assume your JBoss installation directory is JBOSS_HOME (If that is the case you should be able to start the application server by running JBOSS_HOME/bin/standalone.sh, you could also do it by Right click on the server and “Start”). Then you need to download ucp.jar, ons.jar and ojdbc8.jar from OTN: http://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html
In JBOSS_HOME/modules/com/oracle/ucp/main create a module.xml file with the following content:

In the same folder you should drop ucp.jar, ons.jar and ojdbc8.jar.
5. Create the driver reference. In JBOSS_HOME/standalone/configuration/standalone.xml add the following driver under subsystem/datasources/drivers (notice module name should be the same as defined in previous step).

oracle.ucp.jdbc.PoolXADataSourceImpl
oracle.ucp.jdbc.PoolDataSourceImpl

6. Create the datasource. In JBOSS_HOME/standalone/configuration/standalone.xml add the following datasource under subsystem/datasources (the most important attribute to notice is the datasource-class, in which we inject UCP Pool Data Source).

jdbc:oracle:thin:@myhost:5521:mysid
oracle.ucp.jdbc.PoolDataSourceImpl
0
900
true
40
0
true
0
jdbc:oracle:thin:@myhost:5521:mysid
mypool
0
0
tiger
scott

oracle.jdbc.pool.OracleDataSource
oracle-ucp

0
20
false

true
true

7. At this step you can already test the datasource in the web console. Start the application server by running JBOSS_HOME/bin/standalone.sh, or Right click on the server and “Start”.

8. Open the console in http://localhost:9990 and execute “Configuration / Subsystems / Datasources / Non – XA / MyPool / View / Connection / Test Connection” (you can also correlate here all the values you manually entered in the configuration file).

9. Create the Servlet. From JBoss Developer Studio execute “New / Project / Dynamic Web Project “ and end with default options. Be aware that the name of the project -that would be by default the name of the deployed war- is going to be the same as the relative path to your web app. You can do this step without JBoss Developer Studio, by just compiling below servlet and deploying it in JBoss EAP 7.0 manually wrapped in a war file with a web.xml descriptor.

package sample;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
// URL to reach the Servlet
@WebServlet(“/OracleUCPJBoss”)
public class OracleUCPJBoss extends HttpServlet {
private static final long serialVersionUID = 1L;
// Pool Datasource reference, to be instantiated at init
private DataSource ds = null;
// Retrieve Datasource reference using JNDI
@Override
public void init() throws ServletException {
Context initContext;
try {
initContext = new InitialContext();ds = (DataSource) initContext.lookup(“java:/datasources/mypool”);
} catch (NamingException e) {
e.printStackTrace();
}
}
// GET request handling
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Retrieve connection from the pool
try (Connection conn = ds.getConnection(); Statement st = conn.createStatement()) {
// Initialize output and retrieve parameters
PrintWriter pw = response.getWriter();
String job = request.getParameter(“job”);
ResultSet rs = null;
// List employees. If job parameter is sent, filter this list
if (job == null) {
rs = st.executeQuery(“select empno, ename, job from emp”);
} else {
rs = st.executeQuery(“select empno, ename, job from emp where job = ‘” + job + “‘”);
}
// Show list on browser
while (rs.next()) {
pw.println(rs.getString(“empno”) + ” – ” + rs.getString(“ename”) + ” – ” + rs.getString(“job”));
}
// Debug info
pw.println(“Served at: ” + request.getContextPath());
} catch (SQLException e) {
e.printStackTrace();
}
}
// Re-route any Post request
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

10. Deploy the web application: right click on the project and execute “Run as / Run on Server” and select the JBoss EAP 7.0 server (or just copy the compiled war to JBOSS_HOME/standalone/deployments). Test the servlet by opening an browser on: http://localhost:8080/OracleUCPDS/OracleUCPJBoss

And to test the filter:

http://localhost:8080/OracleUCPDS/OracleUCPJBoss?job=CLERK

Join the discussion
Facebook

Twitter

LinkedIn

Google+

YouTube

Instagram

Oracle RSS Feed
Oracle
Integrated Cloud Applications & Platform Services
Site Map Legal Notices Terms of Use Privacy
Cookie Preferences

Web Page Source Code in Android

Web Page Source Code in Android

Almost every desktop browser has the “View Page Source” option. But when you browse the Web with an Android device it might be difficult to realize how to read the source code of a page. However there are several easy ways to do so. In this article we will explain how to view HTML source of a page with different browsers.

View Page Source inside Android Browser
View Web Page Source using Android Browser
View Web Page Source using Android Browser

1. Open Android Browser.
2. Enter the URL of a website.
3. Type the following string in the URL address bar:

javascript: alert(document.getElementsByTagName(‘html’)[0].innerHTML);

then tag “Go” button. Remember that JavaScript code is case sensitive!

Source code will be shown in a popup message window in plain text, without formatting.

View Page Source inside Chrome or Firefox Browser
View Web Page Source using Chrome or Firefox Browser
View Web Page Source using Chrome or Firefox Browser

To view the source code of a web page using Chrome or Firefox for Android browsers do as follows:
1. Open Chrome or Firefox browser.
2. Enter the URL of the website.
3. Tap the URL address bar at the top of the browser app.
4. Type at the beginning of the URL:

view-source:

(e.g. view-source:http://xslab.com/). Then tap “Go” button.

View Page Source inside Opera Mini Browser
View Web Page Source using Opera Mini
View Web Page Source using Opera Mini

1. Open Opera Mini web browser.
2. Enter the URL of the website, wait for the site to load.
3. In the URL address bar type:

server:source

then tap “Go” button.

VT View Source Application
APPLICATION
VT View Source
DEVELOPER
Vagharshak Tozalakyan
REVIEWED VERSION
1.8.1
PRICE
Free!
VT View Source Screenshot

VT View Source is a free application that allows you to view HTML, CSS, JavaScript and XML source codes or remotely located files.

You can open web page with VT View Source by typing the URL address directly in the application, or by using “Share page” functionality within your browser.

VT View Source has an adjustable interface and it comes with multiple syntax highlighting themes. Other application features include line numbering, text wrapping, and User Agent switching.

Sweden’s violent reality is undoing a peaceful self-image

Sweden’s violent reality is undoing a peaceful self-image

POLITICO EUROPE
Search
Search Term
Enter search term…
Search
My Account
Login
Register
Europe Edition
U.S. Edition
POLITICO Florida
POLITICO New Jersey
POLITICO New York
POLITICO Media
Full Menu
Brussels
Commission
Parliament
Council
The Continent
Brexit
Foreign Affairs
Home Affairs
Politics
Policy
Agriculture & Food
Data and Digitization
Economics
Energy & Climate
EU Budget
Financial Services
Health Care
Sustainability
Technology
Trade
Transport
Forum
Opinion
Features
Letters to the Editor
Blogs
Euro Press Review
On Media
Playbook Plus
The Coming Wars
Multimedia
Video
Podcasts
Newsletters
Brussels Playbook
London Playbook
Brexit Files
Brussels Influence
Sunday Crunch
Global Policy Lab
Connected: An AI Community
EU Confidential
Special Reports
Events
Future Events
Previous Events
EU Studies Fair
Series
Energy Visions
Global Policy Lab
× POLITICO uses cookies to personalize and improve your reader experience. By pursuing your navigation on our website you agree to our use of cookies as described in our cookie policy.

LETTER FROM STOCKHOLM

Sweden’s violent reality is undoing a peaceful self-image
Shootings have become so common that they don’t make top headlines anymore.

By PAULINA NEUDING 4/16/18, 4:05 AM CET Updated 4/17/18, 4:09 AM CET

An armed police officer in Malmo, Sweden. The topic of crime is a sensitive one in the country | Johan Nilsson/AFP via Getty Images

16k+SHARES16k+ SharesTwitterLinkedIn
WhatsApp
EmailComment
STOCKHOLM — Sweden may be known for its popular music, IKEA and a generous welfare state. It is also increasingly associated with a rising number of Islamic State recruits, bombings and hand grenade attacks.

In a period of two weeks earlier this year, five explosions took place in the country. It’s not unusual these days — Swedes have grown accustomed to headlines of violent crime, witness intimidation and gangland executions. In a country long renowned for its safety, voters cite “law and order” as the most important issue ahead of the general election in September.

The topic of crime is sensitive, however, and debate about the issue in the consensus-oriented Scandinavian society is restricted by taboos.

To understand crime in Sweden, it’s important to note that Sweden has benefited from the West’s broad decline in deadly violence, particularly when it comes to spontaneous violence and alcohol-related killings. The overall drop in homicides has been, however, far smaller in Sweden than in neighboring countries.

Shootings in the country have become so common that they don’t make top headlines anymore, unless they are spectacular or lead to fatalities.

Gang-related gun murders, now mainly a phenomenon among men with immigrant backgrounds in the country’s parallel societies, increased from 4 per year in the early 1990s to around 40 last year. Because of this, Sweden has gone from being a low-crime country to having homicide rates significantly above the Western European average. Social unrest, with car torchings, attacks on first responders and even riots, is a recurring phenomenon.

Shootings in the country have become so common that they don’t make top headlines anymore, unless they are spectacular or lead to fatalities. News of attacks are quickly replaced with headlines about sports events and celebrities, as readers have become desensitized to the violence. A generation ago, bombings against the police and riots were extremely rare events. Today, reading about such incidents is considered part of daily life.

The rising levels of violence have not gone unnoticed by Sweden’s Scandinavian neighbors. Norwegians commonly use the phrase “Swedish conditions” to describe crime and social unrest. The view from Denmark was made clear when former President of NATO and Danish Prime Minister Anders Fogh Rasmussen said in an interview on Swedish TV: “I often use Sweden as a deterring example.”

ALSO ON POLITICO

Under threat, Sweden rediscovers its Viking spirit
CHARLIE DUXBURY

ALSO ON POLITICO

Swedish opposition to the far right: Talk to the hand
CHARLIE DUXBURY
In response, the Swedish government has launched an international campaign for “the image of Sweden” playing down the rise in crime, both in its media strategy and through tax-funded PR campaigns. During a visit to the White House in March, Sweden’s Prime Minister Stefan Löfven admitted that his country has problems with crime and specifically shootings, but denied the existence of no-go zones. Sweden’s education minister, Gustav Fridolin, traveled to Hungary last week with the same message.

But the reality is different for those on the ground: The head of the paramedics’ union Ambulansförbundet, Gordon Grattidge, and his predecessor Henrik Johansson recently told me in an interview that some neighborhoods are definitely no-go for ambulance drivers — at least without police protection.

Swedish police officers stand guard around an office building after an explosion on January 21, 2018 in the Rosengard district in Malmo | John Nilsson/AFP via Getty Images

Swedes are not prone to grandiose manifestations of national pride, but the notion of a “Swedish Model” — that the country has much to teach the world — is a vital part of the national self image.

Since crime is intimately linked to the country’s failure to integrate its immigrants, the rise in violence is a sensitive subject. When the Swedish government and opposition refer to the country as a “humanitarian superpower” because it opened its doors to more immigrants per capita during the migrant crisis than any other EU country, they mean it. This has resulted in some impressive contortions.

In March, Labor Market Minister Ylva Johansson appeared on the BBC, where she claimed that the number of reported rapes and sexual harassment cases “is going down and going down and going down.” In fact, the opposite is true, which Johansson later admitted in an apology.

Similarly, in an op-ed for the Washington Post, former Prime Minister Carl Bildt described the country’s immigration policy as a success story. He did not elaborate on violent crime. After repeated attacks against Jewish institutions in December — including the firebombing of a synagogue in Gothenburg — Bildt took to the same paper to claim that anti-Semitism is not a major problem in Sweden.

“Historically, in Sweden it was the Catholics that were seen as the dangerous threat that had to be fought and restricted,” Bildt claimed, seemingly unaware that the laws he cited also applied to Jews. Intermarriage was illegal and hostility was based on ideas of Jews as racially inferior. Bildt’s attempt to relativize current anti-Semitism with odd and inaccurate historical arguments reflects how nervously Swedish elites react to negative headlines about their country.

Another spectacular example is an official government website on “Facts about migration, integration and crime in Sweden,” which alleges to debunk myths about the country. One “false claim” listed by the government is that “Not long ago, Sweden saw its first Islamic terrorist attack.”

This is surprising, since the Uzbek jihadist Rakhmat Akilov has pleaded guilty to the truck ramming that killed five people in Stockholm last April and swore allegiance to the Islamic State prior to the attack. Akilov, who is currently standing trial, has proudly repeated his support for ISIS and stated that his motive was to kill Swedish citizens. He also had documented contacts with international jihadis.

“They make it sound as if violence is out of control” — Stefan Sintéus, Malmö’s chief of police

The government’s excuse for denying the Islamic terrorist attack in Sweden is that no Islamic group has officially claimed responsibility. Given the importance these days of fighting fake news, the Swedish government’s tampering with politically inconvenient facts looks particularly irresponsible.

Sometimes it takes an outsider to put things in perspective. A recent piece by Bojan Pancevski in London’s Sunday Times put a spotlight on immigration and violent crime. The article caused a scandal in Sweden and was widely seen as part of the reason why the British and Canadian foreign ministries issued travel advice about the country, citing gang crime and explosions. “They make it sound as if violence is out of control,” said Stefan Sintéus, Malmö’s chief of police.

It didn’t seem to occur to the police chief that both the travel advice and the article could reflect the same underlying reality. After all, only a few days earlier, a police station in Malmö was rocked by a hand grenade attack. Earlier the same month, a police car in the city was destroyed in an explosion.

Officials may be resigned to the situation. But in a Western European country in peacetime, it is reasonable to view such levels of violence as out of control.

Paulina Neuding is the editor-in-chief of the online magazine Kvartal.

Related stories on these topics:
Law enforcementMigrationNational PoliticsSwedenCarl BildtStefan Löfven
VIEW COMMENTS
MOST READ ARTICLES
Mexico’s EU trade deal lands a punch on Trump
Sweden’s violent reality is undoing a peaceful self-image
Royals save Theresa May at Commonwealth summit
Trump won’t attend Barbara Bush funeral ‘out of respect’ for family
Nigel Farage says his children have German passports
RELATED CONTENT
Brexit redraws EU alliances
With UK exit, smaller countries fear French and German dominance.

Populist playbook: 5 lessons from Hungary for Trump’s reelection
Orbán leveraged his country’s deep cultural divide into a landslide victory. It’s not impossible Trump will do the same.

Europe can save Poland from darkness
Ruling party is undermining the constitution, but Brussels has the tools to stop it.

Last call for boozy politics
As more women and young people enter the Continent’s parliaments, Europe’s lawmakers are drying out.

The latest in Big Tech: Censorship
In Europe, platforms are incentivized to take down first, ask questions second.

JOBS
Manager – Health, Safety, Security and Environment (HSSE) at Cefic, the European Chemical Industry Council (Brussels, Belgium)
Events Marketing Manager at POLITICO (Brussels)
Operations and Administration Internship at POLITICO (Brussels, Belgium)
Operations and Administration Trainee at POLITICO (Brussels, Belgium)
Marketing Design Intern at POLITICO (Brussels, Belgium)
All job postings | Careers at POLITICO
More on POLITICO
Brussels
Commission
Parliament
Council
The Continent
Brexit
Foreign Affairs
Home Affairs
Politics
Policy
Agriculture & Food
Data and Digitization
Economics
Energy & Climate
EU Budget
Financial Services
Health Care
Sustainability
Technology
Trade
Transport
Forum
Opinion
Features
Letters to the Editor
Blogs
Euro Press Review
On Media
Playbook Plus
The Coming Wars
Multimedia
Video
Podcasts
Newsletters
Brussels Playbook
London Playbook
Brexit Files
Brussels Influence
Sunday Crunch
Global Policy Lab
Connected: An AI Community
EU Confidential
Special Reports
POLITICO Pro
Pro Home Page
Why go Pro?
Events
Future Events
Previous Events
EU Studies Fair
Subscriptions
Print Edition
More Info
About Us
Advertising
Cookies Info
Contact Us
FAQ
Jobs
Careers at POLITICO
© 2018 POLITICO SPRL

Terms of Service Privacy Policy

Set up Pidgin messenger and Office 365 Lync

Set up Pidgin messenger and Office 365 Lync

Office 365 is proving to be a popular cloud collaboration service offered by Microsoft. Lync 365 is a communication tool which enables you to make voice calls, send chats , conference calls and even enable share screening with colleagues.

One of the drawbacks of Office365 and Lync, is that it is pretty dependent on you using Windows and Microsoft Office. Lync works well, if you have the Lync Client installed on your machine. Microsoft do offer a Web Client for Lync but unfortunately this just doesn’t work for Linux computers.

I have managed to get Lync to work with Pidgin, a chat program which lets you log in to accounts on multiple chat networks simultaneously, albeit with some degradation of features. I can make voice calls, video calls and send text chats. Unfortunately I am not able to do screen shares or conference calling. Which if you’re working in a distributed remote team is essential. However, been able to communicate with colleagues from my ubuntu machine while working is still a convenient , even if I have to temporarily have to connect to a windows machine, to Remote Desktop to my Linux machine in order to screen share!

Install Pidgin on ubuntu
1
sudo apt-get install pidgin
In order to get pidgin to work with lync you will need SIPE plugin, therefore install it. The SIPE plugin will enable add an office communicator option to the list of applications your can use pidgin with.

Install Pidgin-Sipe
1
sudo apt-get install pidgin-sipe
Sipe Project
You can now start Pidgin

1
pidgin
If you click the Add… button.

Select Office Communicator in the Protocol list box and enter your Office 365 Account details. i.e. Your Email address and Password.

Click on the Advanced tab and enter the following details;

1
2
3
4
5
6
7
Server[:Port] sipdir.online.lync.com:443

Connection Type : Auto

User Agent : UCCAPI/15.0.4420.1017 OC/15.0.4420.1017

Authentication scheme : TLS-DSK

Then Click Add.

This will enable your Account and should populate your “Buddy List” with all your colleagues who are within your organization.

You can now start using Pidgin as it is connected to Office 365.

Add advanced interaction controlsto your HTML tables the free & easy way

Add advanced interaction controlsto your HTML tables the free & easy way

Advanced tables, instantly
DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, build upon the foundations of progressive enhancement, that adds all of these advanced features to any HTML table.

DataTables designed and created by SpryMedia Ltd.
© 2007-2018 MIT licensed. Our Supporters.
SpryMedia Ltd is registered in Scotland, company no. SC456502

My Early Career Crisis (2014 – 2015)

My Early Career Crisis (2014 – 2015)

Yihui Xie
My Early Career Crisis (2014 – 2015)
A painful transition of a fresh PhD from academia to industry, and from selfish open-source to product-oriented open-source
Yihui Xie / 2018-02-16
When I was interviewed on the R Podcast on Feb 3, I briefly mentioned my early career crisis for the first time to the public. In this post, I’m going to write about the details. Recently I started reading the book “Principles” by Ray Dalio, and it has had huge impact on me, even though I haven’t finished reading it. In particular, he mentioned that many people were afraid of making mistakes, and when they do make mistakes, they never review or learn from the mistakes, which is really a shame, because it is such a great opportunity to improve oneself. This post is my attempt to review and analyze my mistakes, I hope I could do better in the future, and never go through the same type of crisis again.

I also wish this post could be useful to two types of readers: HRs/managers in companies who plan to hire fresh PhDs with the similar personality to me, and those fresh PhDs who plan to work in a company environment like me in late 2013. I ran out of time after I finished this post, and I’ll write another blog post in the future to summarize the explicit advice I want to give to managers and PhDs.

You’ve always got issues, Yihui
I had dinner with a few Iowa State alumni in San Diego on Feb 3rd when we were attending the RStudio Conference. Someone at the table recalled that I missed the useR! 2016 conference at Stanford due to visa issues, and my classmate Stephanie Zimmer said “You’ve always got issues, Yihui” followed by her trademark “Ha-ha-ha-ha”1 after she heard about the incident. She said so and laughed for a reason.

When I first arrived in the US in 2009, my backpack was stolen in a restaurant in DC, and I lost a lot of things, including my money, passport, and the plaque of the John Chambers Software Award (I went to DC first because of this). This incident shocked everyone in the stats department at ISU later, and I quickly became “famous” before I arrived at ISU in Ames. The faculty and staff in the department kindly donated a good amount of cash to me. That was the reason I donated the royalties of the knitr book to the department four years later. Anyway, this incident was a tragedy to me in the beginning, but became a fond memory later.

So yeah, I’ve always got issues. Sometimes funny, and sometimes not so funny. Sometimes I make good trouble, and sometimes I make really bad trouble.

What I gained from doing a PhD
I want to start this post from my PhD life at Iowa State, because I believe a seed was deeply planted in this period (4.5 years), which eventually led to my crisis. I remember Philip Guo once said doing a PhD basically means you exchange wealth with freedom, i.e., you gain a lot of freedom, and sacrifice the potentially much higher income.

Freedom. That was exactly what I gained during my PhD training. I was very fortunate to have Di and Heike to be my advisors. They were exceptionally open-minded, and had always been supportive in both my research and my life. Di would grab and pay my bill every time we eat at a restaurant. Heike gave me a large sum of cash when I first arrived in Ames, but never cashed the check I wrote to her a few months later after I no longer had financial difficulties. They treat students like their children.

I have always been a self-motivated person, and almost always know clearly what I want to do. It happened that I was extremely interested in statistical graphics in the first two years at ISU. I spent most of my time on the cranvas package (a very cool R package for interactive graphics), and I think they were quite happy with my work, so was I. Occasionally I felt it was hard to stop working on it.

I was not completely focused on cranvas all the time, because of a few side projects, including the animation package and the community Capital of Statisitcs (COS) that I founded in 2006 to help promote statistics and R in China. In particular, I spent a huge amount of time on the latter, without telling my advisors. Both animation and COS were meaningful work, and helped lots and lots of people, but that should not justify my stealing of the PhD research time.

Things quickly became worse in late 2011, when I started working on knitr. I was so fascinated by the fact that I could eventually significantly improve Sweave, which had tortured me for a number of years. I didn’t talk to my advisors in advance, and jumped straight into knitr. From that week, I started to have a mixed feeling in my heart: I was super excited by knitr, and I felt guilty to leave cranvas behind. Every week I met with Di, I felt anxious because I procrastinated indefinitely on cranvas, which was supposed to be the topic of my PhD dissertation, whereas knitr was not on the original plan at all.

I was able to read the disappointment2 from her eyes, but usually I’d try to forget the anxiety five minutes after I left her office and continue working on knitr.

As I said, my advisors were very open-minded. I’m pretty sure knitr wouldn’t be born, had I worked with other advisors. They were disappointed that I started to work on a package irrelevant to statistical graphics, but they didn’t stop me. To some extent, they sacrificed their own interest in favor of other people’s interest, and the number of “other people” turned out to be huge in the coming years.

I graduated in December 2013, and my thesis was about animation, cranvas, and knitr. By that time, my habit of procrastination had become very serious. I tried my very best to procrastinate on things that I didn’t intrinsically love, such as writing the PhD thesis. I finished the thesis only a few days before my defense. I was supposed to send the thesis to my PhD committee at least two weeks in advance, but I bet no one would read it two weeks in advance, so I only sent them a Dropbox link instead of a PDF attachment in the email, to give myself a few more days to complete it. That shows what an incredible expert I was at procrastination.

So Dr Xie got a PhD degree in statistics, with an invisible “master” degree of procrastination. From the eyes of onlookers, I might seem to be a successful PhD. I published a few papers, I wrote a few R packages, I was invited to many conferences, and gave a huge number of talks. I received the Snedecor Award from the stats department, the highest honor that a PhD student in the department could earn. But they didn’t see the shadow in my heart, neither did I (precisely speaking, I saw it but I just denied it).

I procrastinated, but didn’t waste my time
I have always been interested in psychology (in particular, all kinds of psychological biases). Most people have a tendency to justify and comfort themselves when they actually know they are doing something wrong but enjoying it at the same time. I’m no exception. I procrastinated on my PhD research, but I helped a lot of people, and I enjoyed developing knitr. Perhaps unlike other procrastinators, I could confidently say that I didn’t waste my time. I rarely spend time on entertainment (TV, games, or parties, etc). I actually work extremely hard, to a degree that you probably cannot imagine: see how many GIT commits I have pushed to Github, how many Github issues I have resolved, and how many questions I have answered in mailing lists and on StackOverflow, and so on. The numbers are often on the magnitude of thousands.

But I wasted other people’s investment in me. Di tried to bring me to Iowa State, hoping that I could do excellent work in statistical graphics. I failed. That was only one of my several examples of wasting other people’s investment.

I did my summer internship at the AT&T Labs in 2012 with Simon Urbanek, and Fred Hutchinson Cancer Research Center in 2013 with Raphael Gottardo. I never showed up at any meetings at the AT&T Labs, and I probably met Simon four times throughout the summer (including once in the restroom). I was working on knitr and didn’t do the work he expected me to do. The last day before I left, I apologized for my inactivity, and Simon was basically speechless. Same thing happened the next year in Raphael’s lab: I never actively reported to him, and he had no idea what I was actually doing. I was still working on knitr. In both summers, I often slept all the way to 11am (as a night owl), and nobody checked where I was or what I was doing.

Yet I heard praises, all the time, which gave me further justifications of only working on things I liked. My software packages are open source, and now I call that type of open source “selfish open source”, because I was only thinking of making myself happy. One of the ways to make myself happy was to make others happy with my software. It was merely a side-effect and coincidence that these packages turned out to be useful to many other people.

My strengths and weaknesses
To analyze my personality, I need to start from my elementary school. I have almost always been an A+ student since I was a second grader. I never thought I was smart. I just studied extremely hard, partly due to poverty and partly due to the inspirations from a few of my older cousins who studied hard. In the three years of my high school, I rarely took a nap at noon, although napping was compulsory in the school. I often hid and studied in the restroom after everyone else in the dorm had slept at noon and in the night. It hurt my eyes, but more importantly, I lost the ability to ask questions and ask for help. I just try to figure out everything by myself. Till today, I still feel nervous when someone asks me “Do you have any questions for me?” Because I almost surely have no questions.3 If I do, I’ll figure them out by myself. I don’t talk much in daily conversations.

A couple of weeks ago when I checked in at the front desk of the hotel to attend rstudio::conf, the conversation was like this (which is a typical one of mine):

“Check in, please.” (Handing over my ID and credit card at the same time. I knew she would need my credit card for incidentals. I just wanted to save her a question.)

“Okay… You stay here for three nights and check out on Feb 4th, right?”

“Yes.”

“Your room was booked by your company, and your personal credit card will only be charged for incidentals.”

“Okay.”

“Do you need maps of the hotel and the city?”

“No.”

“Do you have any questions?”

“No.”

“Okay. Your room number is XXXX, and follow this way to the elevator.”

“Thank you!” (Phew! Ran off.)

I’m a little afraid of one-to-one conversations on non-technical topics. I often feel the other person is expecting me to say more, looking me in the eye, but I don’t have anything more to say, which leads to awkward silence. That is probably why I often avoid eye contact when talking to people.

I can also give an example of how I avoid asking for help. I love cooking, but I have a rule in the kitchen: I don’t want anyone to wander in the kitchen when I cook, and I always refuse help, no matter who offers to help, or how many guests I have to cook for.

Independence is both my strength and weakness. My independence is quite extreme. Somehow all my undergraduate and graduate advisors happened to have made good use of it. I attended Renmin University of China, and obtained my bachelor and master degrees there. My advisor Prof Zhao was more of an economist, and knew nothing (technical) about R. I had no interest in economics (you may feel funny why we chose each other, and that is another story). Most of his students worked on his projects, but I rarely did. He gave me the full freedom to learn R and statistical graphics by myself because he knew I loved them, and rarely asked me to help with his projects, although he had a lot. He offered me the financial support to travel to Germany twice to attend the useR! conference, and a statistical graphics workshop. These were my first international trips, and I met Di and Heike at the workshop for the first time. The consequences of him respecting my independence turned out to be:

I became a first-generation R user in China, and probably also contributed a little bit to the role of statistical computing and graphics in statistical education in China.

I founded COS, which included the earliest web forum for R in China (which is still alive after 12 years and I’m still active in it).

I organized the first R conference in China after I came back from the useR! conference in 2008. Now this conference attracts thousands of attendees every year (and it has always been free).

I wrote my first R package, animation. Because of this package, I got Hadley and Di’s attention. Because of their attention, I was accepted and invited to the graphics workshop. Because of this workshop, I went to Iowa State… You can complete the rest of the circle by yourself.

These things show another of my strength: if I’m allowed to work completely independently, I can pour an infinite amount of energy into things I love, and I can keep the energy for years and years. Sometimes I’m just too excited to sleep and can even keep working until I’m physically sick. However, my weaknesses are also revealed at the same time:

No matter if I’m allowed to work independently, I tend to work independently anyway. What’s worse, I avoid communication, because I don’t want to be interrupted, which is selfish.

While I’m exceptionally good at focusing on things I love for a really long time, I’m also exceptionally bad at moving my focus to the work I don’t enjoy, and I’ll procrastinate on such work.

Both weaknesses are terrible in a company environment. In the academic environment, they do not really hurt due to several reasons, including (1) there is a lot of freedom in academic research; (2) professors are often nice, kind, and busy; (3) one advisor often has multiple students working on the same project; (4) there are no strict criteria to evaluate the output of academic research (papers might be one, but professors are so good at publishing papers…); (5) sometimes academic researchers have no direct clients to serve, which means nobody cares if you succeed or fail. In general, I feel the pressure in academia is less than that in the industry.

I think the free atmosphere in academia makes sense, but it was not good for me, because I could easily be spoiled. I would be gradually sliding into a bottomless hole in this environment. I need a tough coach to guide me on how to use my energy. I felt like I had a machine gun in my hands, but I had been shooting at random objects all day long.

Joining RStudio
I made JJ’s (CEO of RStudio) acquaintance in 2012 because of the knitr package. Later we did four talks together. I liked and admired him. He was both visionary and practical. Of course, I also loved the RStudio IDE. The total time I spent on job hunting was probably five minutes: we had a brief phone call in 2013, and he made an offer. It was that simple. The salary in the offer was way beyond my expectation. I highlighted the salary here because I’ll mention it again later. It will be one of the two solutions to my problems.

The other great advantage of working for RStudio was that I was able to work from home, which means, freedom. I had already been spoiled by freedom in academia, and then I was offered even more freedom. There wouldn’t a boss in the back watching over me when I work. How free was that!

I was first assigned to the Shiny team, and worked with Joe Cheng (CTO of RStudio). My first task was to bring DataTables to Shiny. I was not a JavaScript professional and sometimes had to “copy and paste from StackOverflow”, but I enjoyed the work, and was excited when I saw the beautiful tables rendered in Shiny apps. I have always been fascinated by web technologies.

It was a good start. Then I was interrupted by my PhD defense. I spent three weeks on my thesis, and defended it. I was still fully paid by RStudio in this period, although I didn’t deserve it. Not long after my defense, I was interrupted again by immigration issues (waiting for work authorization since I was no longer a student).

When I came back to work in early 2014, I was assigned more tasks related to JavaScript libraries, such as selectize.js. I was also expected to maintain the shiny package, since Joe became busy with other things. I was quickly overwhelmed by the number of questions in the mailing list as well as the number of Github issues, thanks to the popularity of Shiny. They were a setback to me. After I tried a while to answer every single question that I was able to answer, and fix bugs that I could fix, I felt frustrated. Basically I had little time left to develop anything new. I saw questions and issues every morning, which could keep me busy until midnight. An unfortunate fact about me is that I actually like debugging and fixing bugs, and I’d rather do these things instead of developing new features in Shiny.

I lost my passion, and started to step to the wrong direction, without talking to anyone. I had a few interesting projects of my own (including knitr), and I started to spend more time on them instead of my official job. In fact, these “interesting projects” included an early prototype of blogdown, but no one in the company knew I was so interested in it, because I didn’t tell them. Again, my problem of lack of communication.

Joe had discovered my procrastination before he left. He didn’t blame me but tried to save me. He introduced techniques like Pomodoro to me to fight against procrastination. I didn’t really listen. I would only work a little bit when I saw he was obviously unhappy from his face. Eventually he left me alone. And I left my job behind. The mixed feeling of anxiety and excitement started to strike me again.

In September 2014, Tareef (president of RStudio) talked to me about my problems, and gently reminded me that I should be more active at communication and more focused on my work. I felt very anxious when he talked to me, but again, five minutes later, I tried to forget it.

Perhaps they felt I was not highly motivated by Shiny, and it happened that Joe had another project, leaflet, which he started quite a while ago but didn’t have time to turn it into a formal R package. It was handed to me. I was only moderately interested in it, but it felt better than the Shiny giant. At about the same time, I also started working on DT. I favored DT because I was more familiar with the JS library DataTables. I hadn’t used the JS library leaflet.js before, and it seemed to be complicated to me. Therefore I procrastinated on leaflet but made better progress on DT. Again, I chose to work only on things I liked.

The 2015 winter vacation
I went back to China to visit my family in Jan 2015, and flew back to the US in early March. It was a vacation of two months, which was unusual (to my knowledge, most other people would take at most one week’s vacation), so I promised I would work half-time while I was in China. I failed. I think the total amount of time I spent on my work was probably twenty hours in the two months. A number of reasons why I didn’t (actively) work:

I went back to celebrate the Chinese new year with my family. I hadn’t had a chance in five years, because the dates for the Chinese new year are often not in the usual US winter vacation time. The Spring Festival means one thing to many Chinese: eating. I have a lot of relatives, and had to visit them one by one. Each would take a whole day. The Spring festival is much longer than Christmas in the western world (more than two weeks). I just kept eating, and felt like I was to eat all the delicious food I missed in the five years.

It was freezing in winter in my hometown, thanks to whoever the genius it was to decide that the southern part of China didn’t need heating in winter a few decades ago (so we don’t have the infrastructure for heating). The temperatures outside and inside the rooms are pretty much the same. I had been spoiled by the heat in Beijing for seven years, and US for five years. I had never felt the keyboard (especially the trackpad) of my Macbook was so cold. It was like typing on a block of ice. Joe joked that I should try to build RStudio from source from time to time to keep my laptop warm. In my hometown, we typically burn wood in a special room to stay warm, but there was no Internet in that room in my parents’ house.

Very limited Internet access. My parents live in the rural area, as most of my relatives do. Without Internet access, I gradually disappeared from the company, and nobody knew where I was or what/whether I was working (again, like when I did my internship).

After I had practically disappeared for several weeks, the company decided to change my role and cut my salary after some (presumably long) internal discussions. They thought I was not super interested in software development but teaching instead (or at least the software engineer’s role was obviously not appropriate for me). That was a misunderstanding, but completely due to my lack of communication. I love both software development and teaching. My performance as a software engineer was extremely disappointing. While I might well have the skills as a software engineer (although my skills were definitely not extraordinary), there was no sign to show that I could be accountable. I failed on shiny. I failed on leaflet. I failed on DT. The company tried really hard to save me, but they could not even find me in the first place.

Even at this point, I was not fired. Someone in the company probably still had the faith that I could be changed. In retrospect, you can imagine how grateful I am to RStudio.

The failed ICSA bulletin editor
I want to digress to one thing irrelevant to my work for a bit, because it also seriously affected me mentally in the same time period. In 2014, I accepted an invite from ICSA (International Chinese Statistical Association) and agreed to take the role of its bulletin editor, thanks to the recommendation of the previous editor. I accepted it because:

I was bad at saying “No”. I didn’t know how to refuse people. You can observe the same pattern in my software development: I tend to answer every single question, implement every single feature request, and fix every single bug. I don’t want to let people or users down. I didn’t know that (1) they would not necessarily be let down if I refuse to help, and (2) I had to let someone down because I had my own personal limit (I could not work 48 hours a day). Often times, when I try not to disappoint one person, I’ll eventually disappoint another person, and actually disappoint that person much more badly. In this case, I tried not to let the previous editor down, and it turned out that I not only let him down, but also seriously let the president of ICSA down, and created an enormous amount of trouble to this association.

I was actually interested in this role, and I was very ambitious. I helped the previous editor for two years, and thought the process of editing this bulletin was too inefficient. The editor had to do a lot of work in LaTeX, which could be significantly simplified via Markdown. I wanted to make it much easier to for ICSA members to contribute to this bulletin and for the editor to put together the articles in the final PDF. I saw it cost a lot of money for ICSA to print the bulletins, which didn’t make much sense to me and I thought the money collected from members was largely wasted. I was in favor of electronic distributions, and was hoping to turn the bulletins into appealing web pages, which was possible with Markdown (so was PDF).

It turned out I was too ambitious. I had a full-time job, on which I had already been procrastinating. I seriously underestimated the effort required to change the format of the bulletin from raw LaTeX to Markdown. What I was envisioning was essentially bookdown, which didn’t exist in 2014, but I had been thinking about it for long. How long did I actually spend on the development of bookdown later? A whole year (as my full-time job). I thought I would be able to turn the bulletin source format to Markdown in about a week. You see how ridiculously optimistic I was. Even now I still don’t think I’m ready to build a bulletin with Markdown, since there are still missing pieces in bookdown to support this type of publications.

I was expected to make the bulletin ready for printing in Jan 2015. By Jan 2015, how much progress had I made? Basically zero. I tried Markdown on one article, and it didn’t seem to be straightforward. Then I left it behind. At that time, I had already got a lot of anxiety from my daily job, and I was fairly weak mentally. It was easy to give up extra challenges in this case.

Then I had the aforementioned terrible vacation, in which both RStudio and ICSA were desperately looking for me. The ICSA president tried to reach me via several approaches: phone calls, voice/text messages, emails, wechat, asking other people to call me, and so on. I was too nervous to talk to him, so I ignored these messages as an ostrich.

Finally he gave up, and appointed a new editor. That issue of the bulletin was delayed by four months, and note that it is a biannual bulletin. This probably had never happened before in the history of ICSA. I bet these ICSA people would never want to talk to me again. I felt extremely sorry and shameful about it. I still do, and will do.

Empathy vs reality
Empathy is also both a strength and a weakness of mine. In particular, I have a strong sympathy for people who suffer from inefficient or buggy software (of mine or others). It is the most important reason why I was able to create a few user-friendly software packages. As I said several times before, I don’t have super strong skills for software development (I don’t know C, C++, Java, Python, or most languages you can imagine).

It was the empathy that helped me succeed. It was also the empathy that destroyed me.

When I agreed to be the ICSA bulletin editor, I had good intentions. I very much wanted to free future editors from the laborious work. I just ignored the reality that I wouldn’t be able to make it in such a short time.

When you create a popular software package, you will receive a lot of praises, but at the same time, you will also receive a lot of feature requests, questions, and bug reports. My mistakes were (1) I was too satisfied and proud with the good words, and (2) I failed to realize my physical limit. I was lost in a forest of endless questions, requests, and reports.

Sometimes I don’t understand how (most) other software developers manage to put these issues aside. As I mentioned in a previous post, I had a ridiculous OCD that I didn’t want the number of Github issues to exceed 25 in any repository that I maintain. It was partly because of empathy, and partly because of my intolerance of imperfection. So far I have only observed one software developer who behaves like me: my colleague Kevin Ushey. He has been amazingly responsive in Github issues (I don’t know what his thoughts are, though). For most other (highly prolific) software developers that I know, I often see pages after pages of Github issues opened long time ago in their repositories. Perhaps that is the path that I should follow, too.

The (inflated) ego
Along with my long-time “success” came my inflated ego. Ray Dalio also mentioned this problem in “Principles”: the ego and blind spots are the two deadly flaws of most people (especially “smart people”), and it is also extremely difficult to overcome them.

I haven’t had many failures in my life, and have always been surrounded by praises. This may sound great, but it created a stupid ego, and made me so afraid of failures. Whatever I do, I want to be very successful. I could not accept failures or a self that didn’t sound as perfect as described (or imagined) by other people. It would be hard to imagine three years ago that I would write such a post to describe myself as once such a terrible badass.

The ego also made me ignore people I shouldn’t have ignored. When Joe first reminded me that I should focus more on my job, I ignored him partly because I thought I was doing awesome work (secretly). That was arrogant. Joe was so much more knowledgeable and professional than me.

Now I’m ready to kill my ego. To me, the ego will grow by itself unless I intentionally suppress it. I need to control myself and try not to seek for the mental reward from praises. Ray Dalio suggests us pay close attention to what is right or wrong in other people’s comments, instead of what makes us feel good or bad. We need to be careful enough not to be trapped by the feelings produced by our “lower-level” selves.

This explains why I no longer tweet actively and frequently (now I primarily use Twitter for replying people). I don’t want to be fooled by the big number of followers or the numbers of likes or retweets of my tweets. I have quit my blog from the popular R-bloggers (for reasons including this one) and, if I remember correctly, never actively tweeted a single blog post of mine (sometimes I mention certain posts in replies due to the character limit). It also explains why I aggressively cut my own reputation points on StackOverflow. I want to restore my sanity and evaluate myself objectively in a quiet world.

To clarify, I definitely don’t mean people should not praise me (please don’t feel bad if you have ever praised me). It was all my own fault to indulge myself in the praises and reputation. I thought I was awesome even when I was essentially rotten inside.

If you cannot kill yourself, don’t expect to rebuild yourself.

The direct cure
In the spring of 2016, I was invited to give a talk at a conference organized by the ASA Chicago chapter, where I met Karl Broman and a few other speakers. At the dinner, I told Karl that I had got the cure for my procrastination. He seemed to find it unbelievable (perhaps because procrastination was so common in academia, and he was also a person poor at saying “No”).

A cure for procrastination? Is there such a thing in the world?!

I had read a lot of articles on how to stop procrastination. I had tried tools like Pomodoro. I can tell you that none worked for me. Some methods were actually harmful to me and made my situation worse, such as The Art of Procrastination.

What cured me eventually was, as shameful as it sounds, my reduced salary. As I mentioned earlier, JJ offered me a great number initially. I probably had the highest (initial) salary among all PhDs in statistics in the US. After I returned from the 2015 vacation, my salary was substantially reduced. The worst feeling in this world is probably when you go from “top” to “bottom” (e.g., healthy to sick, rich to poor, famous to unknown, and lovestruck to parted, etc). The opposite way feels much better.

Needless to say, I felt pretty bad at it. Fortunately, I hadn’t lost all my sanity. I thought and rethought about the whole thing, and concluded that it was completely my fault. I missed too many chances when there were helping hands in front of me. I rudely refused the help, and stubbornly went my own way, vanishing into the darkness.

Now I feel the fundamental reason why I could not stop procrastination was because procrastination didn’t really hurt (enough). I procrastinated on cranvas because it didn’t hurt me. I was still able to survive and complete my PhD. Had my advisors said “I wouldn’t let you graduate unless you resume the work on cranvas”, I’d definitely give up knitr and COS (at least temporarily).

Simply put, you just won’t procrastinate when you realize you are going to starve soon.

The fundamental cure
That was the direct cure, and it was not the best or fundamental cure. Again, I’m a self-motivated person and an introvert. Changing my personality in a short time will be hard. I do have my strengths, and the question is how to better take advantage of them.

The answer turned out to be fairly simple. I just tell the company what I want to do, and they will think if the interest of the company is aligned with mine. Guess what? They have rarely said “No” to me. They value and respect my personal interests very much.

Problem solved — if only I could talk to them.

Before that, I was very afraid of telling them my thoughts, because I was afraid of rejections. I’d imagine them saying “Hey Yihui, you shall work on Shiny since Joe is so busy”, and “There is no point of working on R Markdown since JJ is on it.” These imaginary conversations may sound funny, but they show how poor I was at communication.

My deep depression continued until I started working on bookdown in late 2015. It was a project that I wished to work on for at least two years. It was not only a project that I loved, but also a project in which Tareef patiently coached me to become a professional software engineer (that was why I thanked him in both the bookdown book and the blogdown book). The most important lesson I learned was: take some serious time to plan ahead, and try your best to stick with the plan in case of all kinds of distractions. This is drastically different with developing “selfish open-source software”. With the latter, you just do whatever you want, and whenever you like. No commitment, no responsibilities, no guarantee. While the freedom could make the developer fairly efficient sometimes (no pressure), it is harmful in the long run. You will be at best successful with a handful of things in a rather narrow field. Once you move outside of your comfort zone, your life will be utterly miserable.

Another benefit of making a plan in advance is that you will be better at estimating the time to finish a project. Besides all weaknesses I mentioned above, I have yet another one: I’m bad at estimating time. More often than not, I need twice as much time as I originally imagined. For example, when I tell Tareef I’ll finish something in two weeks, it often ends up taking me four weeks or even more.

To be honest, I’m still not comfortable with making plans and writing them down. I feel I’m busy enough every day, and don’t want to think what I want to do tomorrow, next week, or next year. But I’m still trying to think about it even only for one or two minutes every night before I go to bed. It is very helpful. In particular, it helps a lot with pushing away things that are not important but look urgent. You can always compare your plan with those “urgent” things, and decide the priorities.

Among the many emails that Tareef sent to help me in early 2015, he once quoted Chris Hadfield (the astronaut):

“Decide in your heart of hearts what really excites you and challenges you, and start moving your life in that direction. Every decision you make, from what you eat to what you do with your time tonight, turns you into who you are tomorrow, and the day after that. Look at who you want to be, and start sculpting yourself into that person. You may not get exactly where you thought you’d be, but you will be doing things that suit you in a profession you believe in. Don’t let life randomly kick you into the adult you don’t want to become.”

Don’t let life randomly kick you into the adult you don’t want to become.

I think Tareef’s diagnostics of me were very accurate. I was basically letting life randomly kick me around. I had my strong passion (for software), and I had my life goals, but I constantly drowned in the random world.

2016, bookdown, made a plan, and done. 2017, blogdown, made a plan, and done.

It seems I have gained better control over my life now, but I clearly know that there is no cure that works once and for all. I still have to reflect on my failures and mistakes from time to time, because it is just so very easy and tempting to start drifting again.

The tumor
I’m going to digress a bit again here, to describe an incident in Oct 2015. Remember, “Yihui has always got issues.” One day I suddenly had a pain in the back neck. Initially I thought it was due to an injury when I lifted a heavy object upstairs a few days ago. In the following days, the pain became severer and severer. I had never had so much pain in my body. I went to see a doctor (for the first time in my five years in the US — I had been very healthy). A couple of weeks later, the MRI showed a tumor in my neck.

Long story short, I had a surgery in December (first time in my life) and the tumor turned out to be benign. Thankfully, everything seemed to be fine. I wasn’t too scared when the tumor was first discovered, but I did think about life and death.4 It would be a shame if I died when I was still a terrible person (on my tombstone they would write “here lies a guy, irresponsible, and a failure”). Although it sounds like a cliche, you will be better at sorting out priorities today if you are going to die tomorrow. You wouldn’t care if “someone is WRONG on the Internet”, or someone is not convinced by your work, or someone wants a figure caption to be bold.

But I still forget this from time to time. For example, why should I care about someone who didn’t buy the convenience of roxygen2 a few weeks ago? I really shouldn’t have replied to that email. It was completely a mistake.

The future
I want to become a professional and responsible software engineer, and more importantly, I wish I won’t have to struggle much to work on my less favorite projects (such as DT). I’ll make fewer promises to the random world, because my past records show that I often failed to keep them, and the failures made me feel very guilty. I hate that feeling.

I have been working 100% on open source packages since I joined RStudio. Although I’m definitely biased from the inside view, I have to say RStudio’s commitment to open source is amazing, considering that RStudio is a relatively small company. Both RStudio and I believe firmly in open source. I feel extremely proud of working for such a company. At RStudio, I can be rest assured that I don’t need to worry about other issues as long as I can focus on my work. There is zero bureaucracy in the company. I only need to spend about 10 minutes on a weekly meeting, and no time on traffic (since I work from home). Work hard, deliver results as planned, and I’ll be paid well. It is just that simple. Isn’t it a dream company? It is hard to imagine that I was so blind back in the early days. I need to value the opportunities.

Starting an open source project is easy, but building it into a mature product it much harder. I think many people have discovered this fact, such as the very creative Romain Francois (he said this in an R podcast). As a matter of fact, Wei Zheng in the Tang dynasty of China also said it well 1500 years ago: “善始者实繁,克终者盖寡” (many people can start but few can finish).5 I wish I could develop a more solid habit of consistently carrying a product all the way to its destination.

I want to quote Ray Dalio again to finalize this post. I went through a long period of pain and made bad mistakes, but the wise thing to do is embrace pain and mistakes:

“Instead of feeling frustrated or overwhelmed, I saw pain as nature’s reminder that there is something important for me to learn.”

“The most valuable habit I’ve acquired is using pain to trigger quality reflections.”

“Everyone makes mistakes. The main difference is that successful people learn from them and unsuccessful people don’t.”

Thanks, Tareef, JJ, and Joe.

Update on 2018-02-17: After I published this post, I received a lot of feedback in a short period of time, and I truly appreciate all your thoughts, encouragements, and care. I will see if I could summarize them in the future. For now, I just want to clarify it to those who were concerned about my mental health issues: I’m no longer depressed. The years 2016 and 2017 have been fantastic, and I have mostly recovered. Thanks again!

Stephanie was the happiest graduate student in the department. I still miss her laughter as well as Prof Dan Nordman’s. ↩
As Prof Tian Zheng pointed out, it should be more of a look of concern instead of disappointment, which was later confirmed by Di. She wanted to make sure I’d have a thesis product that could pass the final examination. ↩
Tareef often asks me this by the end of our one-to-one meetings. In the beginning, I felt awkward to say “I don’t have any questions”, so I often answered “Um mm… I probably don’t have questions”. After I had said it so many times, he couldn’t help asking me “Why probably? I’ve never heard anyone say ‘probably no questions’“. He didn’t know my awkwardness of giving the straight answer “No, I don’t have questions.” ↩
It was also reflected on the dedication page of the bookdown book. ↩
From 谏太宗十思疏. ↩
← Another R-Podcast with Eric Nantz
A Twist of Hygge in xaringan →

© Yihui Xie 2005 – 2018 | Github | Twitter

blogdown: Creating Websites with R Markdown

blogdown: Creating Websites with R Markdown

Type to search
Creating Websites with R Markdown
Preface
Structure of the book
Software information and conventions
Acknowledgments
About the Authors
Yihui Xie
Amber Thomas
Alison Presmanes Hill
1 Get Started
1.1 Installation
1.1.1 Update
1.2 A quick example
1.3 RStudio IDE
1.4 Global options
1.5 R Markdown vs. Markdown
1.6 Other themes
1.7 A recommended workflow
2 Hugo
2.1 Static sites and Hugo
2.2 Configuration
2.2.1 TOML Syntax
2.2.2 Options
2.3 Content
2.3.1 YAML metadata
2.3.2 Body
2.3.3 Shortcode
2.4 Themes
2.4.1 The default theme
2.5 Templates
2.5.1 A minimal example
2.5.2 Implementing more features
2.6 Custom layouts
2.7 Static files
3 Deployment
3.1 Netlify
3.2 Updog
3.3 GitHub Pages
3.4 Travis + GitHub
3.5 GitLab Pages
4 Migration
4.1 From Jekyll
4.2 From WordPress
4.3 From other systems
5 Other Generators
5.1 Jekyll
5.2 Hexo
5.3 Default site generator in rmarkdown
5.4 pkgdown
Appendix
A R Markdown
B Website Basics
B.1 HTML
B.2 CSS
B.3 JavaScript
B.4 Useful resources
B.4.1 File optimization
B.4.2 Helping people find your site
C Domain Name
C.1 Registration
C.2 Nameservers
C.3 DNS records
D Advanced Topics
D.1 More global options
D.2 LiveReload
D.3 Building a website for local preview
D.4 Functions in the blogdown package
D.4.1 Exported functions
D.4.2 Non-exported functions
D.5 Paths of figures and other dependencies
D.6 HTML widgets
D.7 Version control
D.8 The default HTML template
D.9 Different building methods
E Personal Experience
References
Published with bookdown
blogdown: Creating Websites with R Markdown
Yihui Xie, Amber Thomas, Alison Presmanes Hill
2018-03-28
Preface

In the summer of 2012, I did my internship at AT&T Labs Research,1 where I attended a talk given by Carlos Scheidegger (https://cscheid.net), and Carlos said something along the lines of “if you don’t have a website nowadays, you don’t exist.” Later I paraphrased it as:

“I web, therefore I am a spiderman.”

Carlos’s words resonated very well with me, although they were a little exaggerated. A well-designed and maintained website can be extremely helpful for other people to know you, and you do not need to wait for suitable chances at conferences or other occasions to introduce yourself in person to other people. On the other hand, a website is also highly useful for yourself to keep track of what you have done and thought. Sometimes you may go back to a certain old post of yours to relearn the tricks or methods you once mastered in the past but have forgotten.

We introduce an R package, blogdown, in this short book, to teach you how to create websites using R Markdown and Hugo. If you have experience with creating websites, you may naturally ask what the benefits of using R Markdown are, and how blogdown is different from existing popular website platforms, such as WordPress. There are two major highlights of blogdown:

It produces a static website, meaning the website only consists of static files such as HTML, CSS, JavaScript, and images, etc. You can host the website on any web server (see Chapter 3 for details). The website does not require server-side scripts such as PHP or databases like WordPress does. It is just one folder of static files. We will explain more benefits of static websites in Chapter 2, when we introduce the static website generator Hugo.

The website is generated from R Markdown documents (R is optional, i.e., you can use plain Markdown documents without R code chunks). This brings a huge amount of benefits, especially if your website is related to data analysis or (R) programming. Being able to use Markdown implies simplicity and more importantly, portability (e.g., you are giving yourself the chance to convert your blog posts to PDF and publish to journals or even books in the future). R Markdown gives you the benefits of dynamic documents — all your results, such as tables, graphics, and inline values, can be computed and rendered dynamically from R code, hence the results you present on your website are more likely to be reproducible. An additional yet important benefit of using R Markdown is that you will be able to write technical documents easily, due to the fact that blogdown inherits the HTML output format from bookdown (Xie 2016). For example, it is possible to write LaTeX math equations, BibTeX citations, and even theorems and proofs if you want.

Please do not be misled by the word “blog” in the package name: blogdown is for general-purpose websites, and not only for blogs. For example, all authors of this book have their personal websites, where you can find information about their projects, blogs, package documentations, and so on.2 All their pages are built from blogdown and Hugo.

If you do not prefer using Hugo, there are other options, too. Chapter 5 presents possibilities of using other site generators, such as Jekyll and rmarkdown’s default site generator.

This book has been published by Chapman & Hall/CRC. The online version of this book is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

References
Xie, Yihui. 2016. Bookdown: Authoring Books and Technical Documents with R Markdown. Boca Raton, Florida: Chapman; Hall/CRC. https://github.com/rstudio/bookdown.

In this book, “I” and “my” refer to Yihui unless otherwise noted.↩

Yihui’s homepage is at https://yihui.name. He writes blog posts in both Chinese (https://yihui.name/cn/) and English (https://yihui.name/en/), and documents his software packages such as knitr (https://yihui.name/knitr/) and animation (https://yihui.name/animation/). Occasionally he also writes articles like https://yihui.name/rlp/ when he finds interesting topics but does not bother with a formal journal submission. Amber’s homepage is at https://amber.rbind.io, where you can find her blog and project pages. Alison’s website is at https://alison.rbind.io, which uses an academic theme at the moment.↩