Hacker News new | past | comments | ask | show | jobs | submit | page 2 login
Ask HN: What's your quarantine side project?
1336 points by dhr 54 days ago | hide | past | favorite | 2248 comments
For those who are still under lockdown, what are you working on / building / learning?

I've been making excessive amounts of bread.




Well, my main side project is the same as it's been for the last couple of years, an animation/vector editing tool written in Rust: https://github.com/logicalshift/flowbetween

It's sort of starting to make the transition between a pile of ideas and an actually useful tool at the moment. The whole idea is to be a vector editing application that works more like a bitmap tool when it comes to painting, so there's a flood-fill tool and a way to build up paths just by drawing on the canvas rather than having to manually mess around with control points.

The way I built the UI is unique too I think. Choices for UI librarys for Rust were quite limited when I started so I built it to be easy to move to different libraries. I don't think there's any other UI library in existence that is as seamless for switching between platforms (or which can turn from a native app to a web app with a compiler flag without resorting to something like Electron)


I suspect that https://github.com/hecrj/iced would now be another UI library that’s as seamless for switching between platforms. Flutter might qualify too (or might not).


I’ve been keeping an eye on the various UI libraries when they come up: right now it seems to take me around a month to add a new one so I’m waiting for one to get traction.

Something else that’s a problem is that as a drawing app, FlowBetween wants to be able to get access to data from a digitizer: pen pressure and tilt in particular. A lot of UI libraries don’t think to pass that through from the operating system, or have an awkward API (browser support is also very spotty for this)


Yeah, lack of support for different input media has been a real pain point for me—most of the developers of these things have mice only, and don’t stop to bother about touch or pen input. I use a Surface Book which has mouse, touch and pen, and I like to use all three forms at various times.

If you’re trying to do touch and pen on non-web platforms, things tend to be very messy if you want to handle all three types of pointers optimally.

But browser support spotty? I find the pointers events API a marvellous abstraction over platform differences, doing the right thing automatically for >99% of cases, and making the remaining cases possible. The only thing I feel it actually lacks is standardised gesture support for touch. I wrote a simple pressure-capable drawing app a couple of years back in the very early days of pressure-sensitivity (back when Edge was the only browser on Windows that supported it, so I targeted Edge only until other browsers got it), and I found it a refreshingly straightforward system to work with. And since then, everyone implements things like tilt and pressure.

So I’m curious to hear what you’re quibbling over, as someone that’s been using this stuff in anger more recently than I.


I suspect some of my experience is now out of date, as it's now spread out over quite some time. The most recent issue I had to deal with was Chrome: when drawing the canvas at high-res it was being a bit slow at blitting some bitmaps and so was running at 30fps. Something is tied to the framerate with the pointer events implementation and so the events also lagged behind, which made drawing on the canvas quite difficult as the display was 250-500ms behind the user. Eventually 'fixed' by turning the resolution down, but it was a real pain finding what part of the application had got behind (FlowBetween being designed not to lag but to catch up when the display can't keep up). That's quite a subtle one and the pointer events lagging is easily mistaken for the frame rate lagging.

Other browsers don't do this, but they've had a few other issues: what I remember in particular - some only support pressure information using the touch API, and some seemed to support pressure information on different APIs on different platforms, so both pointer events and touch events were needed.

All of these are maturity issues rather than real problems with the API, though and I haven't re-checked some of the older issues recently - that Chrome issue was still happening back in January so might still be around, but the others I last encountered over a year ago so may have been fixed by now.


If you haven’t been using it, make sure to use PointerEvent.getCoalescedEvents where available, which unlinks the events from the display frame rate. Anything using pointer events for drawing should use it. (But remember that events can come in at any speed, e.g. a 240fps pen should coalesce four events per 60fps frame—so make sure you can cope with lots of events.)

I believe that the pointer events API is in current browsers now uniformly superior in functionality to the touch events API which it obsoletes.


Wow, this is cool. What was the inspiration for this? Why Rust?


I like to draw, and I suppose my frustrations with other animation packages that I’ve tried were the main inspiration. It’s quite nice to have something that combines two hobbies into one.

When I started I picked Rust because I’d been learning it and wanted to try using it on a more substantial project. I’m very happy with it as a choice of language: it definitely has a difficult learning curve especially with the way borrowing looks similar to references in a garbage-collected languages but works very differently. However, it’s a very expressive language: something about it makes it very easy to write code quickly that’s still very easy to follow later on.


Awesome. I dabbled with Rust several years ago, but have been thinking about diving back into it... Do you have any recommendations about where to start?


The official Rust Programming Language book is excellent and was all I really needed to learn the language. I had a small project to work on that I didn't mind rewriting after my first attempt (my build server is a NUC and I wanted to write some software flash the LEDs on the front to indicate build state)

I suspect everyone goes through a phase of hating borrowing when learning Rust: it's helpful to know that it's something that eventually 'clicks' and really stops being an issue. It didn't exist when I was learning, but 'Learning Rust with Entirely Too Many Linked Lists' looks like it would have helped a lot.


Thanks! I'll check that out...


I've spent a decent amount of time learning over the time that this quarantine has been going on.

A major issue that I've seen is that of most beginner-focused educational content not being fast enough to learn with for the more experienced developer. This along with the fact that time is often a big issue for us. I've had numerous times where I had to learn a new framework within a 1-2 week time span in order to plug some work gap or speed up a project, and found no legitimate resources that could allow an intermediate developer like me to learn faster.

This is why I am currently creating content targeted specifically at intermediate to advanced developers and teaching new languages and frameworks (using the 'constructivist' method) in a way that makes the process of learning them much more efficient. In short, faster.

It's a little rough around the edges but you can check out the blog where I share my current tutorials here: https://fromtoschool.com.

To gain a better understanding of why the method of teaching that I've described is more efficient than others for the intermediate developer, check out this post: https://fromtoschool.com/why-most-programming-tutorials-are-....


I really need saviors like you! Learning a new programming language / framework is often too redundant initially.


Thank you! What is it that you're currently learning or trying to learn at this moment?


Yep, I would also suggest https://learnxinyminutes.com/ to learn any new porgramming language quickly if you have experience in similar languages.


Thanks for the share.


I've been working on converting a Mazda RX-8 to electric. At the moment, that mostly amounts to making battery boxes to go in the various empty spaces by tig welding aluminum (which I had no experience with prior to this project).

The general plan is to use about 400 pounds of lithium iron phosphate cells, spread between the spaces under the right and left rear passenger seats where the gas tank used to be and the engine compartment (mostly approximately where the radiator was). I'm using a Netgain Hyper9 AC motor (144 volt version). I haven't decided what I'll do for charging and battery management. I plan to order an adapter from CanEV to interface to the transmission so I'll be able to keep the stickshift.


I came to this thread wondering if there would be many offline projects. Yours sounds great!

Mine was much simpler. I bought a sewing machine because I thought now would be a good time to learn how to sew and maybe I could make masks for myself and family. I never really understood how these machines work and I have to say, they are pretty amazing (even a low tech one like I got - a Singer 4423).

I also gained a ton of respect for people who are good at sewing. It's much more difficult than I thought it would be.


You will dig this https://youtu.be/4Jbk1uU_Jkk. Tim is an all time hero


Just watched the whole episode - that was fascinating - I love the human sewing machine


Whoa! That sounds like an incredibly fun project. I am not questioning your plan, as you are almost certainly more knowledgable than myself, but is there any technical reason to actually keep the manual transmission? I thought one of the biggest advantages of electric drive vehicles was a relatively linear power/torque curve.


Most EV conversions end up keeping the manual gear box because it's simply easier to build an adapter plate for the motor transmission interface than it is to build out a whole new gearbox replacement.

From what I've seen it's fine, you can choose which gear to shift to and leave it there. Cold start from 5th gear. Can even be fun to play with the gear ratios, apparently. But it is another point of failure.

One of the things holding me off from attempting an EV conversion on my old Saab 900 sitting in my shop is that the gear box in it is notoriously brittle and would break even with the torque from the (turbo) gas engine that it shipped with.


The real problem with that is weight. Because SAAB is -- well -- SAAB. Great company, great car btw.


Thanks, flat nose 84 SPG. But brake lines corroded out, so I need to run new brake lines. Which is a project I've been putting off for almost 3 years now :-)


A transmission allows you to get away with using a less-powerful motor. The motor I'm using is about 120 horsepower and has a max RPM of about 8000.

I also like having a stickshift.


Is there a website or somewhere we can track the progress of this? It would be awesome to see more details.


I haven't been blogging about it. I probably should, but I tend not to get around to writing things down until I get things into working condition.


there's a famous rx8 converted with a acura(?) motor. I only recall it was yellow and had a Pikachu stiker :) but it was well documented


Are you following the open inverter forums?

[1] https://openinverter.org/forum/viewtopic.php?f=11&t=151


No, but it's good to see another RX-8 build thread. (I've come across a few already, but everyone seems to approach their conversion a little differently.)


Really cool! This reminds of Andy Weir's The Martian (I highly recommend the book - there was a movie as well - especially the chapters that touch on some programming!) and the lead characters clever efforts to use what (bio)tech he has in order to survive on Mars.


