<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: instantiator</title>
    <description>The latest articles on DEV Community by instantiator (@instantiator).</description>
    <link>https://dev.to/instantiator</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144263%2Faf3e0b79-2138-4a2a-bb88-55add26fae9b.jpeg</url>
      <title>DEV Community: instantiator</title>
      <link>https://dev.to/instantiator</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/instantiator"/>
    <language>en</language>
    <item>
      <title>Let's build an app for Flipper Zero</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Sat, 06 May 2023 22:06:26 +0000</pubDate>
      <link>https://dev.to/instantiator/lets-build-an-app-for-flipper-zero-1n3f</link>
      <guid>https://dev.to/instantiator/lets-build-an-app-for-flipper-zero-1n3f</guid>
      <description>&lt;p&gt;The Flipper Zero is a digital signals multi-tool device, with some fun applications. It has an infrared module, a sub-GHz radio, RFID and NFC capability, iButton, USB, a screen, input controls, and GPIO pins. It's small enough to fit in your hand, and it can communicate with your home appliances, or help you to learn about the signals that fly around our world. It's also extremely customisable.&lt;/p&gt;

&lt;p&gt;I recently published my first app for the Flipper on &lt;a href="https://flipc.org"&gt;flipc.org&lt;/a&gt; - it helps you to calculate the value of a resistor based on the coloured bands printed on it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://flipc.org/instantiator/flipper-zero-experimental-apps?branch=main&amp;amp;root=resistors"&gt;&lt;strong&gt;Resistance Calculator&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PusanFH0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6a88duxi46z818c1z5qy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PusanFH0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6a88duxi46z818c1z5qy.jpg" alt="A Flipper Zero device running the Resistance Calculator app - showing a pixel-art resistor, it has calculated the resistance and tolerance based on the user's choice of coloured bands" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Off the back of that experience, I've written a short tutorial for first-time app developers. I'll definitely add more to it, but for now there are two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/flipper-zero-app-tutorial-01/"&gt;&lt;strong&gt;Building an app for Flipper Zero, part 1: Getting started&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/flipper-zero-app-tutorial-02/"&gt;&lt;strong&gt;Building an app for Flipper Zero, part 2: A simple user interface&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first part is mainly about setting up your environment, but I also go into a bit of detail about working in C. I come from a higher level / managed code background (largely Java and C#), and I had to re-learn a lot about writing C to make progress.&lt;/p&gt;

&lt;p&gt;There are plenty of amazing resources out there for devs now, and I hope by sharing back what I've learned I can help others. It's great to see so many folks in the community doing the same, and my content is inspired by and dependent on the work of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamisonderek"&gt;Derek Jamison&lt;/a&gt;'s &lt;a href="https://github.com/jamisonderek/flipper-zero-tutorials"&gt;plugin tutorials&lt;/a&gt; and &lt;a href="https://www.youtube.com/@MrDerekJamison"&gt;YouTube channel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DroomOne"&gt;DroomOne&lt;/a&gt;'s &lt;a href="https://github.com/DroomOne/Flipper-Plugin-Tutorial"&gt;plugin tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brodan.biz/"&gt;Chris Hranj&lt;/a&gt; (Brodan)'s &lt;a href="https://brodan.biz/blog/a-visual-guide-to-flipper-zero-gui-components/"&gt;guide to the components&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Kuronons"&gt;Kuronon&lt;/a&gt;'s brilliant pixel-art&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've had some great conversations with folks on the &lt;a href="https://discord.gg/flipper"&gt;Flipper Devices&lt;/a&gt; Discord, too - and I've found it to be a supportive community.&lt;/p&gt;

</description>
      <category>flipperzero</category>
      <category>c</category>
      <category>app</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Design and 3D-print crossword puzzles</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Sat, 18 Mar 2023 21:53:33 +0000</pubDate>
      <link>https://dev.to/instantiator/design-and-3d-print-crossword-puzzles-4l9g</link>
      <guid>https://dev.to/instantiator/design-and-3d-print-crossword-puzzles-4l9g</guid>
      <description>&lt;p&gt;I've been working on &lt;a href="https://github.com/instantiator/crossword-generator-scad"&gt;a tool to automatically generate 3D printable crossword designs&lt;/a&gt;. It's free and open source, and you're welcome to plunder it to create your own!&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;I've been exploring the use of Docker to make it quick and easy to spin up small applications, and in this case I'm using it to run a small C# app that can consume a crossword design (in a CSV file) and generate a SCAD file that defines the shape.&lt;/p&gt;

