I posted it on Show HN the other day[0] but didn't get any comments yet. I am not complaining though, considering the scope of this. I would be very happy if someone would give us their thoughts though.
The video was produced by a an outside firm, yes. A professional video production company.
Regarding the technology stack, I'll start by saying that it is not SIP/RTP/ICE which may surprise some people. We had prior experience of that (previous consulting for a major telco), but choose to not go that route. Those protocols are seriously overcomplicated (design by committee...) and the only benefit it would give us is interoperability - which is often important, but not for this project.
So call control, media stream and NAT punch-through protocols are entirely custom. Might sound crazy, but if I tell you the server is less than 3k lines of code, and was written in two weeks, maybe not so much?
The call control server is done in Erlang - turned out well so far as we've live-upgraded the servers several times without interrupting any calls. We use iOS apns VOIP notifications for notifying the other peer of the incoming call.
The UDP media stream is peer to peer and carries H.264 for video and AAC-ELD for audio. Since the app is iOS only we could take advantage of the built in hardware video decoder and audio libraries for that. Not to mention the patent licenses for those technologies that come bundled with iOS. We had to develop a jitter-buffer and audio-video syncing solution on top of that of course - that's the most complicated part of the client side.
Edit: I should add that we do not support Symmetric/Carrier grade NAT traversal in this first version. Since it's not possible to establish a direct peer-to-peer connection under such conditions we'll need to add server side support for forwarding the media. That's going to be a major challenge for next year.
I’ve been working on this for the past serveral months, an idea I came up with as I was trying to figure out my vacation schedule for the next year and plan a budget for the various countries I thought of visiting. It’s a website that calculates the best time to exchange one currency for another accounting for the various exchange rates involved.
LogCroc - Because Crocs like Logs
Analyzes server logs for events, exceptions and displays a realtime dashboard.
I decided to create a twitter app that allows people to post 140 character rap, and challenge other people. I wasn't able to test because of a lack of users / ability to promote due to low funds.
I built a voice-activated switch to toggle the lights in my bedroom: http://arunpn.com/projects/voice-activated-light-switch/. More than the project itself, I am happy that I got into the habit of working on side-projects regularly. Now I have a couple of projects going on to keep me entertained.
I decided to dedicate my free /side-project time to my own biggest itch: how can we improve the way we learn and remember? In particular, I think the way we teach & learn software development could be greatly improved.
As a first step, I created http://www.codingbrain.com. It's a knowledge management app that integrates with your markdown notes.
You put a lot of effort into this. What makes you believe it's important to consciously remember things we learn? Maybe the knowledge is supposed to seep into our bones.
Maybe it's enough to record, find something when we need it, but not necessarily remember it. What proof do you have that remembering everything doesn't come at a cost?
I meant "find something when we need it" and remember it to be the same. I'm not trying to create a photographic memory. Short term memory is limited, and it requires repetition for something to sink into long-term memory.
How often have you looked something up (e.g. "how do I cherry pick in git?") only to forget it and then 2 months later to look up the same information again? For this we take notes.
I'm working on reducing the need to re-do the same process again and again, to making learning and remembering more efficient.
I built Space Invaders in C++ and SDL. It's the closest thing to a game i've actually completed so far.
The actual implementation isn't that great, it's lacking a few things but most of the gameplay is there, but my goal was mostly learning the peripheral stuff and throwing every tutorial I came across at it.
I posted a Show HN for it two weeks ago[0] but it was never commented on. I'm not complaining about that since, given the scope of some Show HN projects, it's not likely to be impressive and I wouldn't have expected much positive feedback, but i'm still proud of it.
I've always wanted to create at least a small working Java library that could be potentially useful to someone and put it into the Maven Central repository to learn the whole process. I've finally managed to do it in 2015 by creating the LambdaFromString[0] library that can convert a string with code to Java 8 lambda at runtime :-) Surely not a rocket science, but still makes me feel a little bit proud.
I created HitByWords this year, an iOS app which helps people explore news with Google Trends.
This is totally a passion project since I got a day job and only can spend my spare time building it. Due to serious time and budget constrains, I am only able to develop this app piece by piece. Though I am very enjoy the process :)
The motivation to build this app is I read news everyday but sometimes I cannot relate some reports. But I feel if a report is published by a credible news source, the event or accident is supposed to be crucial for some people in the world and I should feel sympathy. Like today an astronaut phones wrong number from space and I found people in London, Birmingham and Manchester have high interest in "Tim Peake" through Google Trends, which makes me feel this is a real thing.
I still have a lot of ideas to implement and try to make this app a better tool to explore news.
Hope my explanation is clear enough since English is not my first language.
Questions, comments, and suggestions are welcomed.
No doubt that I am most proud of (cannot say I invented it, more correct would be that I stumbled upon) the agile and Maker centric TimeBlock method http://timeblock.com
We started using the method Jan 5'th 2015 and now we have a SaaS app with paying earli bird users and more users of the method not using the app.
Two of the companies using the method (besides us), attribute their growth directly to TimeBlock.
I do some content marketing, some SEO and linkbuilding but mostly I sell it old school.
Call all linked up with on linkedin, show them and convert some to the method, ask for referral, repeat.
The best source for lead has been posting articles and images from when I teach others the method on linkedin, this leads people to my homepage where they sign up with phonenumber - then I call them :)
That's awesome! I think that's great taking a side project into something more. Are you using meteor.js?
I'd adjust your above the fold look
-just my 2 cents
I taught myself Haskell and built a tool that searches and download movie subtitles. [1]
Taught myself angular.js and built Ceasium [2]. A tool for freelance programmers that can do minimal project/time management. It also has notifiers for watching HN and Reddit threads. If you run a bundled python script, it can even monitor multiple Reddit inboxes.
http://frikjoring.no an website to show trips to go ski touring in Norway. My hope is that this page can become "the" page to visit when planing a trip.
All content is provided by the users, so not a loot of content yet, but hopefully it will catch on, got a long way to go here.
My first site actually launched, so kinda proud of getting it out there. So much more work than expected when starting up.
Entire site is created on a JS stack with React on the client and node on the backend.
I made https://stitchpics.net which is a website that converts an image into a cross-stitch pattern entirely client side (with some help from my mother-in-law for the idea)
Made it to try out Polymer and at this point I'd say that I'm not all that happy with Polymer's performance, but it is nice to work with components on the web.
https://devarist.com, an app for keeping a daily work diary. Another "scratched my own itch" app built specifically to do what I needed but it's been building a user base quite nicely over the last few months. I recently added Slack integration so that you can work with your diary from within Slack.
It made it on to the front page of Product Hunt and reached top 100 in productivity, so I'm pretty happy!
One thing I learned is that after the media hype dies down, visits/downloads drop A LOT! I knew this from articles I've read before, but seeing it happen is something else (and sucks).
I built http://highbetastocks.com as a way to scratch my own itch (was too lazy to have to login to my brokerage account every time I wanted this info). And in the process learned a little bit of Meteor js ^_^
I created and launched a phone auto-responder app* as a side project (a basic version of Grasshopper). Now actually trying to find paying customers seems outside my comfort zone, but there is a lot to learn.
I created a snail brain for my snail simulation. There's still a lot of work to do, but my snails have sensors, memories, and make decisions now. I was pretty proud of getting the brain to the state where the snails could decide to eat, mate, etc. on their own.
It's not released yet (app review couldn't get back to me in time for the holiday freeze... grr), but I made an iPad music creation app called Composer's Sketchpad. My goal was to develop a modern, interactive take on sheet music that didn't require a ton of mental energy to reason about, and that could also be used to notate things like guitar solos and complex rhythms just as easily as any Bach choral. The app takes the form of a long scroll view with time on the x-axis and pitch on the y-axis; a grid indicates measures, measure subdivisions (time signature), and the notes of the equal temperament scale. You draw notes with your finger or the Apple Pencil, and you can start each note at any point and bend it to any pitch, with time and pitch grid snapping tools available as an option. Playback is instantaneous and defined by your current scroll position. There's a bunch of instruments as well as a percussion set to choose from. Performance was a high priority, and it runs acceptably well on my iPad 3.
Here's a brief demo clip. (Feel free to ignore the BG music; it's not directly related to the actions demonstrated in the video. I still have some editing to do.) https://www.youtube.com/watch?v=cS4-Qho6Log
I'm very proud of what I accomplished with this app, but I'm also ashamed of how long it took me. The app was first conceived several years ago, and the first serious commits were made early last year. Throughout 2014 and 2015, I spent far too much time slacking off and avoiding work (though admittedly I was travelling for a large part of it); my savings cushion prevented me from seriously worrying about deadlines. As a result, about half the work for this project was done in the last few months. I could have finished this project in half a year at most, and it kills me to think of all that time wasted. (I didn't have any other work during this time, though I did release a couple of small side projects.)
I'm also worried about whether anyone will actually find this app useful. I built it mostly for myself, and in using it, I've been finding that I can suddenly write music a lot more easily than ever before. On the other hand, it's missing most of the power features musicians expect from their music software. There's no Audiobus support; no MIDI in or out (largely due to the hacks required to get per-note pitch bending working); not even export at the moment, though I intend to add MP3 export ASAP. The samples are pretty generic MIDI sounds. It's intended to be a musical notepad, not a tool to create production-grade music, and I fear that might be too small of a niche.
In any case, even if it doesn't make me a ton of money, I'm elated that I created something that didn't exist in the world before. This is the first tool in my life that's precisely tailored to my needs. It's going to grow with me as I get new ideas. It's going to be used to write music that I could never write before. Already I have a feature list several dozen items long for the next few versions! Through this project, I've also — finally — proven to myself that I could design and build a fairly complicated app almost from scratch. I look forward to what I can do with this new-found confidence in the coming year!
I posted it on Show HN the other day[0] but didn't get any comments yet. I am not complaining though, considering the scope of this. I would be very happy if someone would give us their thoughts though.
[0] https://news.ycombinator.com/item?id=10783251