I've read the Martian. It's kind of fun to think that electric vehicles could at least theoretically operate on Mars. (The batteries would have trouble at low temperatures and I definitely have the wrong tires. The motor is sealed, but not well enough for Mars, and sand would eventually get into and destroy a lot of the moving parts.)

It's also fun to modify machines to be used in ways they were never intended by the original designers. Fortunately a lot of the DIY electric car components are pretty flexible in terms of how you use them. For instance, you can get your motor controller, your battery management system, and your charger from different companies and reasonably expect them to work together because they each have a well-defined job and that's all they do.

I re-read Artemis now that I know something about welding, and was kind of disappointed it was all oxygen-acetylene, which I know next to nothing about rather than TIG, which is usually the recommended way to weld aluminum. (I'm not sure if you'd even need a shield gas like argon in a vacuum environment?) Maybe there is a good technical reason for that, but it wasn't explained in the book (nor does it really matter to the story except to the 3% of readers who care about welding trivia).


No, you wouldn't need a shield gas, and if I remember right Jazz is forced to borrow a tank of argon from her dad so as to not tip him off that she'd be welding outside, even though she wouldn't be using it.


Ohh.... One of these things that on Europe we aren't allowed to do by regulations.

Is a thing that I would like to do, on the future, with my 90's Nissan Micra.


Neat! I'll be extra impressed if you make it a rotary electric.


Well, any typical electric motor could trivially be considered a "rotary".

I did save one of the rotors from the engine. Maybe I can think of some whimsical use for it, like cut a thin slice off it and weld it to something as a sort of decoration.


Would love to follow your progress - are you sharing it somewhere?


I'm not, sadly.


Come on over to The Car Lounge please!! We’re an eclectic group of enthusiasts, don’t take anything too seriously, and would love to see something like this.

https://forums.vwvortex.com/forumdisplay.php?1#/forums/1?pag...


Very cool! What do you expect the range to be with that setup?


Maybe a hundred miles if I'm lucky. Lithium iron phosphate isn't as good as, say, modern Tesla batteries in terms of energy density, but they're a good choice for conversions because they're much less likely to catch on fire if something goes wrong.

I could get better range with more batteries, but I also didn't want to increase the total weight of the vehicle by more than a few hundred pounds, just to stay within design tolerances.

(The RX-8 is about 3,000 pounds normally, which is pretty light for that sort of car. A Miata would probably be an even better choice, as it's around 2,000 pounds. It's hard to find newer Miatas for a reasonable price, though. RX-8's can be had pretty cheap because the rotary engine is easy to destroy if you don't maintain it properly and even in the best case usually needs to be rebuilt every 100,000 miles or so to replace worn apex seals. So, there are a lot of used RX-8's on the market that need engine work.)


What resources did you use to learn tig welding?


Youtube mostly. I also discovered that one of the people at a local regular tech meetup teaches welding at a community college and he critiqued my welds and gave me some useful advice.

I've been using an AHP AlphaTIG 201xd, which seems to be a good machine for the price. It seems that the hard part initially is mostly just figuring out what settings to use to get a good weld. Beyond that, it's about getting used to how aluminum behaves, and figuring out how to position yourself and your work piece so you can keep your hands steady.

My welds aren't anything I would mistake for art, but they get the job done.


are there any regulatory hurdles to overcome doing this yourself, or if it passes a test (like in Ireland, we have the NCT) is it ok?


In many US states, there are no vehicle inspections, so as long as it has the basics like turn signals, wipers, brake lights, headlights, etc. it can be driven on the street and nobody will care.


Yea, I did not realize the huge difference moving from the east coast living in a few cities there going through the detailed inspection. I moved to the south, a different city, brought in my car, they told me to turn on my signals and hazards, asked for some money, and gave me a sticker. Very different.


I don't think there should be any regulatory problems. I'm in Oregon. I think I just have to tell them it doesn't have an engine anymore to be exempt from DEQ testing.


what are you going with for the motor controller?


The motor comes with a controller. It's made by SME, and is surprising small and light.


Who makes the motor, then? Where did you get the electronics side of it?

I want to design an electric formula car and am having some trouble deciding what parts to go with.


I used a Netgain Hyper9, which is a pretty decent AC motor. There are smaller, more powerful AC motors out there, but they can get pretty expensive. AC is nice for the regenerative braking. (When applied to electric cars, AC generally means 3-phase AC, synchronized with the rotation of the motor.)

On the other hand, series wound DC motors are cheap and popular for drag racing applications. Check out the White Zombie if you want an extreme example. The guy that built it lives nearby and he's been giving me advice on my (very different) conversion.


Man this is super cool!


This is extremely niche but I'm working on a chord arpeggiator for the Korg NTS-1. [1] It's a programmable synth which has been a lot of fun to explore the theory behind designing effects and oscillators and put theory into practical use!

https://github.com/schollz/carp


Holy shit this is so cool. Sadly I don't own a Minilogue but a friend does and it really is an amazing piece of hardware. I've been wanting to do something music related (except making music) for a while now but audio processing seemed like a very daunting task. So for now I made a youtube to mp3 converter because all those you find on google have a billion ads.

But this project is way more exciting!


I've always wanted to do music stuff too, and the NTS-1 is the most approachable piece of hardware with the best software ecosystem I've found yet for doing effects and synths (I've tried Arduino / Raspberry Pi based stuff before).

The Korg SDK [1] comes with a lot of tools right out of the box (biquad filters, dual delay lines, wave types, access to parameter knobs, etc.) and their dev environment is really easy to install (you upload patches via MIDI sysex!).

The actual audio programming is wonderful - Korg's SDK gives you an pointer array of realtime values which you can manipulate how you see fit before they hit the audio out. Its simple (I made a auto pan in 10 lines of code [2]) but powerful when you apply buffers, etc.

[1]: https://github.com/korginc/logue-sdk

[2]: https://github.com/schollz/logue/blob/master/simplepan/simpl...


Just wanted to tell you I love croc! Brilliant idea, much easier than trying to talk nontechnical folks through installing Python on Windows to use Magic Wormhole.


Shameful plug: If you don't need all the features of croc and just want to transfer files without installing anything, you should check out https://patchbay.pub


Thanks! That means a lot :)


The minified code makes it hard to tell, but wouldn't this work on any synth if it's just using midi? Or you outputting something other than note on/off events?


For the Korg NTS-1, I am outputting something other than just note on/off events. The NTS-1 is somewhat unique that its arpeggiator computes arpeggio notes and timing onboard with three parameters: root note (the key you press), the chord pattern (major, minor, dim, sus, aug), and the arp pattern(up, down, up-down, random, etc.) and then generates the arpeggio. The root note is a simple note on, but the chord pattern and arp pattern are controlled through MIDI control change settings.

And the first question - also yes. But for synths other than the NTS-1 you'd have to send each note individually so you will more to do - e.g. keep track of note positions, determine notes in each chord, etc. I might try to do this too. As far as I know, the NTS-1 is the only one that has such a smart arpeggiator (probably because its monophonic and you can't enter chords easily...).


I guess I'll have to add an NTS-1 to my Korg family!

I've written bash scripts (using sendmidi [1]) to arpeggiate chords when I was feeling particularly lazy. It's pretty easy in midi. Figure out the root note, figure out the pattern, and just turn on/off root+pattern[i] :-).

[1] sendmidi is a great little command line tool to send midi commands to devices, or to record midi commands from devices. Its input format is plain text and you can include timing information so it's pretty easy to script music in this way: https://github.com/gbevin/SendMIDI


extremely niche and right up my alley


I was so angry at MS for taking away WunderList that I started to write a clone that looks 1:1 the same instead of using TODO. This time around the tech stack is React js as the UI with Springboot and MongoDB in the backend. Making great progress can do lists/task crud but lacking sync etc..

When you are accustomed to how things work and then forced to change its not fun. Current covid19 circumstances brought enough unwanted changes. This project started out as a fuck you to MS but it really turned into a fun project to keep my productively on track and also keep my mind busy.

The only shame is that I can't really "release" this cause it really looks like the original and the copyright vultures will waste no time coming for me. My best bet would be to change the UI design. BUT that would void the original purpose of the project.


IANAL but UI design is not copyrightable. Also let them send you a C&D and then you can get the internet to send MSFT some online hate, which would be a much more effective fuck-you than keeping your project hidden out of fear of their corporate legal team (which is just what they want, so they can maintain tacit control over non-existent IP and not have to do any work for it).


Can't you just release it as open-source for self-hosting. I think that could go under free speech and the source code will always be your invention. I wonder how is it done with myriads of software/hardware emulators and clones.


Long time user of Wunderlist here. I just migrated to Microsoft To Do, and am happy with it. All the features I cared about are still there, and it is more or less the same app. The "To-Do" space is awfully crowded...


To Do is wonderful. This is the first To Do app that I've used that gets almost everything right.


Yep, I had the same anger. You should release it though... There are many app copies/themes 'like X' (uber/instagram/etc) that look the same. They don't get any vultures ;)


