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/).