&lt;p&gt;Then it pushes that template into &lt;a href="https://openscad.org/"&gt;OpenSCAD&lt;/a&gt; to generate an STL model of the crossword that you can use with your favourite slicer to prepare and print.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sample cells&lt;/th&gt;
&lt;th&gt;Crossword design&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OBp8CFa4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://instantiator.dev/crossword-prints/preview-test-cells.png" alt="A 3D design showing a small flat base, that's 3 by 1. The first position is blank, so it's just the base. The other 2 positions have grid cells elevated over them, each with a stubby little circle printed inside the grid cell. The 3rd position grid walls are printed slightly higher than the other - they represent a highlighted cell." width="880" height="721"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MxBFZNVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://instantiator.dev/crossword-prints/preview-clarbert-crossword.png" alt="A full crossword printed in the same way. There's a large, flat, 11x9 base plate, and then on top of it a crossword grid is elevated. In each cell of the crossword is another stubby little circle. Some cells have higher walls than others - they are highlighted cells." width="880" height="721"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to create your own crosswords
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;First, take a copy of the &lt;a href="https://github.com/instantiator/crossword-generator-scad"&gt;instantiator/crossword-generator-scad&lt;/a&gt; repository (clone, fork or download it)&lt;/li&gt;
&lt;li&gt;Then, take a copy of the &lt;a href="https://docs.google.com/spreadsheets/d/1V18dAKi18F9mF3wuK5d-L5pdg0llTGk-J9Tq7vYNg_I/copy"&gt;design template spreadsheet&lt;/a&gt; and edit your crossword into the &lt;strong&gt;crossword&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Export the &lt;strong&gt;crossword&lt;/strong&gt; tab as a CSV file and save it somewhere.&lt;/li&gt;
&lt;li&gt;Now you can use the &lt;code&gt;generate-crossword.sh&lt;/code&gt; script to create your STL file, eg.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./generate-crossword.sh -i samples/clarbert-crossword.csv -p clarbert-crossword -v templates/crossword-default-values-18x20.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's a lot more detail in the &lt;a href="https://github.com/instantiator/crossword-generator-scad/blob/main/README.md"&gt;README&lt;/a&gt; about how to modify the parameters, or how to ensure that your printer allows you to switch filament/colours for the various layers of the design - and I'd encourage you to give it a read before you start to print anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standing on the shoulders of giants
&lt;/h2&gt;

&lt;p&gt;The beauty of open source software is the amazing variety of free and open source tools already out there that you can use as a part of your own creation process - and then share your own contribution back into the world.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt; is a containerisation tool that allows you to run any docker image on any computer. Containerisation helps you escape all the complexities of running on different architectures or different operating systems, and it helps you to control the versions of everything your code or application is dependent on. If it runs for you, it'll run for anyone else with the same containerisation system. That's a huge leap forward from the days of "well, it works on my machine!"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openscad.org/"&gt;OpenSCAD&lt;/a&gt; is software for creating solid 3D CAD objects. It allows you to design objects by writing scripts to define them, using common geometric tools and primitives (or importing existing meshes). It can then render them for you in a variety of way, including as STL models (which I've found most useful). It's just one of several nice tools that will help you to programatically create your designs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Help yourself!
&lt;/h2&gt;

&lt;p&gt;I'm serious, if you give it a shot I'd love to hear what you make.&lt;/p&gt;

&lt;p&gt;I hope what I've put together is helpful to you if you're just getting started with coding, design or 3D printing. The source code is all there, and if you have questions I'd be glad to explain what I've done and why.&lt;/p&gt;

&lt;p&gt;I wrote a slightly longer post about it on my blog, and you're welcome to take the code and run with it: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/printing-3d-crosswords/"&gt;https://instantiator.dev/post/printing-3d-crosswords/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/instantiator/crossword-generator-scad"&gt;https://github.com/instantiator/crossword-generator-scad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>openscad</category>
      <category>3dprinting</category>
      <category>crossword</category>
      <category>puzzles</category>
    </item>
    <item>
      <title>The Rocketship Template for AWS 🚀</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Mon, 09 Jan 2023 14:00:00 +0000</pubDate>
      <link>https://dev.to/instantiator/the-rocketship-template-1fhn</link>
      <guid>https://dev.to/instantiator/the-rocketship-template-1fhn</guid>
      <description>&lt;p&gt;Presenting a simple template to develop, publish, and test a C# service API on AWS, with serverless Lambda functions, supported by DynamoDb, behind an API Gateway, and protected by Cognito auth.&lt;/p&gt;