How about it making it theme-able?, with the default theme something that everyone will most likely change because it's so bad (i.e. bright neon green). One of the themes could be a WL match. If you wanted to go nuts have the themes as a separate github opensource repo (not connected to the project) which the app pulls in.


Cool!

I convinced a bunch of friends to use WL a few years ago and now they're mad at ME for the acquisition! Not really mad, but despondent and looking for alternatives. I migrated to Apple's todo list app (which has +ves and -ves), but it was funny getting a bunch of texts within a week blaming me for getting them hooked on WunderList!


if you're using react then definitely checkout https://www.bytehub.dev/ for some cool react components


I run a hackerspace in Fresno, CA called Root Access. My side project is that we're making PPE and other things to help with various efforts -- face masks, face shields, scrub caps, ear savers, no-contact accessories, etc.

https://rootaccess.org/covid-19/

We're working with other local maker-y spaces on these efforts; we've picked up a few Ender 3's to help with the 3D printing and we have a small team of volunteers helping with sewing. So far we've distributed over 1,500 face masks to folks and healthcare workers in Fresno, San Diego, Idaho, and soon to a school in Uganda.

This is all on top of trying to keep our community engaged and hosting meetups and happy hours on Zoom. Also on top of my day job. I've never been so busy in my life, and I'm looking forward to a time when we can safely re-open and get back to building the community face-to-face.


Awesome, I’m also volunteering in the PPE space. Check us out:

findthemasks.com

findthemakers.com


I've been working on a data frame implementation for Python. I think API-wise we can do a lot better than Pandas. Especially after having seen and almost daily used dplyr with R, when having to use something else, I miss that convenience of a clear and consistent API and the chaining of operations. I don't know yet if this project makes sense in terms of speed and corner case handling. I haven't done any real-world work with it yet, but at least it's been a good learning project.

https://github.com/otsaloma/dataiter

https://github.com/otsaloma/dataiter/blob/master/dataiter/da...


As someone who uses pandas daily and detests it violently, godspeed.


One interesting usecase for a Pandas replacement is AWS lambda functions. If you have a skinnier package that can get 80% of the data-processing niceness whilst using up a smaller % the Lambda function's size limit this could come in very handy for many people.

Also agree that the dplyr syntax is cleaner.


Nice project! Not a quarantine project, but we've been building data frame abstractions in Python for genetics [1] [2]. We spent a lot of time studying the existing abstractions (pandas, R/dplyr, pyspark, etc.) Desinging a data frame in Python is an interesting and challenging problem. Our design is far from perfect, but I think we've found an interesting design point. Here's your example in Hail:

  >>> vehicles = hl.import_table('vehicles.csv', impute=True, delimiter=',', quote='"')
  >>> t = vehicles.filter(vehicles.make == "Saab")
  >>> t = t.order_by(t.year)
  >>> t.show(3)
  +-------+--------+-------+-------+----------------+-------------------+---------------------+-------+----------+-----------+-------+-------+
  |    id | make   | model |  year | class          | trans             | drive               |   cyl |    displ | fuel      |   hwy |   cty |
  +-------+--------+-------+-------+----------------+-------------------+---------------------+-------+----------+-----------+-------+-------+
  | int32 | str    | str   | int32 | str            | str               | str                 | int32 |  float64 | str       | int32 | int32 |
  +-------+--------+-------+-------+----------------+-------------------+---------------------+-------+----------+-----------+-------+-------+
  |   380 | "Saab" | "900" |  1985 | "Compact Cars" | "Automatic 3-spd" | "Front-Wheel Drive" |     4 | 2.00e+00 | "Regular" |    19 |    16 |
  |   381 | "Saab" | "900" |  1985 | "Compact Cars" | "Automatic 3-spd" | "Front-Wheel Drive" |     4 | 2.00e+00 | "Regular" |    21 |    16 |
  |   382 | "Saab" | "900" |  1985 | "Compact Cars" | "Manual 5-spd"    | "Front-Wheel Drive" |     4 | 2.00e+00 | "Regular" |    23 |    17 |
  +-------+--------+-------+-------+----------------+-------------------+---------------------+-------+----------+-----------+-------+-------+
  showing top 3 rows
Hail's tables are functional. Operations like `filter` and `order_by` return new tables. That means it would be an error to use `vehicles.year` in the `order_by`, since the input and the sort expression refer to different tables. Unfortunately, this means you can't use `.` chaining.

A little more background on the project: Hail's raison d'etre is a 3-dimensional generalization data frames we use for genetic data called a MatrixTable [3]. Conceptually, it is matrix-of-dicts rather than lists-of-dicts.

Genetic data is massive, so all of this is lazy and works on out of core data. The Python front end constructs an IR representing the query, it's fed through a query optimizer (written in Scala) and executed by a backend. We're working on multiple backends, but our primary backend right now is Spark.

[1] https://hail.is/docs/0.2/index.html

[2] https://hail.is/docs/0.2/hail.Table.html

[3] https://hail.is/docs/0.2/hail.MatrixTable.html


Not a side project, per se, but I've finally picked up the guitar again.

I've been a musician for going on 20 years, mainly piano but I like to collect the ability to noodle on instruments. When I was around 13 I broke my left forearm and it healed in a way that limits the rotation of my wrist quite a bit. This makes playing guitar rather difficult and at the time I started to consider branching out from piano there were a bunch of factors that made me give up on being able to play guitar. I was gigging as a piano player for 10-12 hours a week, while also going to school for piano and CS I started to develop tendonitis and trying to play guitar made it a lot worse, so I quit. I'm now in a place where I can take care of my arm (and I have actual healthcare) so I started back up again.

I guess HN is cool with self-promotion, so here's a jam I made with a looper pedal after about 2 weeks. I call it "More Theory Than Experience"

https://youtu.be/_beFK_j-Dk8


I've been playing the guitar for 20 years but I play as good as someone who has played for one year! I'm just not good at it. I love it, but I just never could get past some of the basic chords. It's very therapeutic though, so whatever. I'm enjoying it. :)


I tried and tried and tried to play guitar. Now I can play some chords and couple strumming patterns. My only goal was to sing some easy songs and play along. But it seems that singing along requires next level of mind bending.

So last week I ordered a drum kit (Yamaha dd75) and hope to have better luck with drumming. It’s a blast so far.


How did you learn? :) Any resources you can recommend? I used to learn but dropped it as couldnt find good resource to learn on my own


I took a rather circuitous route of playing and learning piano for 15 or so years (I'm 25 btw, I just started early) and being a massive theory nerd. I also taught myself piano until I got to college, which I think gave me unique perspective but I also know took waaay longer than it I'd just taken lessons. At the same time, I really enjoyed learning as a passion instead of a commitment. There were times I walked away but I always came back. That's just me though; if you learn better with the mild pressure of a teacher's tutting that's absolutely valid.

I've currently teaching myself as I just love exploring. I've watched some youtube videos about scales and I follow a few guitarists on youtube (samurai guitarist[0] comes to mind and Paul Davids[1] has probably been my biggest influence in my ability to play). Other than that, it's all been throwing all of my experience at it and seeing what sticks and what doesn't. Definitely record yourself once and a while to see what's working, and listen to a lot, both passively and actively, and try to spot what you like and really analyze it.

speaking of which, I've found music theory to be completely indispensable in my ability to self-study. Being able to take what I heard and internalize it, and being able to take what's in my head into my hands is absolutely essential.


That's awesome!

You sorta motivated me to pick up guitar again... the sound of it makes me excited so gonna cont. with a course I bought on Udemy and see how far that takes me.

I'd also checkout Samurai guitarist and Paul Davids.


In South Africa, we have pretty harsh lockdown laws, including only being able to exercise within 5km of your house and only between 6am and 9am.

I'm a keen mountain biker, so I've put my energy and frustration into developing new mountain bike trails in the hills around my house. Been meaning to do this for a long time, but there are such good trails a few miles further away, so the incentive has not been very strong until now.

I'm building for about 1 hour per day on average, and I manage to get between 10 and 100m of trail built in that hour, so by the time the lock-down ends I'm aiming to have a contiguous piece of singletrack that's a mile long.

Also, I've been helping on a local project to develop an open-source ventilator (https://www.backabuddy.co.za/champion/project/rescuevent)

And I'm working on a peer-to-peer donation platform (which is not really ready to show to anyone yet)


Creating a new trail sounds interesting - I had to do similar as part of a service project when I was a kid, but I imagine it's much more fulfilling when it's for your personal use. How are you able to create the trail, is it free use public land, or more of a guerrilla repurposing of untended private land?


The land is in limbo: it's abandoned pine plantations currently being used by joggers, dogwalkers and (to a lesser degree) cyclists.

I can highly recommend trail building (both walking and cycling trails) as a combination of physical, aesthetic and intellectual challenges (figuring out how to use the terrain to be both fun and interesting/possible to ride and then moving tons of earth and vegetation to make it happen).


Paradyskloof?


My favorite project in this thread. Great work.


fellow saffer here, good for you!


I'm primarily an iOS developer and wanted to start learning web development so I built two really simple sites:

http://pointillism.digitalbunker.dev/: I've always been into generative art, so I built this site that takes a source image and recreates it in a Pointillism style

http://gitrandom.digitalbunker.dev/ : Generally when I'm struggling to come up with project ideas, I'll just browse GitHub. This site lets you explore random GitHub projects by language and topic.

I built the sites using Vapor, so I could continue to use Swift and just learn one new thing at a time.

I'm probably going to pick up some iOS app too to leverage the new hobbies people are discovering being at home (i.e. bread making).


https://twitter.com/rozgo/status/1255961525187235842

Real-time avatars with our deep computer vision pipeline; developed with GStreamer, Rust and LibTorch. This CV pipeline is usually used for training robots inside simulations and generating synthetic datasets. But given the circumstances, thought it would be fun to explore other use cases.


Cool work. I went bankrupt trying to turn similar tech into an advertising platform 15 years ago. Long before the term 'deep fakes' I had a fully functional photo to 3D avatar reconstruction pipeline and VFX production pipeline for realistic actor replacement in media. I went as far as acquiring global patents. But I was too early - no one believed what I was doing was possible in '08 (when I was pitching my working system to VCs). By '13 I was exhausted, broke and dismayed at the short sighted and entitled attitudes I'd encountered. I gave up and now work in facial recognition.


https://youtu.be/QVRpstP5Qws

Using my own face live through webcam.


I would love a consumer-ready version of this!


I found a free espresso machine on craigslist (Gaggia Classic). It was old, rusty and "wasn't working". Spent time researching the model, took it apart and de-rusted and cleaned every part. Now it makes delicious coffee. Totally worth it


Next logical step is to put NetBSD on it :)


