davideisinger.com

My personal website
Log | Files | Refs | README

index.md (9306B)


      1 ---
      2 title: "Things About Which The Viget Devs Are Excited (May 2020 Edition)"
      3 date: 2020-05-14T00:00:00+00:00
      4 draft: false
      5 canonical_url: https://www.viget.com/articles/things-about-which-the-viget-devs-are-excited-may-2020-edition/
      6 ---
      7 
      8 A couple months back, the Viget dev team convened in central Virginia to
      9 reflect on the year and plan for the future. As part of the meeting, we
     10 did a little show-and-tell, where everyone got the chance to talk about
     11 a technology or resource that's attracted their interest. Needless to
     12 say, *plans have changed*, but what hasn't changed are our collective
     13 curiosity about nerdy things and our desire to share them with one
     14 another and with you, internet person. So with that said, here's
     15 what's got us excited in the world of programming, technology, and web
     16 development.
     17 
     18 ## [Annie](https://www.viget.com/about/team/akiley)
     19 
     20 I'm excited about Wagtail CMS for Django projects. It provides a lot of
     21 high-value content management features (hello permissions management and
     22 photo cropping) so you don't need to reinvent the wheel, but it lets you
     23 customize behavior when you need to. We've had two projects lately that
     24 need a sophisticated CMS to manage data that we serve through an API,
     25 and Wagtail has allowed us to get a solid CMS up and running and focus
     26 on the business logic behind the API.
     27 
     28 -   <https://wagtail.io/>
     29 
     30 ## [Chris M.](https://www.viget.com/about/team/cmanning)
     31 
     32 Svelte is a component framework for building user interfaces. It's
     33 purpose is similar to other frameworks like React and Vue, but I'm
     34 excited about Svelte because of its differences.
     35 
     36 For example, instead of a virtual DOM, Svelte compiles your component to
     37 more performant imperative code. And Svelte is reactive, so updating a
     38 variable is just that: there's no need to call `setState` or a similar
     39 API to trigger updates. Differences like these offer less boilerplate
     40 and better performance from the start.
     41 
     42 The Svelte community is also working on Sapper, an application framework
     43 for server-side rendering similar to Next.js.
     44 
     45 -   <https://svelte.dev/>
     46 -   <https://sapper.svelte.dev/>
     47 
     48 ## [Danny](https://www.viget.com/about/team/dbrown)
     49 
     50 I've been researching the Golang MVC framework, Revel. At Viget, we
     51 often use Ruby on Rails for any projects that need an MVC framework. I
     52 enjoy programming in Go, so I started researching what they have to
     53 offer in that department. Revel seemed to be created to be mimic Rails
     54 or other MVC frameworks, which made it very easy to pick up for a Rails
     55 developer. The main differences come in the language distinctions
     56 between Golang and Ruby.
     57 
     58 Namely, the statically-typed, very explicit Go contrasts greatly with
     59 Ruby when comparing similar features. For most cases, it takes more
     60 lines of code in Go to achieve similar things, though that is not
     61 necessarily a bad thing. Additionally, standard Go ships with an
     62 incredible amount of useful packages, making complex features in
     63 Go/Revel require fewer dependencies. Finally, Go is an incredibly fast
     64 language. For very large projects, Go is often a great language to use,
     65 so that you can harness its power. However, for smaller-scale projects,
     66 it can be a bit overkill.
     67 
     68 -   <https://revel.github.io/>
     69 
     70 ## [David](https://www.viget.com/about/team/deisinger)
     71 
     72 I'm excited about [Manjaro Linux running the i3 tiling window
     73 manager](https://manjaro.org/download/community/i3/). I picked up an old
     74 Thinkpad and installed this combo, and I've been impressed with how fun
     75 and usable it is, and how well it runs on a circa-2008 computer. For
     76 terminal-focused workflows, this setup is good as hell. Granted, it's
     77 Linux, so there's still a fair bit of fiddling required to get things
     78 working exactly as you'd like, but for a hobbyist OS nerd like me,
     79 that's all part of the fun.
     80 
     81 ## [Doug](https://www.viget.com/about/team/davery)
     82 
     83 The improvements to iOS Machine Learning have been exciting --- it's
     84 easier than ever to build iOS apps that can recognize speech, identify
     85 objects, and even train themselves on-device without needing a network.
     86 The Create ML tool simplifies the model training flow, allowing any iOS
     87 dev to jump in with very little experience.
     88 
     89 ML unlocks powerful capabilities for mobile apps, allowing apps to
     90 recognize and act on data the way a user would. It's a fascinating area
     91 of native app dev, and one we'll see a lot more of in apps over the next
     92 few years.
     93 
     94 -   <https://developer.apple.com/machine-learning/core-ml/>
     95 -   <https://developer.apple.com/videos/play/wwdc2018/703>
     96 -   [https://developer.apple.com/documentation/createml/…](https://developer.apple.com/documentation/createml/creating_an_image_classifier_model)
     97 
     98 ## [Dylan](https://www.viget.com/about/team/dlederle-ensign)
     99 
    100 I've been diving into LiveView, a new library for the Elixir web
    101 framework, Phoenix. It enables the sort of fluid, realtime interfaces
    102 we'd normally make with a Javascript framework like React, without
    103 writing JavaScript by hand. Instead, the logic stays on the server and
    104 the LiveView.js library is responsible for updating the DOM when state
    105 changes. It's a cool new approach that could be a nice option in
    106 between static server rendered pages and a full single page app
    107 framework.
    108 
    109 -   <https://www.viget.com/articles/what-is-phoenix-liveview/>
    110 -   <https://blog.appsignal.com/2019/06/18/elixir-alchemy-building-go-with-phoenix-live-view.html>
    111 
    112 ## [Eli](https://www.viget.com/about/team/efatsi)
    113 
    114 I've been building a "Connected Chessboard" off and on for the last 3
    115 years with my brother. There's a lot of fun stuff on the firmware side
    116 of things, using OO concepts to organize move detection using analog
    117 light sensors. But the coolest thing I recently learned was how to make
    118 use of [analog multiplexers](https://www.sparkfun.com/products/13906).
    119 With three input pins, you provide a binary representation of a number
    120 0-7, and the multiplexer then performs magic to pipe input/output data
    121 through one of 8 pins. By linking 8 of these together, and then a 9th
    122 multiplexer on top of those (thanks chessboard for being an 8x8 square),
    123 I can take 64 analog readings using only 7 IO pins. #how-neat-is-that
    124 
    125 ## [Joe](https://www.viget.com/about/team/jjackson)
    126 
    127 I'm a self-taught developer and I've explored and been interested in
    128 some foundational topics in CS, like boolean logic, assembly/machine
    129 code, and compiler design. This book, [The Elements of Computing
    130 Systems: Building a Modern Computer from First
    131 Principles](https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686/ref=ed_oe_p),
    132 and its [companion website](https://www.nand2tetris.org/) is a great
    133 resource that gives you enough depth in everything from circuit design,
    134 to compiler design.
    135 
    136 ## [Margaret](https://www.viget.com/about/team/mwilliford)
    137 
    138 I've enjoyed working with Administrate, a lightweight Rails engine that
    139 helps you put together an admin dashboard built by Thoughtbot. It solves
    140 the same problem as Active Admin, but without a custom DSL. It's easy to
    141 quickly throw up an admin interface for resource CRUD, but anything
    142 beyond your most simple use case will require going custom. The
    143 documentation is straightforward and sufficient, and lays out how to go
    144 about customizing and building on top of the existing framework. The
    145 source code is available on Github and easy to follow. I haven't tried
    146 it with a large scale application, but for getting something small-ish
    147 up and running quickly, it's a great option.
    148 
    149 ## [Shaan](https://www.viget.com/about/team/ssavarirayan)
    150 
    151 I'm excited about Particle's embedded IoT development platform. We
    152 built almost of of our hardware projects using Particle's stack, and
    153 there's a good reason for it. They sell microcontrollers that come
    154 out-the-box with WiFi and Bluetooth connectivity built-in. They make it
    155 incredibly easy to build connected devices, by allowing you to expose
    156 functions on your device to the web through their API. Your web app can
    157 then make calls to your device to either trigger functionality or get
    158 data. It's really easy to manage multiple devices and they make remote
    159 deployment of your device (setting up WiFi, etc.) a piece of cake.
    160 
    161 -   <https://docs.particle.io/quickstart/photon/>
    162 
    163 ## [Sol](https://www.viget.com/about/team/shawk)
    164 
    165 I'm excited about old things that are still really good. It's easy to
    166 get lost in the hype of the new and shiny, but our industry has a long
    167 history and many common problems have been solved over and over by
    168 people smarter than you or I. One of those problems is running tasks
    169 intelligently based on changed files. The battle-tested tool that has
    170 solved this problem for decades is
    171 [Make](https://www.gnu.org/software/make/manual/make.html). Even if you
    172 aren't leveraging the intelligence around caching intermediary targets,
    173 you can use Make for project-specific aliases to save yourself and your
    174 coworkers some brain cycles remembering and typing out common commands
    175 (e.g. across a number of other tools used for a given project).
    176 
    177 TL;DR Make is old and still great.
    178 
    179 ------------------------------------------------------------------------
    180 
    181 So there it is, some cool tech from your friendly Viget dev team. Hope
    182 you found something worth exploring further, and if you like technology
    183 and camaraderie, [we're always looking for great, nerdy
    184 folks](https://www.viget.com/careers/).