&lt;p&gt;Read more about it, here: &lt;a href="https://instantiator.dev/post/rocketship-template/" rel="noopener noreferrer"&gt;https://instantiator.dev/post/rocketship-template/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to plunder the template on GitHub, here: &lt;a href="https://github.com/instantiator/mvp-rocketship-template" rel="noopener noreferrer"&gt;https://github.com/instantiator/mvp-rocketship-template&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>dotnet</category>
      <category>api</category>
      <category>template</category>
    </item>
    <item>
      <title>How to write in markdown and benefit from LaTeX styles and features</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Sun, 20 Jun 2021 11:21:51 +0000</pubDate>
      <link>https://dev.to/instantiator/how-to-write-in-markdown-and-benefit-from-latex-styles-and-features-13pa</link>
      <guid>https://dev.to/instantiator/how-to-write-in-markdown-and-benefit-from-latex-styles-and-features-13pa</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The things I'll do to avoid learning LaTeX...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Personally, I'd rather not learn LaTeX. I prefer markdown for just about everything these days, as it's so much simpler and more intuitive... but I want my write-ups to benefit from the styles and features that LaTeX offers.&lt;/p&gt;

&lt;p&gt;I've built a template and tool to help you do that. It'll give you a bit of structure, you can write markdown across multiple files to help manage and marshal your content, and the output is a single PDF that looks like an authentic LaTeX scientific paper - complete with citations, footnotes, figures and formulae.&lt;/p&gt;

&lt;p&gt;You're welcome to use it for your own work, too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full details at:&lt;/strong&gt; &lt;a href="https://instantiator.dev/post/markdown-thesis-template/"&gt;instantiator.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read on for a quick summary and steps to getting started...&lt;/p&gt;

&lt;h2&gt;
  
  
  A template thesis
&lt;/h2&gt;

&lt;p&gt;I've created a template you can use for your own write-up too.&lt;/p&gt;

&lt;p&gt;Write your content in markdown, and a dockerised instance of &lt;code&gt;pandoc&lt;/code&gt; will build it all into a PDF, in the style of a LaTeX paper. It has support for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A cover page&lt;/li&gt;
&lt;li&gt;Figures&lt;/li&gt;
&lt;li&gt;Footnotes&lt;/li&gt;
&lt;li&gt;Numbered sections&lt;/li&gt;
&lt;li&gt;Mathematics and formulae&lt;/li&gt;
&lt;li&gt;Bibliography and citations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A dockerised tool
&lt;/h2&gt;

&lt;p&gt;I containerised &lt;code&gt;pandoc&lt;/code&gt; and few other tools so it can run whatever your computing environment. All you'll need is an installation of &lt;a href="https://www.docker.com/products/docker-desktop"&gt;Docker&lt;/a&gt; to get going.&lt;/p&gt;

&lt;p&gt;If you're interested to see how it works, check out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/instantiator/markdown-thesis-builder/blob/main/Dockerfile"&gt;Dockerfile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/instantiator/markdown-thesis-builder/blob/main/scripts/build.sh"&gt;scripts/build.sh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you have Docker running.&lt;/li&gt;
&lt;li&gt;Make a copy of the &lt;a href="https://github.com/instantiator/markdown-thesis-builder"&gt;markdown-thesis-builder&lt;/a&gt; template.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git clone&lt;/code&gt; it to your machine (or download the zip from GitHub).&lt;/li&gt;
&lt;li&gt;Modify any of the markdown files in the &lt;code&gt;source/&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;Run: &lt;code&gt;./build-project.sh&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A successful build ends with a line telling you where to find the output PDF:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Output document: source/build/Sample-Project_Your-Name.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;See: &lt;a href="https://github.com/instantiator/markdown-thesis-builder/blob/main/sample/Sample-Project_Your-Name.pdf"&gt;The sample PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks so much for reading. If you found this helpful, or if you have comments, questions, improvements, or issues feel free to let me know!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full details at:&lt;/strong&gt; &lt;a href="https://instantiator.dev/post/markdown-thesis-template/"&gt;instantiator.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>latex</category>
      <category>pandoc</category>
      <category>docker</category>
    </item>
    <item>
      <title>Let's Build an AWS Lambda in C#!</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Thu, 22 Apr 2021 16:27:27 +0000</pubDate>
      <link>https://dev.to/instantiator/let-s-build-an-aws-lambda-in-c-2kaf</link>
      <guid>https://dev.to/instantiator/let-s-build-an-aws-lambda-in-c-2kaf</guid>
      <description>&lt;p&gt;At first glance, Amazon Web Services (AWS) can seem impenetrably complex, but it’s not so bad once you’ve found your way around it…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Lambda is&lt;/strong&gt; a lightweight, short-lived, event-triggered process that can run reliably whenever it is needed. AWS Lambdas are perfect for small tasks.&lt;/p&gt;