I've been writing a modern Zettelkasten-based note taking implementation. Planning to open source and release the initial version in a couple of weeks, the MVP is coming along nicely.

I was looking for a Zettelkasten note taking app which would 1. work on laptop and phone 2. wouldn't have any vendor lock-in and 3. wouldn't go away if a single company folded - couldn't find one, so I started writing one. I'm writing it as a PWA to make it available ~everywhere and planning to use dropbox/google drive/whichever as the backend so users will have full control over their notes.

I'm amazed how much you can accomplish with modern web tech stack. I can literally bypass any need for a server by having the user connect to their cloud! I can just create a PWA and publish it as an app! On the downside I've learned that some features are hard to implement with above requirements using PWAs though. For example, only Chrome supports some level of filesystem access, so storing notes locally would mean discriminating by browser, which I don't feel great about.


I just finished reading "How to take smart notes" by Sönke Ahrens. It's mostly about Zettelkasten. Been looking for a good tool to implement it. Didn't like any of them very much. Zettlr at least seems tolerable, and it uses plain old Markdown files so it's easy to store the notes in git.

Something with phone support would be nice, hell even just read-only mode would be great. Best of luck, and please report back if you can set up a landing page or a github repo or something else we can poll :-)


Will do, glad to see there's interest.


I'd also be interested! Is there any way I could give you my contact info without publishing it here on HN?


I created a placeholder repo for anyone interested to watch: https://github.com/tsiki/connectednotes

If you want to give me feedback on the current pre-alpha version feel free to ping me, I'm tsiki @ freenode/IRCnet


Add me to the list of interested parties!


I created a placeholder repo for anyone interested to watch: https://github.com/tsiki/connectednotes


Done =)...


Amazing to see so many people have started working on something like this in the last few years. Mine is also command-line based and started out as a homegrown collection of shell scripts, but I've started rewriting it properly in Rust.


That's incredible. I decided to do exactly the same thing in go (since I'm trying to learn it) and have some pieces working. Mine is command line based and I'm trying to build in an Emacs mode for it since it's my primary interface.


Is it up somewhere?


Not yet. Still working on it locally.


This question is for emacs users reading this post, do you use org-mode for Zettelkasten-based note taking or some other mode or tool ?


I have no clue what's emacs org-mode, so I guess that answers that :)


I have wanted to do exactly this for a long time. E.g. Bear is great but I want to make all kinds of modifications to it but I can't.

How do I follow along?


Turns out HN doesn't have a private messaging... and I don't know why I assumed it would.

I created a placeholder repo for anyone interested to watch: https://github.com/tsiki/connectednotes


Thanks!


I can send you a message when I push the first version out.


Please add me to be notified as well. Look forward to it!


I created a placeholder repo for anyone interested to watch: https://github.com/tsiki/connectednotes


My friend and I got really frustrated by the available third-party authentication platforms like Auth0, so we began building our own instead.

https://feather.id

It's a RESTful server-side API for adding user authentication and authorization flows to your apps.

We've been taking a lot of inspiration from Stripe and mostly just wanted to use an auth service with docs like Stripe :)

