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/23 20:02] – dsaunde6 | blog:spring2016:dsaunde6:journal [2016/04/21 03:51] (current) – dsaunde6 | ||
---|---|---|---|
Line 13: | Line 13: | ||
====JANUARY 23, 2016==== | ====JANUARY 23, 2016==== | ||
- | ===// | + | ===Mosh is worth a try=== |
- | Ever used an SSH client on your mobile devices, only to have your connection cut out, and then your session goes haywire? It's frustrating and gets old really quick, and there' | + | Ever used an SSH client on your mobile devices, only to have your connection cut out, and then your session goes haywire? It's frustrating and gets old really quick, and there' |
+ | |||
+ | ====JANUARY 30, 2016==== | ||
+ | ===PFSense: A Sensible Free Solution to IOS & Co.=== | ||
+ | This week I decided to do some work on my aging home network, which relied on a Cisco/ | ||
+ | |||
+ | * Setting up passwords | ||
+ | * Associating the ethernet ports with the WAN and LAN interfaces | ||
+ | * Setting up a NAT subnet | ||
+ | * ??? | ||
+ | * PROFIT! | ||
+ | |||
+ | 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:// |