&lt;p&gt;I've put together a short tutorial, to surface some of the concepts you'll need, and walk you through the process of building your first Lambda in AWS.&lt;/p&gt;

&lt;p&gt;For this tutorial, we’ll build something a little more ambitious than the traditional “Hello world!” application, and through that I hope to demistify it a bit.&lt;/p&gt;

&lt;p&gt;Read the full tutorial at: &lt;a href="https://instantiator.dev"&gt;instantiator.dev&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-01/"&gt;Part 1 - AWS, users, roles, permissions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-02/"&gt;Part 2 - build, deploy, invoke&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-03/"&gt;Part 3 - APIs and secrets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-04/"&gt;Part 4 - locating logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-05/"&gt;Part 5 - writing to S3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://instantiator.dev/post/csharp-aws-lambda-tutorial-06/"&gt;Part 6 - scheduling triggers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>lambda</category>
      <category>csharp</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Hack Hate presentations, prizes, and a magical performance!</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Wed, 04 Nov 2020 20:10:06 +0000</pubDate>
      <link>https://dev.to/instantiator/hack-hate-presentations-prizes-and-a-magical-performance-3c7c</link>
      <guid>https://dev.to/instantiator/hack-hate-presentations-prizes-and-a-magical-performance-3c7c</guid>
      <description>&lt;p&gt;Hello from &lt;a href="https://hackhate.org"&gt;Hack Hate 2020&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;I wrote before about &lt;a href="https://dev.to/instantiator/we-re-running-hack-hate-a-hackathon-against-hate-crime-here-s-why-10k8"&gt;why we're running Hack Hate - a hackathon against hate crime&lt;/a&gt;. I'm really glad I did because people here at dev.to who saw it joined 150 other ticket holders in early October, for our opening talks!&lt;/p&gt;

&lt;p&gt;Hate crime is vile, and our participants had a chance to hear from some incredible people working with communities that are targeted for hate. They learned about the problem, and built some fascinating solutions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4 weeks later, and 48 people across 11 teams will be presenting their projects this Sunday...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now it's time to see what our incredible participants have created!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On Nov 8, from 11:00 GMT, those teams will present their awesome new innovations in the fight against hate. I really hope you'll &lt;a href="https://hackhate.org"&gt;check it out&lt;/a&gt; - they deserve as much exposure as possible!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EYMJBLfy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jwujf7wszinmt6p9paq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EYMJBLfy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jwujf7wszinmt6p9paq5.png" alt="13 projects, each focussing on an aspect of hate crime, are arranged in a graph - with arrows indicating which projects could provide data to others, creating a network of projects supporting each other."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://hackhate.org"&gt;Join us&lt;/a&gt; to support the teams, see what they have created, and enjoy a magical performance from magician Darren Delaney!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tickets are free from: &lt;a href="https://hackhate.org"&gt;hackhate.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---cRN4A6Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yaar3amgr6zkug07tawx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---cRN4A6Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yaar3amgr6zkug07tawx.png" alt="Hack Hate presentations poster"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>civictech</category>
      <category>hatecrime</category>
      <category>hackathon</category>
      <category>techforgood</category>
    </item>
    <item>
      <title>We're running Hack Hate - a hackathon against hate crime. Here's why!</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Fri, 18 Sep 2020 22:37:56 +0000</pubDate>
      <link>https://dev.to/instantiator/we-re-running-hack-hate-a-hackathon-against-hate-crime-here-s-why-10k8</link>
      <guid>https://dev.to/instantiator/we-re-running-hack-hate-a-hackathon-against-hate-crime-here-s-why-10k8</guid>
      <description>&lt;h1&gt;
  
  
  A hackathon against hate