(Please note this is still pre-pre-pre beta. The docs are incomplete and we have yet to even integrate it with our own apps, so please don't try to build an app with it yet!)


I applaud this and wish you luck. I'm a big cheerleader of Auth0 and have used them in the enterprise setting and in side projects. They do a lot of things right and have such promise for becoming the "why would you choose anything else" solution. They have all the mindshare of JWTs by owning jwt.io. But I must say that the documentation is truly awful, and I think that leaves them vulnerable for a competitor.

The core API docs are good, like the Management API Tester page. But the walkthroughs and general documents are full of broken links, inconsistent use of language, and varying levels of precision in how things are explained. You end up Googling for answers, finding community responses, and having to piece things together.

The way things are called APIs versus Applications is confusing no matter how you put it. Then they are sort of ambivalent in places. For example, look at the SPA guides. Sure, it'll walk you through the Implicit Flow for SPAs, but elsewhere they second guess themselves and say you shouldn't use Implicit Flow for SPAs. Instead, they say create a "Normal Web App". But good luck finding that specific article again just because you came across it once!

If anyone in Product or Biz Dev at Auth0 is reading this, I would urge you to make a case for "even easier mode" that abstracts a bit more and comes with better documentation. I found myself doing so much token management and head scratching about ID versus access tokens that I felt like I need to be a technical expert on the standards just to follow the directions and feel like my app is secure.

Auth0 has potential to actually solve identity in an easy way, but they are not meeting that promise right now, and that is your opportunity.


Thanks for this comment!

We had the same exact experience. Couldn't have explained the state of the docs any better!


Apologies in advance if you try to sign in and cannot!

We're running with extremely light infra on AWS and just hit our max-db-connections to MySQL.

Good lesson for the future, because it looks like we're not cleaning up the connections properly!


I also think Auth0 looks a bit sketchy. I think it’s a combination of looking different than the host app and the design looking a bit outdated.

I looked at your website on mobile and wanted to let you know that it doesn’t properly resize; the UI overflows.


Thanks for the feedback! We should hopefully find time to optimize the site for mobile in the coming weeks


I do not intend to discourage you from doing this, all the best. But did you check out keycloak or ory.sh before you tried to do this from scratch ?


Hi psankar, we ran across Ory when we were doing our initial "does this exist?" Google search, but haven't actually looked into that project too deeply.

And we'd never heard of Keycloak before, so thanks for pointing them out to us!

Have you ever used or built with either platform? If so, what was your experience like working with them?


I have used (and still using) keycloak and gatekeeper for some projects which we use in prod as well. They are very good and stable, but require a lot of memory. I came across ory when I was searching for alternatives for keycloak. Keycloak is done in Java and the JVM is quite hungry. Also, there are no official helm charts etc. and the project does not feel cloud native. However, when the alternative is choosing auth0 and paying a lot of money, can't complain about keycloak.


I already think of Auth0 as being the stripe of the auth world. What frustrations did you run into with them, and what are your goals to differentiate with feather?


I really thought the same when we first integrated with Auth0 for one of our projects! Most of our frustration with them boiled down into 2 points:

1. The Auth0 universal login solution is not "white-label".

It requires pushing users to an auth0.com pop-up page which has rather limited customization options. Granted they do allow their customers to upgrade to "custom domains", but they up-sell on this point (minimum $23/month) which doesn't make it ideal for us bootstrappers just wanting to get a demo running.

We additionally had a handful of users mention our login flow felt insecure. We determined this to be more imagined than factual, but figured it was a result of the change in design language between our app and the auth0.com pop-up. It was particularly acute when transitioning from native iOS to a web pop-up when entering sensitive information.

The underlying feedback we kept hearing around the login flow was along the lines of “why am I giving my password to this sketchy-looking website rather than to your app?”

2. The Auth0 docs and interfaces are a maze!

We had a terribly difficult time piecing together tips and footnotes from the community support forums and tutorials on Google to complete the information provided in the docs themselves.

There were a number of steps we needed to implement which were completely omitted from the official docs. We found others were running into the same problems as well on the community support forums.

For us, this essentially resulted in a feeling that Auth0 was letting too much complexity bleed through the interfaces for the developer figure out themselves.

So these are the two driving reasons we started hacking around on Feather:

- To have a truly white-label auth API

- To have more intuitive interfaces and documentation


They offer pretty good startup discount for a year.


I'm working on starting a Wireless ISP in rural Portugal:

https://gardunha.net

It's a nice mix of both online and offline work. Also, the community around here is mostly made up of various combinations of farmers, hippies, retirees, and permaculture folks. Everyone wants a decent internet connection, but no one really has the skills to do much about it. I've lived here a year now, so thought I'd give it a go.

It's a windy road. Actually, it all started out because I wanted to get fast internet for myself on my farm. Then I thought, "Hey, why not start a business?" Feature creep at its best.


I did WISP work for a while in snowy rural California. My biggest surprise is that my time was 90% construction (drilling through walls, snowshoeing out to climb towers, running cables, etc) & customer support, and about 10% fun networking and hardware configuration. We used mostly Mikrotik equipment for the backbone because it is dirt cheap, with a combination of Ubiquiti and Cambium radios. My favorite tool that I discovered is the open source "Splat! HD"[1], a radio viewshed generator that you can use to optimally place your towers, and find out if an end user should be a able to connect. Ubiquiti also has a similar tool commercially available.

[1] https://www.qsl.net/kd2bd/splat.html


I am sure you have already seen this, but for reference to anyone else who wants to start their own ISP: https://startyourownisp.com/

Note: not sure how correct this information is outside of US


That site was actually the inspiration for this. I saw it on HN a few years ago and it just stayed in the back of my mind. I hadn't really considered it as an option up until that point.

Something else I've found useful is RF Elements' YouTube channel. In particular this playlist [1]. I suspect they overstate some issues slightly in order to promote their own products, but I'm super impressed with how well the video's explain the topics.

[1] https://www.youtube.com/watch?v=rwciKjvHFfY&list=PLii-eQuaf5...


That's super cool!

If you aren't already, keep an eye on Starlink—when they start operating in Portugal I bet it'd be a real benefit to your business. Yours is pretty much the ideal use case.

Also, wow, living and coding in rurad Portugal sounds like a pretty idyllic life from here. Aproveite pra mim, né?


Thanks! And I hadn't actually thought of Starlink in that light, I had been assuming they would be competition. Could you explain your thoughts to me a little more? I'd be really interested to hear them.


You connect to starlink at your tower and everyone connects to your towner. I don't believe starlink end user is personal internet.


Excellent, that is certainly the answer I was hoping for!


This is amazing, I've been thinking of doing the same for my area. I've always wondered about the ping tho. Right now I have 4ms with my current provider which uses a wired connection. Whats the usual ping using radio? (from a client perspective)


The radio will generally add 2-3ms latency I believe. Plus any routing latency at the customer's router, and any latency in your own infrastructure. If one is comparing to satellite or LTE, then this is basically amazing. If you're comparing to existing copper/fibre connection then it will have some effect.

I'm saying this having not actually deployed the hardware yet, just based on research.


Depends on radio and network. Right now, I'm on wifi (so it goes wifi -> router -> ISP radio -> ISP fiber) and have 2.5ms ping to one of the bigger DC in my city, so I guess it can be pretty good ;)


This is soo cool Adam! Well-done

Might consider this in the future for my local community


I like it! Good luck!


that's really cool


https://remottecoffee.com a tool to make easier how we keep connections online. Several weekends of confinement have helped one friend and me to shape and implement one of those projects we had in our personal backlog.

Because of the distance we are from each other, our friendship has relied heavily on phone calls and video calls. Some time ago, we started calling them, "remote coffees", "- Hey man, when are we having our next remote coffee?"

We met at the University, we spent about two years working for the same company and we have kept in touch during these years thanks to our "remotte coffees" and also due to the many concerns about technology and productivity we have in common. "This conversation should have been recorded!". We are sure this same thought came to you after some either formal or informal conversation you had. The challenge was simply to place a product live with as much free time as this quarantine allows, and here it is. We are not launching a super business, nor did we intend to, we both are fully dedicated to something else. We just wanted to launch this MPV and share it with friends and contacts.

We do have a lot more functionalities and ideas to put on it but, if you want to try it, those ideas will be much better by taking into account your honest feedback.


A truly valid problem. Myself i don’t like online communications with friends. It only makes me feel worse. it feels so incomplete and awkward. In person our convo is flowing much better


Not always you have the chance to keep communications on site. I am from Spain and I've moved to Germany a few years ago. I am working in an international company where there are people from everywhere around the world. I love to keep connected with all of them and a remote coffee sometimes is a good idea.


Took over all of cooking at home - all meals so as to give the spouse a break. Lesson learnt, cooking once in a while is fun but cooking every meal every day (in lock down from march 22nd) is really really hard since it requires meal planning and execution every day from the moment you wake up.

Decided to open source some of the personal projects of mine. https://github.com/vivekhub/password-generator and https://github.com/vivekhub/simplenote-backup. Nothing fancy but something I have been meaning to do and started doing it. Started learning K8S as well so that is a positive. Decided to setup a personal website https://www.vivekv.info as well and had to learn hugo to do that. So on the whole feeling good. Sorry about all the links and plugs but hey I am genuinely proud of what I have done :-)


Dude good for you! I’m jealous, it sounds like you’re using this time very productively and have learned a lot from it!


Solar battery powered defense system. I’m confident the zombies are coming for us and so I am preparing with a security system built on raspberry pi, esp32 & loads of gear from adafruit/amazon delivery. The final system should have perimeter sensors (pir and break light sensors) that active pan tilt tracking cameras and deploy a tracking drone (weather permitted) with laser pointer and scary sounding robocop ed209 voice...

So far I have a camera working that can sleep when no motion and wake back up if low battery after enough charge.


Very interested in learning more from your project. Have you published any code or blogs describing any of your plans?


I'm building a treasure hunt web app (for mobile). An app for exploring the city. Had to learn a lot about geo APIs. But may have a potential business model now for larger city-wide events. Have a redesign mocked up now. Started writing the week before Easter and finished the week after.

- Web geo APIs to guide you to the next "treasure".

- Webcam API to capture matching photo.

- "AI" for matching photos and answers to questions in the backend.

- the "AI" doesn't work well, planning to add a python Lambda with a better SSIM algo.

The hardest part so far has been permissions in iOS. If the user blocked geo permissions for Safari it is kind of a pain to enable again for a normal user. I haven't had a chance to test in Android yet but I presume that will present other challenges regarding permissions.

https://app.huntsi.com


This looks more playful but I guess you are aware of GeoCaching (https://www.geocaching.com/play)


Yo this is super cool


Since I can't play basketball with people, I built an app that helps me play basketball with myself. It uses object detection to identify me shooting and the ball going in or not and then creates a heatmap in real-time. Sort of like fitbit for basketball. I had to do some labelling myself, but it didn't take too long and it's working! I try to beat my shooting percentage from the day before. I put it on the Apple App Store to start and I'll build an android version next.

You can see a live demo here: https://www.myshotcount.com/


This is so cool! It's been a while since I'd looked at Homecourt[0], but it looks like they've expanded quite beyond the shot tracking. Cool that you're competing against Steve Nash hah

This is super neat though, looking forward to following along. Would love to sign up for a newsletter if yas had one.

[0] https://www.homecourt.ai


Thanks, man. I built it, showed some friends, and then learned there was a competitor, but that's cool. The world needs more than one and for some reason they don't offer anything to the billions of android users.

Based on my conversations with users, shot tracking is most used feature by far. There are a bunch of other services that help with dribbling [0] and drills [1].

[0] https://dribbleup.com/ [1] https://www.94feetofgame.com/app <- also a Steve Nash project


Very cool! You did quite well in the video too, was that one take or multiple? :)


It's a continuous take, but probably a couple were tossed before that one ;-)


super cool! I love the markers on the court. Super clear.


Thanks! Trying to make it as simple as possible.


I've been trying to get into deep learning and natural language procession. The cold start problem is real and there is lots of material out there with varying quality.

End goal: I'm based in the US now but come from a small ethnic group in Ghana (Konkomba) and recently came to the sand realization that our language will die over time. I want to build enough tools for translating to and from English and in the process perhaps learn things about language that fit with the models of the most popular languages today.

Unrelated, going to finally setup a personal website to host pictures and 99% chance it'll be WordPress-based.


So, I just created this account to reply to you. You definitely need to check out this project called Wikitongues ( https://wikitongues.org ).

You can single handedly save your language from going extinct


Thank you!!


I'm unexpectedly renting a house in Toronto. It ticks all the boxes, but is a bit of a junker.

Well, one of it's bedrooms was wallpapered and ancient looking. Very ugly. I decided to take care of it.

The wallpaper, and the three papers that came before it, are now stripped. The wall is in rough shape post-strip, and I'm repairing it. This room is on its way to perfection.

I've never done this before, and had no idea how much fun it is. There is no mistake that can't be fixed, and the instruction on YouTube is amazing. I'm having to reel myself in a bit, because I keep on noticing other things I'd like to fix myself. :)

It's sort of like the experience I had when I first started writing software. The power! My creativity is kicking in hard.


yes!!

diy stackexchange and reddit are fun places to hang out, to learn the wizardry others are using.


Wait, this is a rental?


*its


My side project kind of escalated quickly into a main project. I've been working on my own browser for the last couple months, and decided that I can improve a lot when it comes to using the web for automating and acquiring knowledge (i.e. the semantic aspect of it).

Currently on the verge of founding a (possibly viable) startup with it, but the browser itself is totally alpha for now.

Been working on parsers and protocols for a while now, and had to switch to TDD to keep my sanity together. Needed to write my own test runner that can simulate network behaviours (2G slow fragmentation is real) and peer to peer scenarios. Most servers out there don't comply with specifications, so making my own client- or peer-side implementations work was a hard task.

Currently writing my own SGML parser and optimizer, so that the browser receives only "linted and upgraded" html that is free of malicious parts, whilst embracing the idea of disallowing everything that could be potentially misused, including CDNs that do cache busting all the time.

The idea behind the browser concept is that trust is not established by default, and users should decide what website to trust, and match that with what kind of content they'd expect the website to deliver.

[1] https://github.com/cookiengineer/stealth


That is awesome. I've thought for a while that a worthwhile project would be a new ground up browser. I've been put off it because I'm aware of my own limitations. Back a couple decades ago I wrote an os (well toy os is a better description because like many projects you can write an os in a weekend and then spend the rest of your life and your 1000 best friends finishing it).

Anyway, IMHO, you should really focus on code clarity and hitting the high points with a good modular system. Ignore all the edge cases and if/when you open source it, that will allow people to focus on narrow pieces and make them more compliant.

The world doesn't need another rats nest like firefox and chromium have become. AKA you need to reinvent the konqueror of 1999 that spawned webkit/chromium.


I totally agree with you. Stealth currently is a PWA and reuses an existing Browser as a rendering engine or runtime. As the codebase is babelfree es2018 I am currently dependent on a modern Browser being preinstalled on the system (aka edgium or safari 12 and later) in order to use ESM modules.

I have no chance competing with google, so I’m probably gonna reuse as much of the servo project as possible when it comes to runtime and layouting/rendering. Currently a bit unplanned, on Android and iOS I have an experimental prototype up and running that’s just bundling nodejs-mobile and using a webview to localhost.

The browser UI (pwa ui) is served on port 65432 in order to allow userspace usage (ephermal ports can also be used by anyone on Windows).


> It is built by a former contributor to both Chromium and Firefox, and is built out of personal opinion on how Web Browsers should try to understand the Semantic Web.

Could you share more about this vision?

> writing my own SGML parser

How did you land on SGML?

What do you think of a browser/mode that parses markdown, so we can have a "markdown web" with less complex clients?


> Could you share more about this vision?

Phew, tough question. As I went into web development when XHTML 1.1 strict was the "cool shit", I kind of valued the aspect of using the web for acquiring and distributing knowledge. Not only for me, but also for publishing or other forms of media (e.g. by offering print stylesheets), screen readers, and semantic extraction of that kind of knowledge.

(I was also working on project(s) that were using DAISY to automatically convert websites into hearable formats to be consumable by blind people.)

Somehow from then (around 2000ish) to now, everything went to shit and nobody cares about that aspect anymore. News websites are too busy displaying ads and pushing subscription dialogs in my face (before I read a single line of their article) - rather than being readable or consumable.

And I kind of disagree with that. I want to make the web an automatable tool to acquire knowledge in an easy manner. And I hope I can do that programming-free. Currently, programmers can easily build scrapers - but imagine the possibilities once any person or kid can do that with a few mouse clicks.

I know there are a lot of proprietary scrapy-based solutions out there already, but honestly I think they're crappy. They see the web as DOM and not as a statistical model that a neural network "could" learn once you have a different way of rendering/parsing/modelling things.

> How did you land on SGML?

The reason why I am currently building my HTML(5) compatible parser with SGML ideas is because nobody closes tags. The spec is very complicated (especially while having an eye on what can be abused in the XSS sense or related security issues with CORS), so currently I'm kind of looking at a lot of parsers out there and try to find my own way of making this into a statistical model, so that in future my neural net adapters can optimize old HTML code into new, clean, HTML5 code.

> What do you think of a browser/mode that parses markdown, so we can have a "markdown web" with less complex clients?

Actually this was my first idea to build this. I wanted to convert all html to markdown and back, so that it's easier and cleaner. The issue I realized is that most markup and meta information that comes with a website is lost in markdown (or commonmark), and layouting sometimes implies structure, too - due to how websites in wordpress (or any user-friendly CMS) are being built.

Code-wise you usually cannot imply meaning by only looking at HTML, sadly, that's why I switched to a "filtering proxy-like" approach, whereas the Browser UI simply receives the upgraded, clean HTML, CSS (and webfonts or other assets).


This is a subject I've been fascinated with recently. The web isn't nearly as good as it could be at gathering, networking, and assimilating information.

I feel that one key aspect of something like this would be the ability to annotate anything on any page you stumbled across, and to navigate between all your annotations in a cohesive manner.

I'm excited to see what you make!


Hypothesis was working on web annotation, https://web.hypothes.is/about/


Thanks for the detailed response.

> (I was also working on project(s) that were using DAISY to automatically convert websites into hearable formats to be consumable by blind people.) Somehow from then (around 2000ish) to now, everything went to shit and nobody cares about that aspect anymore.

Yes, it's tragic that you could seamlessly compose streaming audio, video & text from multiple servers using an SMIL _text file_ in early 2000s, but it's all gone now.

Yet we now have large markets of broadband-connected humans with countless hours spent in front of streaming media (including video conferences) that they cannot annotate, inspect or compose. Then people wonder why they are "exhausted" after hours of Zoom meetings via powerless blackbox client apps.

There's still a tiny bit of standards activity on sync of A/V content with web text, part of the upcoming fusion of epub & the web, aligned with Google's "Web Packaging" that will enable a fully-offline internet with signed content (can of AMP worms).

https://www.w3.org/AudioVideo/Activity https://www.w3.org/community/sync-media-pub/

> so that in future my neural net adapters can optimize old HTML code into new, clean, HTML5 code.

This is exciting work. Apple has a powerful ML/AI chip on recent iPhones, likely to be used for image processing and augmented reality annotation of live video. It would be nice to apply this silicon power to the semantic ambiguity in real-world human use of markup languages.

We need an alternate timeline fork of the security aesthetic of CSS "user" vs "publisher" stylesheets, which at least tried to formalize the inherent social/power/finance conflicts between stakeholders in the web content rendering pipeline. Of course, we've since added identity, device fingerprinting, keystroke timing and countless other minutiae to the arms race. But the fundamental need for separation of powers will never go away.

Many users have powerful silicon on their devices, but today it is rarely employed in defense of "user" stylesheet/reality parsers. The proxy architecture you are developing could be combined with fully-private "user" datastores, of the kind harvested today without consent, but instead customized by the user for their own objectives, with data always in their physical control. With local personalization and ML-powered disambiguation, the unfair playing fields could be tilted a little towards local autonomy.


> But the fundamental need for separation of powers will never go away.

... and I think that this was actually the job of web browser engineers, and they failed to do so. I kind of like where Brave is going to be honest, though I do not think that an optional approach will make a change. We've been there, a lot of times, and nothing will be changed if we don't force the industries to.

Honestly currently the only Browser that is doing the right thing when it comes to privacy policies of third party cookies is WebKit/Safari [1] [2] [3] as Apple has the leverage to enforce it via their iOS market share.

Firefox/Mozilla currently is too concerned about breaking things and Chromium is a bad privacy joke outside of Ungoogled Chromium.

> The proxy architecture you are developing could be combined with fully-private "user" datastores, of the kind harvested today without consent, but instead customized by the user for their own objectives.

Exactly ;) Can't talk about this more (for now as my startup idea has to stay under the radar until Q3 this year) but I think you've figured out what I want to do with this concept.

