I got curious about how CPU-intensive it would be to run a server for a game like agar.io or diep.io. In these games there are a lot of circles moving around on a 2D map, and you have to check collisions between them.
First was a naive Python version. Test every circle against every other circle for collision, O(N^2). This way I managed only 200 circles on my playing field. I wanted to see how much faster it would be rewritten in C. That got me to 1500 circles.
Now obviously the way I was checking for collisions is silly, some kind of subdivision of space is required to avoid having to check everything against everything. I split the playing field into a grid, and only test collisions between circles in nearby grid cells. That got me to 3000 circles running in Python.
Next I want to write that in C as well, to see how fast it would go.
I've been working on http://www.indeals.co.uk for a couple of years now, a side project that lists food & drink deals for independent venues in 3 cities. We're UK only at the moment but want to keep on growing to cover more places soon!
I've been teaching myself web development and recently completed a project I started on that's a website/jobs board for remote jobs: https://remotefriendly.work.
Rolling my own ergonomic back-up tools atm (implementing incremental, secure backups of MySQL dbs, IMAP Emails and Filesystem) because solutions already exist and I'm a silly person who hates himself and the safety of his data.
In my personal time I'm building a nice way to have all my "watch later" videos on youtube in one list, for fast access. At work I am building a react native application that does video streaming.
Both nice and challenging. :)
I have several courses on Udemy.com. They sometimes go slightly out of date as frameworks release breaking changes.
Right now, I'm just about to upload some updates to my most popular course on React/Redux: https://www.udemy.com/react-redux/?couponCode=HAOW8983
This is quite literally the third time in the past 24hrs that while I've been on the internet looking at other things, your course has come up. Must be a sign... buying it now!
I'm in the middle of your Elixir course right now - it's excellent! I did your first React/Flux course and also the Redux one. Your teaching style works very well for me.
The way I get the most out of it is to pause the video after you outline the project spec, implement the whole thing in my own (bad) way and then watch to see how you do it.
Self hosted, low footprint system health monitoring for the .NET world. Which actually serves as a good test bed for a couple of open-source projects of mine. One released, one isn't yet.
I've been writing this app that lets teachers group kid together based on their performance on an assessment. The idea is that you'd try putting things together in groups that answered questions differently so that they could talk about it and either reinforce their mental models (or test just how robust they are) by teaching a peer or ridding themselves of misconceptions by having a peer help them out. I wrote a GA in Python a few months ago that would take vectors of answers and would group them together and it worked surprisingly well. Now I'm designing the webapp for teachers to orchestrate the whole thing (LMS integration, seeing groups, etc.). I wrote a prototype in Angular 1.x and now that I understand what I'm trying to accomplish really well, it's become my pet project to learn React as I implement a more robust version of it.
A Twitter bot called @AmazonArtReview that tries to find funny 1-star reviews of media on Amazon. It's using some crude machine learning and just a fun side project.
Finding humor's tough! I've read some papers on finding humor in reviews, e.g. https://cs224d.stanford.edu/reports/OliveiraLuke.pdf. That's been helpful. It'd be great if I could use the Yelp review set for finding humor as they did but the humor doesn't translate between data sets. Mostly it's still manual curation, which is ok too.
Yeah, that's a good suggestion. I should start storing and using that info. My hypothesis is that humor is inversely proportional to the number f helpful votes. For example, 0 of 57 helpful is probably funnier than 3 of 3.
Currently adding small tools over it to make an IRC client. The plan is to have iii as the client, wii as the web-protocol-client and then write tii as a terminal app which can either communicate with wii or iii directly.
It's a neat project to learn go and write small simple programs that come together.
The end goal is to also try stream some development and see how that goes. I really enjoy it so far.
I'm open sourcing one small component from one webapp we have: the pull to refresh feature. It is vanilla javascript, super light and fast, and it won't require you to modify the markup.
Climate provides a huge number of command line options for developers to automate their Linux system. Learnt a lot about shell script and various unix tools.
I've been working on validating my thought that country music lyrics are all about very similar (and very cliche) topics, and I realized I needed to label all the lyrics I scraped from Genius. Since there are 5000 or so, and I didn't want to have to do all of it myself or rigged with some google doc, I built an app to more easily collect training data. It's generalized to allow for different question types and different documents other than just text as well.
It's also a front in case people want to get in contact for general data scraping or ML needs that I can help with, but the main app is the platform for training data.
I don't have a name for it, which is why it's running with a Heroku url, so suggestions are welcome!
I'm building https://bandgap.io, which is a platform for computational solid state physics. It computes band structure, Fermi surfaces, and someday, I hope, we can get to computing topological properties. It's done in Django for the backend, Three.js for the visualization, and C++ for the compute.
About 5 years ago, I had created a bunch of screencasts around OpenGL. I recently (Nov 1st) finally started recording screencasts again.
I'm making super short daily screencasts now called ProgrammingTIL (~1-8 minutes), currently covering React, WebGL, ImmutableJS, Algorithms (CLRS), and Webpack.
So far, I've done ~40 new videos. You can check them out here:
When I was in high school I started a coding club because I really really wanted the environment and culture I found on Hacker News, but in person.
That club had such a profound effect on me, I wanted to make it easier for other high schoolers to create communities of hackers. Hence, I started working on Hack Club :-).
92 comments
[ 4.3 ms ] story [ 180 ms ] threadFirst was a naive Python version. Test every circle against every other circle for collision, O(N^2). This way I managed only 200 circles on my playing field. I wanted to see how much faster it would be rewritten in C. That got me to 1500 circles.
Now obviously the way I was checking for collisions is silly, some kind of subdivision of space is required to avoid having to check everything against everything. I split the playing field into a grid, and only test collisions between circles in nearby grid cells. That got me to 3000 circles running in Python.
Next I want to write that in C as well, to see how fast it would go.
Earlier, it taught basic html, now I am rewriting the Tasks app, http://github.com/thewhitetulip/Tasks/, to use the front end framework http://vuejs.org, using the learning of my experiment, I'm putting together anther series of tutorials, http://github.com/thewhitetulip/intro-to-vuejs.
Thid is because I wanted an easy to understand tutorial which doesn't expect the user to have anything more than basic html/css/js knowledge.
edit: links
The way I get the most out of it is to pause the video after you outline the project spec, implement the whole thing in my own (bad) way and then watch to see how you do it.
Finding humor's tough! I've read some papers on finding humor in reviews, e.g. https://cs224d.stanford.edu/reports/OliveiraLuke.pdf. That's been helpful. It'd be great if I could use the Yelp review set for finding humor as they did but the humor doesn't translate between data sets. Mostly it's still manual curation, which is ok too.
https://www.twitter.com/AmazonArtReview
https://github.com/Foxboron/iii
https://github.com/Foxboron/wii
iii is an reimplementation of ii (http://tools.suckless.org/ii/) with TLS support and a few misc features.
Currently adding small tools over it to make an IRC client. The plan is to have iii as the client, wii as the web-protocol-client and then write tii as a terminal app which can either communicate with wii or iii directly.
It's a neat project to learn go and write small simple programs that come together.
The end goal is to also try stream some development and see how that goes. I really enjoy it so far.
https://github.com/sailormoon/flags
Climate provides a huge number of command line options for developers to automate their Linux system. Learnt a lot about shell script and various unix tools.
Our previous one was A-Painter, a kind of tilt brush in a browser (https://blog.mozvr.com/a-painter/). Having lots of fun doing this stuff :)
It's also a front in case people want to get in contact for general data scraping or ML needs that I can help with, but the main app is the platform for training data.
I don't have a name for it, which is why it's running with a Heroku url, so suggestions are welcome!
https://fierce-mountain-21498.herokuapp.com/
It's very much something that I wish I had more time to spend on, so progress is slow at times, but we'll get there :)
https://cachethq.io
I'm making super short daily screencasts now called ProgrammingTIL (~1-8 minutes), currently covering React, WebGL, ImmutableJS, Algorithms (CLRS), and Webpack.
So far, I've done ~40 new videos. You can check them out here:
http://www.youtube.com/iamdavidwparker
I'm slowly building out an email list here:
https://www.programmingtil.com/
Eventually, I'd like to sell some full courses for complete projects as well- not just teaching different small things.
Edi: added quantity of videos, grammar.
When I was in high school I started a coding club because I really really wanted the environment and culture I found on Hacker News, but in person.
That club had such a profound effect on me, I wanted to make it easier for other high schoolers to create communities of hackers. Hence, I started working on Hack Club :-).