&lt;/h1&gt;

&lt;p&gt;This year &lt;a href="https://policerewired.org" rel="noopener noreferrer"&gt;Police Rewired&lt;/a&gt;, a volunteer community working on projects and events in public safety, are running &lt;a href="http://hackhate.org" rel="noopener noreferrer"&gt;Hack Hate&lt;/a&gt;. It's an online, data-driven hackathon and it's focussed on hate crime.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fst26ht3e07caossilwsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fst26ht3e07caossilwsj.png" alt="The Hack Hate poster shows a team of 3 coding a cool new prototype that has thrown a shield up around them - and protects them from hate speech coming from a number of angry people outside their bubble. Text below this urges developers, designers, data-scientists, students, academics and creative problem-solvers to sign up to the event at: hackhate.org"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're working with the Metropolitan Police in London, and a number of agencies that work directly with communities affected by hate crime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why hate crime?
&lt;/h2&gt;

&lt;p&gt;Hate crime comes in many forms, and affects many different communities. It's painful, and can be devastating for the communities it affects. It's getting worse and, as volunteers in public safety, we wanted to do something about it...&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1306898468775100418-362" src="https://platform.twitter.com/embed/Tweet.html?id=1306898468775100418"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1306898468775100418-362');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1306898468775100418&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;In the UK, policing bodies work with a wide range of partner agencies to reach into affected communities to help understand the issue, take reports, and take action against those who perpetrate it - but policing alone won't stop the trend.&lt;/p&gt;

&lt;p&gt;A lot of hate material is moderated by social media organisations, such as Twitter and Facebook. Many people who are targeted by it need help understanding what their options are, how to report it - and to whom.&lt;/p&gt;

&lt;p&gt;There's also &lt;a href="https://docs.google.com/document/d/1d3YeeNOLuUZqRr_bvjNKiOTbXjUIz0_H0hIqJWulwSI/edit?usp=sharing" rel="noopener noreferrer"&gt;a lot of data about hate crime&lt;/a&gt;, and there are plenty of opportunities to use that data for good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Doing the right thing...
&lt;/h2&gt;

&lt;p&gt;We're great believers in tech for good. To us, it means creating opportunities to apply the skills we use in our jobs, or new skills we are studying, to effect positive social change. &lt;a href="http://hackhate.org" rel="noopener noreferrer"&gt;Hack Hate&lt;/a&gt; is an opportunity to form a team and build something that could help or protect people. It could be a prototype for a new tool, or new insights into the spread of hate and misinformation that can incite crime.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1306250074880704512-275" src="https://platform.twitter.com/embed/Tweet.html?id=1306250074880704512"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1306250074880704512-275');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1306250074880704512&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;We're opening on October 11th, and &lt;a href="http://hackhate.org" rel="noopener noreferrer"&gt;tickets are FREE&lt;/a&gt;. You'll hear from experts on the subject and explore new data sets. You can come as a team, or join one during the event. The hackathon runs for 3 weeks...&lt;/p&gt;

&lt;p&gt;In the first week we'll help you to choose a project, and then you and your team will have 2 weeks to develop a prototype or unique insights, and a presentation. There will be prizes awarded in a number of categories that will be announced at the beginning of the event.&lt;/p&gt;

&lt;p&gt;We're grateful for the generosity of our sponsors, without whom this event would not have been possible: &lt;a href="https://aws.amazon.com/government-education/public-sector-innovation-uki/" rel="noopener noreferrer"&gt;AWS UK&lt;/a&gt;, &lt;a href="https://clue.co.uk/" rel="noopener noreferrer"&gt;Clue UK&lt;/a&gt;, &lt;a href="https://www.computacenter.com/uk" rel="noopener noreferrer"&gt;Computacenter UK&lt;/a&gt;, and &lt;a href="https://www.esriuk.com/en-gb/home" rel="noopener noreferrer"&gt;ESRI UK&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're interested in contributing your skills for social good, &lt;a href="http://hackhate.org" rel="noopener noreferrer"&gt;grab a ticket now&lt;/a&gt; and join us on October 11th!&lt;/p&gt;