- [1] https://webkit.org/tracking-prevention-policy/

- [2] https://webkit.org/blog/8311/intelligent-tracking-prevention...

- [3] https://webkit.org/blog/10218/full-third-party-cookie-blocki...


Thanks for the discussion, looking forward to using your work! Brave on iOS is interesting because it combines underlying Safari browser code with Brave's policy UX (e.g. per-site JS controls).


> we can have a "markdown web" with less complex clients

You might want to check out the Gemini protocol[1].

[1] https://gemini.circumlunar.space/


Did you consider building this on top of Chromium? It has to be so much more work to recreate a browser, securely. I mean, certainly, it is more than one dozen people can handle in a lifetime. Was there something about Chromium that doesn't work on a basic level?


> Did you consider building this on top of Chromium?

Currently, the Browser UI is actually just a PWA pointing to the nodejs instance and is reusing whatever rendering engine is available. I want to have a clean codebase, so everything is babelfree es2018 and will only run in edgium and safari 12+ (and chrome 70 or webkitgtk or webkitqt or firefox etc).

For mobile my plan is to bundle nodejs-mobile and just use a webview there, which is based on chakra (so it is JIT free and is technically allowed on iOS). For desktop I will probably unclutter servo modules and try to have a minimal fork that doesn’t have all the web apis I don’t want or need...but I’m not sure, as I’m not yet familiar enough with the servo codebase.

One thing is sure: I can’t create a competing rendering and layouting engine, so I gotta reuse an existing one.


This is awesome. I can't imagine working on something of that scale by myself. I'm so impressed. Keep up the good work!


Thanks much, really appreciate it ^_^


This looks really cool.


Built a platform for people to play social games with friends and family over Skype/Zoom.

