From 5ddc8b631fbdd32bf3368b429c1c7dff95b28f7c Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 14:51:27 +0200 Subject: [PATCH 01/12] Update _config.yml --- _config.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_config.yml b/_config.yml index b2b944bee61a4..58988bbe775b1 100644 --- a/_config.yml +++ b/_config.yml @@ -3,12 +3,12 @@ # # Name of your site (displayed in the header) -name: explore R +name: OpenDGPS # Short bio or description (displayed in the header) -description: by Roland Krasser +description: 2cm GNSS accuracy for the rest of us # URL of your avatar or profile pic (you could use your GitHub profile pic) -avatar: https://avatars1.githubusercontent.com/u/31808268?s=460&u=84df224acc4e3bade7537ccceb1fb5243caec57f&v=4 +# avatar: https://avatars1.githubusercontent.com/u/31808268?s=460&u=84df224acc4e3bade7537ccceb1fb5243caec57f&v=4 # # Flags below are optional # @@ -19,12 +19,12 @@ footer-links: email: facebook: flickr: - github: rolkra + github: OpenDGPS instagram: linkedin: pinterest: rss: # just type anything here for a working RSS icon - twitter: + twitter: OpenDGPS stackoverflow: # your stackoverflow profile, e.g. "users/50476/bart-kiers" youtube: # channel/ or user/ googleplus: # anything in your profile username that comes after plus.google.com/ @@ -32,14 +32,14 @@ footer-links: # Enter your Disqus shortname (not your username) to enable commenting on posts # You can find your shortname on the Settings page of your Disqus account -disqus: +# disqus: # Enter your Google Analytics web tracking code (e.g. UA-2110908-2) to activate tracking -google_analytics: +# google_analytics: # Your website URL (e.g. http://barryclark.github.io or http://www.barryclark.co) # Used for Sitemap.xml and your RSS feed -url: +url: http://opendgps.github.io # If you're hosting your site at a Project repository on GitHub pages # (http://yourusername.github.io/repository-name) From 16881837867f042ea4be89b2df072482eab076ea Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 14:55:43 +0200 Subject: [PATCH 02/12] Delete 2020-7-30-start-to-explore.md --- _posts/2020-7-30-start-to-explore.md | 125 --------------------------- 1 file changed, 125 deletions(-) delete mode 100644 _posts/2020-7-30-start-to-explore.md diff --git a/_posts/2020-7-30-start-to-explore.md b/_posts/2020-7-30-start-to-explore.md deleted file mode 100644 index 722c9e7c925f1..0000000000000 --- a/_posts/2020-7-30-start-to-explore.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -layout: post -title: start to {explore} ---- - -What if exploring data in R is just one line of code? - -```R -explore(data) -``` - -**R would be so much more attractive to people that are used to do data analytics with Excel or a GUI based statistic tool!** - -I really apprechiate the power of coding, but for fresh new R users stepping into coding is not easy. If you start RStudio for the first time, there is not much you can do by just "playing around". You may be able to import a dataset by using the "Import Dataset" button at the Environment pane. But then if you want to do some basic statistics or create some basic plots, you fail because the IDE is not offering any direct support. - -![RStudio start](../images/RStudio-empty.png) - -In a typical introduction to data exploration in R for beginners, you are confronted with more than 25 function names: - -```library()```, ```getwd()```, ```setwd()```, ```c()```, ```data()```, ```data.frame()```, ```read.csv()```, ```str()```, ```head()```, ```tail()```, ```summary()```, ```table()```, ```ggplot()```, ```aes()```, ```geom_point()```, ```geom_bar()```, ```geom_boxplot()```, ```geom_density()```, ```coord_flip()```, ```labs()```, ```theme_light()```, ```select()```, ```filter()```, ```mutate()```, ```summarize()```, ```group_by()```, ```arrange()```, ... - -But cognitive psychology proved, that humans can only keep about 7 new objects in memory ([The magical number 7, by George A. Miller](https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two)) -So you are not able to do the very basic stuff without learning quite a number of different concepts and functions the hard way first. That may be frustrating and feels like a "step backwards" coming from a GUI. - -**I believe using R for the first time should feel like getting new exciting toys you instantly want to use and play with**. - -Thats why I wrote the {explore} package! - -## Interactive Data Science - -For example, to explore the penguins dataset you just need 3 easy to understand lines of code: - -```R -library(palmerpenguins) -library(explore) -explore(penguins) -``` - -This will launch a Shiny App that enables you to explore data with just a few mouse clicks! - -The **variable tab** lets you explore a variable and its relation to a target -![explore penguins](../images/explore-penguins-flipper-species.png) - -The **explain tab** shows a decision tree explaining the target -![explore penguins tree](../images/explore-penguins-explain-species.png) - -The **overview tab** describes all variables, their type, NA-values, min, max ... -![explore penguins overview](../images/explore-penguins-overview.png) - -The **data tab** view the raw data -![explore penguins data](../images/explore-penguins-data.png) - -## Automated Reports - -Furthermore you can create different types of rich HTML-reports of your data by clicking the "report all" button. - -If no target is defined, you get a report of all the variables - -![explore penguins report variables](../images/explore-penguins-report-variables.png) - -If a target is defined, you get a report of the relation between all variables and the target. - -![explore penguins report variables](../images/explore-penguins-report-target.png) - -## Reproducible Data Science - -Of course you can unleash the full power of R only using code, so the {explore} package offers all functionality of the GUI as extremely easy to use R functions to step into coding: -```explore()```, ```describe()```, ```report()```, ```explain_tree()```, ... - -```R -# prepare -library(dplyr) -library(explore) -library(palmerpenguins) -``` - -Describe data: (output is a tibble) - -```R -describe(penguins) -``` -``` -# A tibble: 8 x 8 - variable type na na_pct unique min mean max - -1 species fct 0 0 3 NA NA NA -2 island fct 0 0 3 NA NA NA -3 bill_length_mm dbl 2 0.6 165 32.1 43.9 59.6 -4 bill_depth_mm dbl 2 0.6 81 13.1 17.2 21.5 -5 flipper_length_mm int 2 0.6 56 172 201. 231 -6 body_mass_g int 2 0.6 95 2700 4202. 6300 -7 sex fct 11 3.2 3 NA NA NA -8 year int 0 0 3 2007 2008. 2009 -``` - -Explore variables: (output is a plot) - -```R -# explore variable -penguins %>% explore(island) -penguins %>% explore(flipper_length_mm) - -# explore relationship with target -penguins %>% explore(island, target = species) -penguins %>% explore(flipper_length_mm, target = species) -``` - -Create a Decision Tree: (output is the tree plot) -```R -penguins %>% explain_tree(target = species) -``` - -## Conclusion - -Interactive Data Exploration helps new users to step into R. - -To get more options and possibilities these users will switch to coding using just a handful of simple functions of the {explore} package. - -After a while these new R users will naturally go into the direction of reproducible datascience with rmarkdown and will discover new packages like {dplyr}, {ggplot2}, {tidyr} - -**So I believe the {explore} package offers an easy learning path, specially for people coming from a GUI, to have a successful start with R and stay with it in the long run.** - -Let’s explore! - - From 6f6ab2c9473c1b3db0bad55a0c41efbef4ac20bb Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 15:00:13 +0200 Subject: [PATCH 03/12] Create 2020_10_02-HFFD.md --- _posts/2020_10_02-HFFD.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 _posts/2020_10_02-HFFD.md diff --git a/_posts/2020_10_02-HFFD.md b/_posts/2020_10_02-HFFD.md new file mode 100644 index 0000000000000..dfd67a216d871 --- /dev/null +++ b/_posts/2020_10_02-HFFD.md @@ -0,0 +1,10 @@ +--- +layout: post +title: Host File Fast Decoding +--- + +Decode Mainframe Data by the speed of light with a GPU. + +```CUDA +__device hffd(EBCDIC) {} +``` From dc38b9d820ca931ca9777ec5e4459a579eca3091 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 15:01:43 +0200 Subject: [PATCH 04/12] Rename 2020_10_02-HFFD.md to 2020-10-02-HFFD.md --- _posts/{2020_10_02-HFFD.md => 2020-10-02-HFFD.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2020_10_02-HFFD.md => 2020-10-02-HFFD.md} (100%) diff --git a/_posts/2020_10_02-HFFD.md b/_posts/2020-10-02-HFFD.md similarity index 100% rename from _posts/2020_10_02-HFFD.md rename to _posts/2020-10-02-HFFD.md From b4abc22be85c7d37a3eb5533c8ef2c1ccf62692f Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 15:03:45 +0200 Subject: [PATCH 05/12] Update about.md --- about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about.md b/about.md index b3098e486ae45..5753e6607e422 100644 --- a/about.md +++ b/about.md @@ -4,4 +4,4 @@ title: About permalink: /about/ --- -I am a Data Scientist using R in daily business life. +I am a Enterprise Data Architect most of the day. From 1c9f442839e0559dec6af8204fee04b3c0bd45c4 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 16:51:09 +0200 Subject: [PATCH 06/12] Delete 2020-9-17-explore-count-data.md --- _posts/2020-9-17-explore-count-data.md | 200 ------------------------- 1 file changed, 200 deletions(-) delete mode 100644 _posts/2020-9-17-explore-count-data.md diff --git a/_posts/2020-9-17-explore-count-data.md b/_posts/2020-9-17-explore-count-data.md deleted file mode 100644 index 219f4d30f7c43..0000000000000 --- a/_posts/2020-9-17-explore-count-data.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -layout: post -title: Let's {explore} count-data! ---- - -{explore} simplifies Exploratory Data Analysis (EDA) ... now you can use {explore} with count-data too! Let's take a look at the Titanic dataset! - -![Titanic](../images/explore-count-titanic.jpg) - -## What are count-data? - -Data are stored in tables most of the time. This data is called **tidy** if: - -* Each row is an observation -* Each column is a variable -* Each cell is a value - -So in a tidy Titanic-dataset each row is representing a person on the ship. -Each column is representing a variable (like age or gender). And each cell is representing a value (like the gender of a specific person is "Male") - -```R -titanic_tidy -``` -``` -# A tibble: 2,201 x 5 - id Class Sex Age Survived - - 1 1 3rd Male Child No - 2 2 3rd Male Child No - 3 3 3rd Male Child No - 4 4 3rd Male Child No - 5 5 3rd Male Child No - 6 6 3rd Male Child No - 7 7 3rd Male Child No - 8 8 3rd Male Child No - 9 9 3rd Male Child No -10 10 3rd Male Child No -# ... with 2,191 more rows -``` - -We see that the first 10 observations are similar except the id. So the basic idea of having count-data is, to group all similar observations and add a count variable. Let's use the Titanic dataset that comes with Base R: - -```R -library(tidyverse) -titanic <- as_tibble(Titanic) -``` -``` -# A tibble: 32 x 5 - Class Sex Age Survived n - - 1 1st Male Child No 0 - 2 2nd Male Child No 0 - 3 3rd Male Child No 35 - 4 Crew Male Child No 0 - 5 1st Female Child No 0 - 6 2nd Female Child No 0 - 7 3rd Female Child No 17 - 8 Crew Female Child No 0 - 9 1st Male Adult No 118 -10 2nd Male Adult No 154 -# ... with 22 more rows -``` - -Now we have a table with just 32 rows instead of 2201 without any lost of information! - -**Count-data**: - -* Each row is a group of observations with similar attributes -* One column is a numeric variable representing the number of observations -* The rest of the columns are categorical variables -* Each cell is a value - -So, what is the benefit of using count-data instead of tidy-data? Using count data will save a lot of memory and disk space and you will explore the data much faster! - -| Titanic dataset | rows | file size csv | -|-------------------|-----------|---------------| -| tidy-data | 2201 | 85 KB | -| count-data | 32 | 2 KB | -| | 1.5% | 2.4% | - -For the Titanic-data it may not make much a difference, as the data is small anyway. But if you think of a dataset with millions of observations but low number of variables or low variation in the data, using count data will save a lot of memory and disk space and you will explore the data much faster! - -## Describe count-data - -We can use {explore} to take a closer look to the data: - -```R -library(tidyverse) -library(explore) -titanic <- as_tibble(Titanic) -titanic %>% describe() -``` -``` -# A tibble: 5 x 8 - variable type na na_pct unique min mean max - -1 Class chr 0 0 4 NA NA NA -2 Sex chr 0 0 2 NA NA NA -3 Age chr 0 0 2 NA NA NA -4 Survived chr 0 0 2 NA NA NA -5 n dbl 0 0 22 0 68.8 670 -``` - -Thera are 5 variables in the data, the variable n is representing the number of the observations. -To take a look at the size of the "uncounted" data, we can simply: - -```R -titanic %>% describe_tbl(n = n) -``` -``` -2 201 (2.2k) observations with 5 variables -0 observations containing missings (NA) -0 variables containing missings (NA) -0 variables with no variance -``` -We see that the 32 rows of the data contains 2201 observations and 5 variables (one is containing the number of observations) - -## Explore count-data - -We can visually explore a variable of the count-data simply using the explore function: - -```R -titanic %>% - explore(Class, n = n) -``` -![explore class](../images/explore-count-class.png) - -So about 40% of all people on the Titanic were Crew-Members! - -We can visually explore the relationship between a variable and a target: - -```R -titanic %>% - explore(Class, target = Survived, n = n) -``` -![explore class](../images/explore-count-classtarget.png) - -Bars of the same color sum up to 100%. If there is a large difference in bar-length between colors, there is an interesting pattern. -So Crew Members had a much lower chance to survive than Passengers in 1st class. - -We can even explore all variables in one line of code: - -```R -titanic %>% - explore_all(n = n) -``` - -And the relationship of all variables with a target: - -![explore all variables](../images/explore-count-allvariables.png) - -```R -titanic %>% - explore_all(target = Survived, n = n) -``` - -![explore_all_variables_targets](../images/explore-count-alltargets.png) - -## Report count-data - -We can generate a rich HTML-report with just one line of code: - -```R -titanic %>% - report(n = n, output_dir = tempdir()) -``` -[View report:](https://htmlpreview.github.io/?https://github.com/rolkra/rolkra.github.io/blob/master/images/report_variable.html) - -To get a reoprt of the relationship between all variables and the target: - -```R -titanic %>% - report(target = Survived, n = n, output_dir = tempdir()) -``` - -[View report:](https://htmlpreview.github.io/?https://github.com/rolkra/rolkra.github.io/blob/master/images/report_target_split.html) - -## Explain a target - -We can create a simple decision tree to explain a target (in our case Survived) - -```R -titanic %>% - explain_tree(target = Survived, n = n) -``` -![explain_target](../images/explore-count-explain.png) - -So, overall 32% of the people survived. This is shown in the top-node. "target = No" means that the majority (50% or more) of passengers did not survive. 0.32 is the proportion of passengers that survived (32%) and 100% is the percentage of all passengers that are in this node. - -Splitting by Gender already shows a strong pattern: only 21% of all male survived, but 73% of all female. Taking a closer look to females, we see that better classes had better chances to survive (46% of 3rd class survived, but 93% of better classes) - -## Links - -{explore} is on [CRAN](https://cran.r-project.org/web/packages/explore/index.html) - -There you find some more examples how to use it: -* [Explore penguins](https://cran.r-project.org/web/packages/explore/vignettes/explore_penguins.html) -* [Explore mtcars](https://cran.r-project.org/web/packages/explore/vignettes/explore_mtcars.html) -* [Explore titanic](https://cran.r-project.org/web/packages/explore/vignettes/explore_titanic.html) - From 9b139a4aa35fe74ee457adbaeb75804d8a548d07 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Fri, 2 Oct 2020 16:51:44 +0200 Subject: [PATCH 07/12] Delete 2020-9-3-never-trust-an-average.md --- _posts/2020-9-3-never-trust-an-average.md | 126 ---------------------- 1 file changed, 126 deletions(-) delete mode 100644 _posts/2020-9-3-never-trust-an-average.md diff --git a/_posts/2020-9-3-never-trust-an-average.md b/_posts/2020-9-3-never-trust-an-average.md deleted file mode 100644 index 589b73a761a19..0000000000000 --- a/_posts/2020-9-3-never-trust-an-average.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -layout: post -title: Never trust an average! ---- - -Averages are very common. But can we trust them? - -## What is an average? - -In daily life we use “average” as a single number taken as representative of a list of numbers. In mathematics they are often called “mean”. -The mathematical definition of average (mean) is: - -**average = the sum of the values / the number of values** - -## 50 people in a bus - -![Who is in the bus?](../images/average-bus.jpg) - -Let’s start with an example: There are 50 people in a bus. Let’s assume they are kids, and most of them are in the age between 6 and 8. - -```R -set.seed(123) # to make it reproducible -people <- data.frame(age = rnorm(50, mean = 7, sd = 1)) -``` - -To explore the data we are using {tidyverse} and {explore} - -```R -library(tidyverse) -library(explore) -``` - -To calculate the average age of the people we can use the describe() function of {explore}. - -```R -people %>% describe(age) -``` -``` -## variable = age -## type = double -## na = 0 of 50 (0%) -## unique = 50 -## min|max = 5.033383 | 9.168956 -## q05|q95 = 5.734754 | 8.644704 -## q25|q75 = 6.440683 | 7.698177 -## median = 6.9 -## mean = 7.034404 -``` - -So the average age (mean) is 7 years. We can plot the age distribution using explore() - -```R -people %>% - explore(age, title = "Distribution of age and its mean") + - geom_vline(xintercept = 7.03, color = "red") -``` -![Average = 7](../images/average-age-1.png) - -So if you tell someone that there is a bus arriving with 50 people 7 year old in average, they will think of 50 kids about 7 years old. And thats pretty ok. Even if the kids are actually between 5 and 9 years old, one single number (the average) helps to understand the whole group of people. Awesome! - -## The bus driver! - -But wait! We forgot the bus driver. Let’s say he is 60 years old. How does that change the average? - -```R -people <- people %>% add_row(age = 60) -people %>% describe(age) -``` -``` -## variable = age -## type = double -## na = 0 of 51 (0%) -## unique = 51 -## min|max = 5.033383 | 60 -## q05|q95 = 5.734771 | 8.750989 -## q25|q75 = 6.441842 | 7.740661 -## median = 6.9 -## mean = 8.072945 -``` - -The average (mean) is increasing from 7 to 8 years. So the average is still useful, as almost all people in the bus are at least kids and the age of 8 years may be a useful orientation. But we may completely miss that there is an adult in the bus. - -If we take a look to the distribution we see that the average is moving too much to the right" to be representative for the people. - -```R -people %>% - explore(age, title = "Distribution of age and its mean") + - geom_vline(xintercept = 8.07, color = "red") -``` - -![Average = 8](../images/average-age-2.png) - -## The bug! - -But what happens if we don’t have clean data, and we add a person with age 5000? That could happen by mistyping (instead of age 50.00 by missing the “.” ) - -```R -people <- people %>% add_row(age = 5000) -people %>% describe(age) -``` -``` -## variable = age -## type = double -## na = 0 of 52 (0%) -## unique = 52 -## min|max = 5.033383 | 5 000 -## q05|q95 = 5.734788 | 8.958832 -## q25|q75 = 6.443 | 7.790369 -## median = 7 -## mean = 104.0715 -``` - -Just knowing the average age of these people, we expect a group of over 100 year old! - -![Average = 104](../images/average-bus-oldladies2.jpg) - -Now we have the situation that the average is completely useless. Non of the real people is even close to 100 years old! - -But take a look to the median, which is still 7! - -## Conclusion - -**Never trust an average!** - -One single extreme value can “destroy” the value of an average. If you base important decisions just on averages, there is high danger of failing. Use median instead or take a look at the real distribution! - From 40a3b2fece526a4c80b0a42483638c5c958a71e8 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Wed, 2 Dec 2020 14:42:59 +0100 Subject: [PATCH 08/12] Create 2020-12-02-OpenDGPS.md --- _posts/2020-12-02-OpenDGPS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 _posts/2020-12-02-OpenDGPS.md diff --git a/_posts/2020-12-02-OpenDGPS.md b/_posts/2020-12-02-OpenDGPS.md new file mode 100644 index 0000000000000..99e9ac7d3d06a --- /dev/null +++ b/_posts/2020-12-02-OpenDGPS.md @@ -0,0 +1,12 @@ +# OpenDGPS +Differential GPS for the rest of us! + +OpenDGPS ist eine lockere Versammlung von Leuten, die sich mit dem Thema satellitengestützte Ortung beschäftigen. Unser Ziel ist es, ein Netzwerk von festen Stationen aufzubauen, die ihre Differential-GPS-Daten allen kostenfrei zur Verfügung stellen. + +Wir glauben, dass Crowdsourcing die ideale Methode ist, um dieses Ziel zu erreichen. Je mehr Nutzer sich beteiligen, desto besser wird das Netz der fixen Stationen und desto höher wird die Genauigkeit für jeden Nutzer. + +Um dieses Ziel zu erreichen, müssen unterschiedliche Themen bearbeitet werden. Ganz oben auf der Liste steht die Sammlung und Bereitstellung von Software, die für den Betrieb des Netzes notwendig ist. Ausserdem werden wir alle Informationen über verfügbare Hardware sammeln und aufbereiten. Wir werden eine Datenbank über die installierten Stationen aufbauen und Dienste einrichten, die über die Verfügbarkeit der Stationen informieren. + +Bisher haben wir verschiedene Module im Test. Zum Einsatz kommen derzeit gpsd unter Linux auf Raspberry Pi und unter MacOSX auf einem 12″ Powerbook. Derzeit suchen wir noch nach einer OpenWRT, da diese prinzipiell in der Lage sein müsste, die Roh-Daten der Satelliten an Server zum Prozessing mit der RTKLIB zu senden. + +Wir hoffen, dass wir im Frühjahr 2013 die ersten Referenzstationen betriebsbereit haben werden. From 5e11d854d43f5316e036cfe85958a9533c103183 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Wed, 2 Dec 2020 14:43:21 +0100 Subject: [PATCH 09/12] Delete 2020-10-02-HFFD.md --- _posts/2020-10-02-HFFD.md | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 _posts/2020-10-02-HFFD.md diff --git a/_posts/2020-10-02-HFFD.md b/_posts/2020-10-02-HFFD.md deleted file mode 100644 index dfd67a216d871..0000000000000 --- a/_posts/2020-10-02-HFFD.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: post -title: Host File Fast Decoding ---- - -Decode Mainframe Data by the speed of light with a GPU. - -```CUDA -__device hffd(EBCDIC) {} -``` From 5dacb852ff44068445177214092b3c2815a629a6 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Wed, 2 Dec 2020 14:44:22 +0100 Subject: [PATCH 10/12] Update 2020-12-02-OpenDGPS.md --- _posts/2020-12-02-OpenDGPS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2020-12-02-OpenDGPS.md b/_posts/2020-12-02-OpenDGPS.md index 99e9ac7d3d06a..9e457feda65a4 100644 --- a/_posts/2020-12-02-OpenDGPS.md +++ b/_posts/2020-12-02-OpenDGPS.md @@ -1,5 +1,4 @@ -# OpenDGPS -Differential GPS for the rest of us! +## about OpenDGPS ist eine lockere Versammlung von Leuten, die sich mit dem Thema satellitengestützte Ortung beschäftigen. Unser Ziel ist es, ein Netzwerk von festen Stationen aufzubauen, die ihre Differential-GPS-Daten allen kostenfrei zur Verfügung stellen. From c4b13cbfb4970a7d7c7916de9db8a43a85d1f547 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Wed, 2 Dec 2020 14:46:28 +0100 Subject: [PATCH 11/12] Update and rename 2020-12-02-OpenDGPS.md to 2020-12-02-about.md --- _posts/{2020-12-02-OpenDGPS.md => 2020-12-02-about.md} | 2 -- 1 file changed, 2 deletions(-) rename _posts/{2020-12-02-OpenDGPS.md => 2020-12-02-about.md} (99%) diff --git a/_posts/2020-12-02-OpenDGPS.md b/_posts/2020-12-02-about.md similarity index 99% rename from _posts/2020-12-02-OpenDGPS.md rename to _posts/2020-12-02-about.md index 9e457feda65a4..994f3b77ebc5f 100644 --- a/_posts/2020-12-02-OpenDGPS.md +++ b/_posts/2020-12-02-about.md @@ -1,5 +1,3 @@ -## about - OpenDGPS ist eine lockere Versammlung von Leuten, die sich mit dem Thema satellitengestützte Ortung beschäftigen. Unser Ziel ist es, ein Netzwerk von festen Stationen aufzubauen, die ihre Differential-GPS-Daten allen kostenfrei zur Verfügung stellen. Wir glauben, dass Crowdsourcing die ideale Methode ist, um dieses Ziel zu erreichen. Je mehr Nutzer sich beteiligen, desto besser wird das Netz der fixen Stationen und desto höher wird die Genauigkeit für jeden Nutzer. From e5d367e55fd6779a01bf559d588ae931e011d768 Mon Sep 17 00:00:00 2001 From: Rene Meissner Date: Tue, 8 Dec 2020 11:56:37 +0100 Subject: [PATCH 12/12] Update README.md --- README.md | 121 +----------------------------------------------------- 1 file changed, 1 insertion(+), 120 deletions(-) diff --git a/README.md b/README.md index 45c202063a374..8bd627495e1fe 100644 --- a/README.md +++ b/README.md @@ -1,120 +1 @@ -> March, 2016: If you're on an old version of Jekyll Now and run into a) build warnings or b) syntax highlighting issues caused by [Jekyll 3 and GitHub Pages updates](https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0), just :sparkles:[update your _config.yml](https://github.com/barryclark/jekyll-now/pull/445/files):sparkles: and you'll be set! - -# Jekyll Now - -**Jekyll** is a static site generator that's perfect for GitHub hosted blogs ([Jekyll Repository](https://github.com/jekyll/jekyll)) - -**Jekyll Now** makes it easier to create your Jekyll blog, by eliminating a lot of the up front setup. - -- You don't need to touch the command line -- You don't need to install/configure ruby, rvm/rbenv, ruby gems :relaxed: -- You don't need to install runtime dependencies like markdown processors, Pygments, etc -- If you're on Windows, this will make setting up Jekyll a lot easier -- It's easy to try out, you can just delete your forked repository if you don't like it - -In a few minutes you'll be set up with a minimal, responsive blog like the one below giving you more time to spend on writing epic blog posts! - -![Jekyll Now Theme Screenshot](/images/jekyll-now-theme-screenshot.jpg "Jekyll Now Theme Screenshot") - -## Quick Start - -### Step 1) Fork Jekyll Now to your User Repository - -Fork this repo, then rename the repository to yourgithubusername.github.io. - -Your Jekyll blog will often be viewable immediately at (if it's not, you can often force it to build by completing step 2) - -![Step 1](/images/step1.gif "Step 1") - -### Step 2) Customize and view your site - -Enter your site name, description, avatar and many other options by editing the _config.yml file. You can easily turn on Google Analytics tracking, Disqus commenting and social icons here too. - -Making a change to _config.yml (or any file in your repository) will force GitHub Pages to rebuild your site with jekyll. Your rebuilt site will be viewable a few seconds later at - if not, give it ten minutes as GitHub suggests and it'll appear soon - -> There are 3 different ways that you can make changes to your blog's files: - -> 1. Edit files within your new username.github.io repository in the browser at GitHub.com (shown below). -> 2. Use a third party GitHub content editor, like [Prose by Development Seed](http://prose.io). It's optimized for use with Jekyll making markdown editing, writing drafts, and uploading images really easy. -> 3. Clone down your repository and make updates locally, then push them to your GitHub repository. - -![_config.yml](/images/config.png "_config.yml") - -### Step 3) Publish your first blog post - -Edit `/_posts/2014-3-3-Hello-World.md` to publish your first blog post. This [Markdown Cheatsheet](http://www.jekyllnow.com/Markdown-Style-Guide/) might come in handy. - -![First Post](/images/first-post.png "First Post") - -> You can add additional posts in the browser on GitHub.com too! Just hit the + icon in `/_posts/` to create new content. Just make sure to include the [front-matter](http://jekyllrb.com/docs/frontmatter/) block at the top of each new blog post and make sure the post's filename is in this format: year-month-day-title.md - -## Local Development - -1. Install Jekyll and plug-ins in one fell swoop. `gem install github-pages` This mirrors the plug-ins used by GitHub Pages on your local machine including Jekyll, Sass, etc. -2. Clone down your fork `git clone https://github.com/yourusername/yourusername.github.io.git` -3. Serve the site and watch for markup/sass changes `jekyll serve` -4. View your website at http://127.0.0.1:4000/ -5. Commit any changes and push everything to the master branch of your GitHub user repository. GitHub Pages will then rebuild and serve your website. - -## Moar! - -I've created a more detailed walkthrough, [**Build A Blog With Jekyll And GitHub Pages**](http://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/) over at the Smashing Magazine website. Check it out if you'd like a more detailed walkthrough and some background on Jekyll. :metal: - -It covers: - -- A more detailed walkthrough of setting up your Jekyll blog -- Common issues that you might encounter while using Jekyll -- Importing from Wordpress, using your own domain name, and blogging in your favorite editor -- Theming in Jekyll, with Liquid templating examples -- A quick look at Jekyll 2.0’s new features, including Sass/Coffeescript support and Collections - -## Jekyll Now Features - -✓ Command-line free _fork-first workflow_, using GitHub.com to create, customize and post to your blog -✓ Fully responsive and mobile optimized base theme (**[Theme Demo](http://jekyllnow.com)**) -✓ Sass/Coffeescript support using Jekyll 2.0 -✓ Free hosting on your GitHub Pages user site -✓ Markdown blogging -✓ Syntax highlighting -✓ Disqus commenting -✓ Google Analytics integration -✓ SVG social icons for your footer -✓ 3 http requests, including your avatar - -✘ No installing dependencies -✘ No need to set up local development -✘ No configuring plugins -✘ No need to spend time on theming -✘ More time to code other things ... wait ✓! - -## Questions? - -[Open an Issue](https://github.com/barryclark/jekyll-now/issues/new) and let's chat! - -## Other forkable themes - -You can use the [Quick Start](https://github.com/barryclark/jekyll-now#quick-start) workflow with other themes that are set up to be forked too! Here are some of my favorites: - -- [Hyde](https://github.com/poole/hyde) by MDO -- [Lanyon](https://github.com/poole/lanyon) by MDO -- [mojombo.github.io](https://github.com/mojombo/mojombo.github.io) by Tom Preston-Werner -- [Left](https://github.com/holman/left) by Zach Holman -- [Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes) by Michael Rose -- [Skinny Bones](https://github.com/mmistakes/skinny-bones-jekyll) by Michael Rose - -## Credits - -- [Jekyll](https://github.com/jekyll/jekyll) - Thanks to its creators, contributors and maintainers. -- [SVG icons](https://github.com/neilorangepeel/Free-Social-Icons) - Thanks, Neil Orange Peel. They're beautiful. -- [Solarized Light Pygments](https://gist.github.com/edwardhotchkiss/2005058) - Thanks, Edward. -- [Joel Glovier](http://joelglovier.com/writing/) - Great Jekyll articles. I used Joel's feed.xml in this repository. -- [David Furnes](https://github.com/dfurnes), [Jon Uy](https://github.com/jonuy), [Luke Patton](https://github.com/lkpttn) - Thanks for the design/code reviews. -- [Bart Kiers](https://github.com/bkiers), [Florian Simon](https://github.com/vermluh), [Henry Stanley](https://github.com/henryaj), [Hun Jae Lee](https://github.com/hunjaelee), [Javier Cejudo](https://github.com/javiercejudo), [Peter Etelej](https://github.com/etelej), [Ben Abbott](https://github.com/jaminscript), [Ray Nicholus](https://github.com/rnicholus), [Erin Grand](https://github.com/eringrand), [Léo Colombaro](https://github.com/LeoColomb), [Dean Attali](https://github.com/daattali), [Clayton Errington](https://github.com/cjerrington), [Colton Fitzgerald](https://github.com/coltonfitzgerald), [Trace Mayer](https://github.com/sunnankar) - Thanks for your [fantastic contributions](https://github.com/barryclark/jekyll-now/commits/master) to the project! - -## Contributing - -Issues and Pull Requests are greatly appreciated. If you've never contributed to an open source project before I'm more than happy to walk you through how to create a pull request. - -You can start by [opening an issue](https://github.com/barryclark/jekyll-now/issues/new) describing the problem that you're looking to resolve and we'll go from there. - -I want to keep Jekyll Now as minimal as possible. Every line of code should be one that's useful to 90% of the people using it. Please bear that in mind when submitting feature requests. If it's not something that most people will use, it probably won't get merged. :guardsman: +# [OpenDGPS](http://opendgps.github.io)