</description>
      <category>civictech</category>
      <category>hatecrime</category>
      <category>hackathon</category>
      <category>techforgood</category>
    </item>
    <item>
      <title>Learn Python from the NSA</title>
      <dc:creator>instantiator</dc:creator>
      <pubDate>Fri, 06 Mar 2020 20:23:23 +0000</pubDate>
      <link>https://dev.to/instantiator/learn-python-from-the-nsa-3d4o</link>
      <guid>https://dev.to/instantiator/learn-python-from-the-nsa-3d4o</guid>
      <description>&lt;h1&gt;
  
  
  The actual NSA?
&lt;/h1&gt;

&lt;p&gt;You heard right.&lt;/p&gt;

&lt;p&gt;On 7 Feb 2020, &lt;a href="https://twitter.com/chris_swenson/status/1225836060938125313"&gt;Chris Swenson released&lt;/a&gt; the scanned, OCR'd output from an FOIA request he made to the NSA - asking for their Python training materials. It's a 400-page 180Mb PDF. [&lt;a href="http://bit.ly/COMP3321"&gt;mirror&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Shortly afterwards, &lt;a href="https://twitter.com/0xdeeb/status/1226388929626202112"&gt;Sherif Eldeeb released&lt;/a&gt; a reduced, 18 Mb version. [&lt;a href="http://bit.ly/COMP3321-reduced"&gt;mirror&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NB. These aren't people I've met - they just did a cool thing and shared it with the wider community. That's one of the benefits of FOIA and sharing openly - everybody benefits!&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  So what's in it?
&lt;/h1&gt;

&lt;p&gt;It's the full training course for NSA staff learning to code in Python - starting right at the beginning. It's designed to be taught in a classroom setting, or self-taught so you could start today if you wanted to.&lt;/p&gt;

&lt;p&gt;The course is broken into approximately 20 modules split across 2 weeks. &lt;/p&gt;

&lt;p&gt;In the first week, participants learn the principles of Python from the very basics, all the way through functions to object orientation and more advanced concepts. It's well structured, and littered with explanations, examples, and code snippets to try for yourself - each teaching you something or reinforcing a lesson about how Python works.&lt;/p&gt;

&lt;p&gt;In the second week, the course offers a number of optional modules where students can opt to deep dive into particular libraries or capabilities, eg. the Pandas library (for working with data sets), or how to assemble a web application, etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  So how can I get started?
&lt;/h1&gt;

&lt;p&gt;Well, you could start at the beginning and work your way through it... It's made for self-study so hopefully it's helpful and clear all the way through.&lt;/p&gt;

&lt;p&gt;You'll need to install &lt;a href="https://www.anaconda.com/distribution/"&gt;Anaconda Python&lt;/a&gt; - &lt;em&gt;that's a distribution that's a little more checked and assured than regular Python - but don't worry, almost everything is included!&lt;/em&gt; and a good editor: I'd suggest &lt;a href="https://www.jetbrains.com/pycharm/promo/anaconda/"&gt;PyCharm for Anaconda&lt;/a&gt; from JetBrains, or &lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; from Microsoft - but anything that can edit a &lt;code&gt;.py&lt;/code&gt; file will do!&lt;/p&gt;

&lt;p&gt;Another way to get going with it is to learn with friends - and this is my angle on this... The volunteer group I work with, &lt;a href="https://policerewired.org"&gt;Police Rewired&lt;/a&gt;, are holding an &lt;a href="https://www.policerewired.org/home/nsa-python-study-group"&gt;NSA Python study-group&lt;/a&gt; on March 28th. If live in London and you'd like to join us, check it out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uPc-BM1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i8v52jgi97n5oqc9xgay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uPc-BM1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/i8v52jgi97n5oqc9xgay.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to set up one of your own, you could learn from our experience - so check in afterwards as we'll be writing up what worked, what didn't, and how we're going to do the next one...&lt;/p&gt;

&lt;p&gt;To find out more, follow &lt;a href="https://twitter.com/policerewired"&gt;@policerewired&lt;/a&gt; on Twitter, or &lt;a href="http://bit.ly/PoliceRewired-community"&gt;join our community&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>nsa</category>
      <category>studygroup</category>
      <category>london</category>
    </item>
  </channel>
</rss>