https://ziago.co

So far 8 games, adding more weekly. Games follow the same code patterns, so about a week to add one.

Everything runs on Firebase, needed something to launch quickly with real-time capabilities. Vue on front-end.

Would love some feedback.


This looks great. I love the focus on "party games".

What about adding poker or even making a dedicated poker app? I'm in a weekly, virtual poker game that is a mashup of different tools.


Would you have an email address or another way of contacting you? Your contact form / suggest a game links appear inactive at present. Would love to discuss something with you.


Add more family friendly ones. A simple way to do a pub quiz type of game would be awesome! We do one but showing the questions on screen would be great.


Absolutely, quiz type games will be great on this. Yes working hard on more non-drinking games. Tx.


This is pretty much what I wanted to build, but with way nicer design! Looking forward to playing with it on our next games night.


Tx, I'm a designer by trade so that helps.


I always wanted to have my app in the App Store. I started little before quarantine, and eventually published my first iOS app — a simple day counter, Countdowns (free with no IAP). It was my excuse to try SwiftUI, and learn how to distribute an app in the App Store. https://rusinov.me/countdowns


Pretty cool! Do you have source code available anywhere? I'd love to see source of a smaller app for learning purposes.


Stanford publishes Paul Haggerty’s course “Developing iOS Apps With Swift” free online. The whole class is small iOS app projects with source code available and he’s really great at walking through the code in the lecture videos.


Thanks for the heads up. Just added this to my iTunesU Library.


I'm ashamed to share the code because I feel like I got so much wrong and code is not elegant. For learning purposes, Hacking With Swift videos by Paul Hudson helped a lot. https://hackingwithswift.com


Well, if the only thing stopping you is being ashamed, I can make a deal with you...

You put it on Github, and I'll review the app and suggests code improvements (probably not amazing since I don't do iOS that much, but I know some Swift, and a lot more experience with Go, Java, JS, etc.).

Up to you, but you should never be ashamed of the code if it works. It got accepted to appstore, it's good enough ;).


I'm up for that. Please shoot me an e-mail and I'll provide you details about GitHub repo. My e-mail is: igor at rusinov.me.


I'm trying to learn something about deep learning and do an end-to-end project with computer vision.

I have a raspberry pi and picamera and wanted to detect the pigeons in my balcony and then play a sound or something to shoo them away.

But it's going nowhere, I'm too dumb to even start properly :(

- Nvidia and CUDA stuff is so hard, I can't set it up properly no matter what

- Tried YOLO but without CUDA and OpenCV I can't run it in video. Don't know how to fix it

- Tried to copy other projects but can't find anything that I can parse with my amateur brain. I get lost and doesn't matter how many youtube videos I watch or stackoverflow pages I check, it's errors after errors after errors.

- Tried in windows but that's not viable. Installing Ubuntu nearly broke my pc and somehow a virtualbox messes up the whole thing. Currently looking at this.

So yeah big mess, I'm way over my head and it's not fun anymore. But I still want to shoo away the pigeons and love the idea of learning more about DL/CV but guess I need to learn about the basics first, practice in other things before doing this.


I’m also picking up deep learning with a focus on computer vision.

Do the first lesson of Fastai’s Practical Deep Learning for Coders — https://course.fast.ai/

It explains that trying to use your own GPU takes a lot of energy that you should focus elsewhere when you’re getting started.

Paperspace Gradient (referenced in the link) offers free Jupyter Notebooks with GPU’s you can use for 6 hours at a time (and re-start when they expire). You can get a classifier that distinguishes dog breeds up and running in less than a day and probably a few hours if you just watch the video and follow along with the notebook.


I've seen that recommended here in HN before, maybe I really need those lessons before venturing any further. Thanks for the recommendation!


> I'm too dumb to even start properly :(

It's not you. I have decades of Linux development experience, I've developed machine vision systems before, and I have a doctorate. And twice I've given up in frustration while trying to just get the CUDA drivers installed.

I honestly don't know why nvidia hasn't made it simpler.


I'm so glad it's not just me, as other user said maybe I need to use some cloud notebook or go with CPU. Hopefully those options are more fruitful. Thanks!


Try nvidia-docker. It's pretty awesome!


I found this book to be the most approachable Deep Learning book that actually helped me build something.

https://www.manning.com/books/deep-learning-with-python


Love the idea, I've wanted to do something similar. I don't have anything very helpful, but I'd guess that the reason virtualbox isn't working is because it doesn't have direct access to the graphics hardware. Just a guess though, I ran into a similar problem trying to run Kali linux in VirtualBox but didn't have a ton of success because the system didn't have direct access to the Wifi module. Alternatively, you could simply shoot the pigeons with a pellet gun and it would be just as fun.

What's your background?


The damned pigeons don't come to the balcony when I'm there, and make a mess everywhere. I don't want to hurt them just that they hang somewhere else!

My background is anthropology but I've always worked as a data analyst (read: excel guy) but got "promoted" as project manager for a team that has some data scientist doing automation projects and got interested in CV and NLP. I know python but for data analytics (pandas, seaborn, scikit, and so on) but never did anything for myself in DL and just wanted to learn more while building something (I miss doing stuff besides slideware tasks).

Regarding virtualbox, I will probably give up and look again into dual boot Linux. Will ask a friend that is an experienced coder to hold my hand while I do that.

Thanks for your reply!


Keep with it if you can. Again, I told have any hard experience in that area, but I'm a software developer by trade, and a geography person (kind of) by academics. Physical Anthro and Geo have some crossover, and both stand to be going in the direction of applying some DL techniques at present and going forward. Particularly in the areas of remote sensing if you want a rabbit hole to dive into :) Unix can be a nightmare, and you just have to suffer it for a while to get used to the patterns. Otherwise, My recommendation is to just work slowly through the bits and pieces. The amount of projects that people seem to have just slapped together in a weekend is daunting, but far from reality for everyone. The expectation of fast progress is the enemy of actual progress.


To setup CUDA, I highly recommend nvidia-docker. It makes it super easy, especially if you're familiar with docker. All you need is the official graphics drivers from the NVIDIA homepage.


YOLO will be slow on a raspberry pi. Try instead SSD MobileNetv2 with quantization-aware training and run inference with Tensorflow Lite; you should get at least a few frames per second.

I recommend starting with a pre-trained model (COCO, for instance) and finetuning for your images. However, even with finetuning you probably need > 10k images to get good results.


Thanks for the heads-up, will look into that!


Once I read an article related to similar problem, The author was keeping track of specific birds and small animals at his back garden. As I remember, they used openCV and Tensorflow for project and trained system with images(may be 1000 images) set of birds. pretty much successfully identified birds most of the time.


I would drop CUDA and Nvidia mess, you don't need GPU neither for training or running inference, CPU should suffice. I would start with running a pre trained network that's based on COCO set, on top of every frame that you get from camera. So basically you're doing object detection on images.

After the success of this POC, you can gather about 1000 images of pigeons together with transfer learning, again on the same pre trained COCO model.

https://medium.com/object-detection-using-tensorflow-and-coc...


Thanks for the heads-up! That's probably a lot more viable for my situation. I scrapped around 3000 images of pigeons from the internet hopefully it's enough for a decent POC.



I'm working on a garden.

I moved into a house late last fall, so I actually have some space to do so. This scratches multiple itches for me.

Itch the first: I've missed having a vegetable garden since I moved out of my parent's place and into apartment life years ago. While a small garden plot can't wholly replace the need to go to the grocery store for fruits and vegetables due to the inherent seasonality of growing food at small scale, it's damn hard to beat truly fresh fruits and vegetables that were picked not an hour before they landed on your plate. And any surplus left when the growing season is over can be preserved and stored for the winter.

Itch the second: It's _my_ creation, not my father's with which I am merely helping. When living with my parents, my father had his way that he'd like to lay the garden out. Granting that a man who grew up in a rural agricultural community probably knows a thing or about vegetable gardening, watching how he did stuff did always leave me wondering if there wasn't room for improvement. Since this is my garden, I can make my own experiments and decisions on how the garden is to be arranged, and what vegetables I want to grow (e.g dad loves beets; I do not). I've been reading about companion planting, and am eager to try things like growing corn and beans together, or growing chives near my peppers and tomatoes to keep aphids away (seriously, fuck aphids).

Itch the third: It lets me develop useful skills outside of my career in tech. While I have no delusions about quitting being a sys/net admin and going and becoming a farmer, I do think it's important to nurture useful skills outside one's main career.

Itch the fourth: I have something to automate with tech. Gardens do need to be watered. Under-watering will limit your yield, but over-watering is also harmful to both the garden and the wider ecosystem of one's immediate area. There's a goldilocks-zone when it comes to watering, and the just-right amount of water depends on a number of things: what you're growing, your climate, the soil, etc. There is a real danger that before the close of summer, the garden bed will have an automatic, multi-zone drip irrigation system, complete with soil-moisture sensors, controlled by a Raspberry Pi or similar SBC.

During April I built a loft bed frame out of framing lumber. I can post about that too if any of you are interested.


For companion (and succession) planting I'v made quick referential page [1] that I have collected, so i can use directly in garden.

It is really basic/unfinished, focused on Central Europe (also I'm planning to make it more general - as I'm currently gardening in Norway).

At the end I want to make something that will automatically recommend list of plants that I can plant on specific plot based on what is/was there previously. At the moment it is just list where I have to search manually for specific plants.

Sources are not clear there because it is mostly just for my personal use. But for example for companion planting I'v processed wikipedia page [2]. Now I manually review sources from there, because not everything that is stated in the table is really supported by the declared sources.

[1] https://plants.llllll.eu/ [2] https://en.wikipedia.org/wiki/List_of_companion_plants#cite_...


I have spent every quarantine weekend in the yard and it's been magnificent and extremely rewarding. We had previously built raised beds but had limited success due to lack of regular watering so my first priority was repairing my entire drip line system and then extending it to the beds. Success!

Glad to hear others have garden / yard side projects as well. best of luck with the harvest.


I have a different approach. I water the raised beds, with a hose. I guess whatever gets you outside in the garden, is good. As they say, the best thing for a garden is, the gardeners shadow.


I will be watering with a hose as well, at first. If I waited until I had a drip-line system in place, I wouldn't have enough warm season left to get very much yield from whatever I managed to get planted. But I absolutely do intend to spend time in the garden. Gotta keep watch for weeds and check the various veggies for ripeness.


Another tech thing it occurred to me to add to the garden. Some computer vision and a water sprayer to keep the squirrels off my corn and sunflowers.

That will actually be quite hard. I'll do the drip lines first.


That was a PyCon talk a few years ago :) https://www.youtube.com/watch?v=QPgqfnKG_T4


