This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
blog:spring2016:dsaunde6:journal [2016/01/31 05:06] – dsaunde6 | blog:spring2016:dsaunde6:journal [2016/04/21 03:51] (current) – dsaunde6 | ||
---|---|---|---|
Line 27: | Line 27: | ||
All in all, PFSense has been really stable. It runs very light, even with OpenVPN and other add-ons installed. I would recommend it to anyone looking for a cost-effective solution to enterprise products. | All in all, PFSense has been really stable. It runs very light, even with OpenVPN and other add-ons installed. I would recommend it to anyone looking for a cost-effective solution to enterprise products. | ||
+ | |||
+ | ====FEBRUARY 7, 2016==== | ||
+ | ===IRC: A chat system that just works.=== | ||
+ | Most people are confused when you pose the term " | ||
+ | |||
+ | * It's tried and true. | ||
+ | * It's free. | ||
+ | * You can start your own server should you want one. | ||
+ | * Bots and helpers for it exist everywhere. | ||
+ | * Twitch.tv is a notable user. | ||
+ | * It's easy to use. | ||
+ | |||
+ | ..the list goes on. It's simply a powerful messaging system that lives up to it's expectations and then some. | ||
+ | |||
+ | ====MARCH 13, 2016==== | ||
+ | ===Go: Good for systems & web programming=== | ||
+ | Go is a relatively new programming language. With design cues from the original creators of C, Go was designed to be a modern successor, with garbage collection, documentation system, and most importantly, | ||
+ | <file go> | ||
+ | // Copyright 2010 The Go Authors. All rights reserved. | ||
+ | // Use of this source code is governed by a BSD-style | ||
+ | // license that can be found in the LICENSE file. | ||
+ | |||
+ | package main | ||
+ | |||
+ | import ( | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | |||
+ | type Page struct { | ||
+ | Title string | ||
+ | Body []byte | ||
+ | } | ||
+ | |||
+ | func (p *Page) save() error { | ||
+ | filename := p.Title + " | ||
+ | return ioutil.WriteFile(filename, | ||
+ | } | ||
+ | |||
+ | func loadPage(title string) (*Page, error) { | ||
+ | filename := title + " | ||
+ | body, err := ioutil.ReadFile(filename) | ||
+ | if err != nil { | ||
+ | return nil, err | ||
+ | } | ||
+ | return & | ||
+ | } | ||
+ | |||
+ | func viewHandler(w http.ResponseWriter, | ||
+ | p, err := loadPage(title) | ||
+ | if err != nil { | ||
+ | http.Redirect(w, | ||
+ | return | ||
+ | } | ||
+ | renderTemplate(w, | ||
+ | } | ||
+ | |||
+ | func editHandler(w http.ResponseWriter, | ||
+ | p, err := loadPage(title) | ||
+ | if err != nil { | ||
+ | p = & | ||
+ | } | ||
+ | renderTemplate(w, | ||
+ | } | ||
+ | |||
+ | func saveHandler(w http.ResponseWriter, | ||
+ | body := r.FormValue(" | ||
+ | p := & | ||
+ | err := p.save() | ||
+ | if err != nil { | ||
+ | http.Error(w, | ||
+ | return | ||
+ | } | ||
+ | http.Redirect(w, | ||
+ | } | ||
+ | |||
+ | var templates = template.Must(template.ParseFiles(" | ||
+ | |||
+ | func renderTemplate(w http.ResponseWriter, | ||
+ | err := templates.ExecuteTemplate(w, | ||
+ | if err != nil { | ||
+ | http.Error(w, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | var validPath = regexp.MustCompile(" | ||
+ | |||
+ | func makeHandler(fn func(http.ResponseWriter, | ||
+ | return func(w http.ResponseWriter, | ||
+ | m := validPath.FindStringSubmatch(r.URL.Path) | ||
+ | if m == nil { | ||
+ | http.NotFound(w, | ||
+ | return | ||
+ | } | ||
+ | fn(w, r, m[2]) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | func main() { | ||
+ | http.HandleFunc("/ | ||
+ | http.HandleFunc("/ | ||
+ | http.HandleFunc("/ | ||
+ | |||
+ | http.ListenAndServe(": | ||
+ | } | ||
+ | </ | ||
+ | With efficiency like that, Go is able to handle [[http:// | ||
+ | In summary, Go is a powerful, fast, and modern nod to C. | ||
+ | |||
+ | ====APRIL 4, 2016==== | ||
+ | ===Reddit' | ||
+ | [[http:// | ||
+ | , a product of a reddit April Fool's Day joke, is incredibly popular. Users decide whether to //stay//, //grow//, or //abandon// the room, with those who abstain from voting automatically opting with // | ||
+ | |||
+ | ====APRIL 20, 2016==== | ||
+ | ===Ubuntu MATE: A GNOME legacy worth using=== | ||
+ | [[http:// |