Invest in a cat


Housemates are allergic to cats and the dog owned by one of said housemates has killed cats in the past. And even if that were not the case, I happen to like the songbirds in my area, which would mean the cat would have to stay indoors.


Do you have a blog? I would love to see your progress with a garden.


Check out the blumat watering system.


I am building an app for fire departments. Currently targeted at the german market.

The problem nearly every fire department which is based on volunteers have, is that it's hard to learn the location of all items on the different vehicles.

So i build a small quizz app to support the fire departments with this. Now every fireman can learn the location of the items on the go.

German website: http://fahrzeugkunde.hvoss.dev/

Techstack: App: Flutter Backend: Spring-Boot + Vaadin


Would you recommend Vaadin? I've never heard of it but looks really interesting. What are the advantages vs let's say springboot + angular?


I wouldn't recommend Vaadin. I worked on a work project using Vaadin 10+. Despite 10 and 14 being LTS releases they felt like they should still be in beta, my team ran into countless bugs. Vaadin didn't fix any of these bugs with any sense of urgency, even with a paid support contract (obviously less relevant for a side project). Working on that project almost made me leave the company, and the use of Vaadin was a significant factor in that.


Thanks for sharing you experience. At the end I think I'll just stick to learning Angular.


Not the OP, but figured I’d weigh in... I found it to be extremely productive when I used it for about 6 months. Only downside is that it’s not open source and some of its features are not free.


I finally finished a little convenience tool I made for fetching lyrics for your currently playing Spotify song, called Spotify Karaoke.

Currently I'm working on an Electron app for automatically importing/managing screenshots and recordings from your Nintendo Switch, off the SD card. It matches the file name IDs (Nintendo uses these seemingly random IDs for each game) with the actual game name, moves it into a custom folder structure, etc.

https://github.com/gedrick/SpotifyKaraoke (live)

https://github.com/gedrick/nintendo-switch-screenshot-manage... (still a WIP)


Loooooove the Spotify karaoke tool. I have to know the words to songs I listen to so I started a local Electron tool (https://github.com/bradydowling/spotifylyrics) like this some time ago but then abandoned it.

It's great that this is web based and can be used on a device that you're not listening on.


Thanks for building this! It infuriates me that they have a widget that does display the lyrics but keeps switching to random trivia every 5s. There's an open bug on spotify to have it always show lyrics but doesn't seem to receive any love.


I think Spotify joined forces with Genius. And that trivia is from Genius. Sometimes the trivia is good, but I would have loved a simple lyrics widget.


This quarantine I decided to restrain myself from starting a new side project (many of you might agree that we've got too many abandoned projects) and just pick one from the abandoned queue.

My pick: http://seriesreminder.net It was going to be the first choice when you wanted a new series recommended or just wanted to see which tv shows will air this week.

It was still using Rails 5 and Sprockets so I had to make the proper upgrades (including migration to Webpacker) and revamped the design using React and MaterialUI. I wrote an article about that https://medium.com/@cionescu1/how-to-use-react-components-in...

My only goal moving forward is to find the sweet spot (not really MVP, but a nicely working state) where I can go back to just ignoring this project again


if you're using react then definitely checkout https://www.bytehub.dev/ for some cool react components


Small and stupid, but I'll share anyway.

I started playing the new Animal Crossing and wanted a good reference for all the fish and bugs to catch. I wasn't happy with static tables that were hard to sort and filter, so I created the interactive reference tool that I wanted: https://ac-catches.com/

First site I've made with TypeScript, so at least I was learning something along the way.


Wow this is rad! I also created an animal crossing site: https://ac-catch.com


Your site looks great too--love it!


This is great! I don't play Animal Crossing but it looks like a fun, functional site with a useful purpose.

Certainly small, 100% not stupid.


I started groceri.es (https://groceri.es), a recipe manager and smart shopping list in one. Its goal is a combination of paprika (https://paprikaapp.com) and Listonic (https://listonic.com).

I was continuously fighting my recipe planning. I did it for a long time in Google Keep. I can't manage recipes there, I have to add items to the shopping list manually. Changes in menu planning don't keep up with the shopping list, I forget to check the pantry. Etc. This time looked right to create something to mitigate the frustrations.

The technology is quite simple, it is a CRUD app in Flask with SQL backend. Everything is a docker container with data in a volume. UX is now quite limited, based on Fomantic UI. There is no goal to make it Saas, for friends I will just spin up a second instance.

I have been a software engineer for over a decade, but haven't been programming the last 5 years. Besides I am a fanatic home cook. So this looked like the perfect opportunity to have some fun again.


I've been slowly making my way through this thread -- you should check out https://whisk.com/ it's been a game changer for my menu/shopping planning


Love it! Thanks for making this. I’d love to have an app that uses this to pull up recipes and help pick items from Jumbo.


I have always wanted to learn DevOps. I use Heroku for almost all my apps, but I wanted to learn what is happening every time I do git push heroku master.

I started learning Ansible recently using the 'Ansible for Devops' book. I used the concepts mentioned in this book and used the author's Ansible roles as a starting point to create a playbook for deploying Rails 6 apps.

Here's the code - https://github.com/EmailThis/ansible-rails

It includes roles for performing the following tasks -

* Installation of common packages, basic SSH security

* Install NGINX, Certbot (for Letsencrypt SSL Certs)

* Ruby (via rbenv)

* Rails 6, Puma, Sidekiq

* Redis

* Nodejs/Webpack/yarn

* Postgresql + saving backups to S3

* Deploying using Ansistrano


Thanks, this is really interesting.


Building an audio chat tool in Rust akin to a walkie-talkie. The original goal was a hardware device that's pre-programmed to work with a group of other devices where you just push a button to talk and it gets broadcast to the whole group with high quality audio.

First I'm starting with just a software version because cross-compiling for the pi-zero is kind of annoying.

Intended to be used by our team as we work remotely, but hopefully it'll be open-sourced soon after.


This is a cool idea, can you link to github or wherever the project will eventually land?


It'll show up here when I can publish it:

https://github.com/tonarino


Yeah, seconding this as a good idea


Beginning work on solving the metadata problem in classical music. Specifically, for those of us who either buy CDs or download tracks from the Web--the metadata is generally badly formatted, partial, in the wrong language, inconsistent from track to track, etc.

The hoped-for result is that you can run the tool on a directory and it will identify the files correctly and insert the metadata so that it is all consistent and correct. You can then copy the files to your favorite devices, and easily find what you want, make playlists easily, etc.

My current stage is researching the current tools, which are all (so far) partial solutions and IMHO cumbersome to use.


Check out MusicBRainz. have done a pretty good job of the tools around music tagging. Following is the link of the similar tool you are woking on from these guys: https://picard.musicbrainz.org/


> Beginning work on solving the metadata problem in classical music.

OMG, yes! While I know this is one of the classical (ha!) bikeshedding problems, and you'll never make everyone happy (and piss off a whole lot of them), I can only applaud your efforts. I'm as OCD about classical music metadata and code formatting as anyone, but when I saw that Go had a language formatter with an official indentation style, I loved it for settling a tired debate, even though I hate tabs for indent.


Neat. I implemented functionality like that for a media player, but it was years ago. The main issue we dealt with was the poor quality of the data, so I think we ended up with a combination of autodetect + store the original (incomplete) metadata so the user can always revert it if they find something wrong. Not a great UX, but GI/GO I guess.


Yeah, that is indeed a big part of the problem, as is anything that's crowd sourced. It's amazing in this day and age that the music companies themselves can't provide clean, consistently formatted metadata.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: