My project/uBO filter list removes the "annoying" elements noted above as well as other "features" of websites (e.g. social share bars, cookie notices, etc) through a filter list that works with uBlock Origin.
I update the list often, and admittedly am probably entering into an arms race but I'm just really sick of websites hijacking (what I think) the web was built for (information).
Feel free to subscribe to the filter list by pasting the URL below into the 'Custom' section under the '3rd-party filters' tab of uBlock Origin.
This filter list also works on mobile Firefox for Android with uBlock Origin installed.
 Project Homepage https://github.com/yourduskquibbles/webannoyances
http://ipfessay.stavros.io/ - Publish uncensorable essays on IPFS
https://www.eternum.io/ - Pin IPFS files with a nice interface
https://www.pastery.net/ - The best pastebin
https://spa.mnesty.com/ - Fuck with spammers
https://www.timetaco.com/ - Easily make nice-looking countdowns
And this is just the last two months or so? Also, lots of hardware stuff:
A music player made from URLs pulled from sub-reddits. Its a work in progress.
This lets public transit passengers answer questions like:
- "My train is getting later and later, is it actually moving?"
- "My train is getting later and later, has it actually STARTED its journey?" (sometimes the answer is "no", sadly)
- "Is it just my train, or are many trains running late?"
- "What was the on-time performance of this train like yesterday? 2 days ago? 7 days ago?" (Some trains tend to be chronically late)
It may come as a surprise that the backend of the system is actually not a database, but Splunk (http://www.splunk.com). DBs are nice, but Splunk is fantastic when it comes to data analytics and reporting.
I'm currently waiting for Splunk to make some of their machine learning modules available for free so that I can start pulling in weather data, train the machine learning component against both that and the train data, and use that to predict the likelihood of any given train becoming late.
If I didn't have some creative work I would be much less happy.
It's not-for-profit but I've met lots of amazing people. I've been able to use my skills and knowledge to help many of them and many of them have used their skills and knowledge to help me. It's fantastic...:)
I've always wanted a good Arabic root-based dictionary with vowelling, plurals, etc (basically Hans Wehr online). I also wanted the structured dataset for some linguistic "research".
It was a fun project - I built out a web interface for reviewing and updating entries and put in a lot of hours of manual correction (just to get all the entries to validate - I still have a lot more corrections/fixes to make...). I'm a little burnt out on it at the moment, but I plan on:
- fixing those mistakes and a few other bugs
- cleaning up the UI/display
- moving onto a "real" server framework
- writing up some blog posts about those short linguistic investigations I'd like to do now that I have the structured data
- making an API?
Notably lacking is any plan to promote it... I posted it on reddit and I'd love it if people stumble upon it and find it useful, but I did it mostly as a labor of love and something that I personally find useful!
I've also made CbrConverter: https://github.com/timefrancesco/cbr-converter
Coverts pdf to cbr and vice versa.
And then there are a bunch of other small projects like:
- Ebay Search Scheduler (schedule Ebay searches with custom parameters)
- Twitter Time Machine (download and browse your twitter timeline) https://itunes.apple.com/us/app/tweet-time-machine-2/id83212... - windows version also available
- Autosleep (put the windows down for good) https://github.com/timefrancesco/autosleep
And many others I really enjoyed making and using.
Yeah, I know it's not particularly fancy, nor does it involve any clever coding tricks or interesting features. However, it's literally the only community on the internet dedicated to the series, and one I've decided to run for a minimum of two decades to make sure said franchise finally builds a decent fanbase.
Is it going to make money?
Probably not, given how the franchise it's based on sells about 2 million copies worldwide at most, and hasn't gotten a new game since either 2013 (WarioWare) or 2008 (Wario Land).
But it's one with a passionate audience that up until recently had nowhere online to discuss the series nor anywhere specifically dedicated to their favourite franchise. So I decided to change that by setting up and promoting a community based on it, with the guarantee I'd keep it open for decades in the hope that eventually a community at least the size of the Earthbound one comes about here. With the hope that eventually I won't need to run the forum because there'll be enough sites about it to sustain a decent fandom.
But then somewhere along the line my projects started making me money and then I start reading all these marketing books and my perception changed. Now if I'm creating a site I'm usually more focused on SEO, list building and crippling my software so that I can extract more money from my users. I am making more money but the joy of doing it is gone. I feel bored writing software and generally browse HN and reddit and generally force myself to work.
Maybe it's time to go back to the basics and work on stuff just for sheer joy of doing it :D
It's quite compatible and brought me a lot of fun. Blog post describing it:
The biggest item in my portfolio is xi-editor, and I confess I'm wrestling with some of the questions raised in this thread. I think it has the potential to be a serious player in the editor space, with extremely high performance goals (including fast startup and low RAM usage) yet a modern feel. It also has a great little open-source community around it who have been contributing significant features.
Yet it's at the point where it's _almost_ done enough to use for day-to-day editing, and I'm hesitating a bit before pushing it over the line. I think I'm scared of having lots of users. It's also the case that I'm very interested in the engine and the core of the UX, but the complete product needs a plugin ecosystem and along with that ways to discover, upgrade, and curate the plugins (including making sure they are trustworthy, lately a fairly significant concern). That's potentially a huge amount of work, and it doesn't really line up with my interests.
I'm wondering if it's possible to focus on the parts I care about and try to foster the community to take care of the rest, but I'm not quite sure how that would work.
If this were a business and I had some way of making a few coins from every user, then my incentives would be lined up to make the best overall product possible, including the less fun parts. But that's off the table; among other things, there are a number of good free editors out there, and the niche for a better but non-free editor is also well occupied.
Maybe the HN crowd has some ideas?
It's a little like SSLlabs server test, only much faster (5 seconds instead of 2 minutes), plus the tests are recurring every day, and you receive the diff if any.
It's always been a joy to receive thank you emails from users, or adding new features for users.
SSLping also allowed me to learn React and Redux. I'm still working on it, adding new features and refactoring what I don't like.
If I ever have to stop hosting it, I'll open source the whole thing. Or maybe I'll open source it anyway. If I could find a deal with a security company, I would work on it fulltime.
I consider it's a success, even if the numbers are not as high as I'd like.
A somewhat interactive GPIO pinout for the Raspberry Pi.
Not so much out of sheer joy, but because I needed it.
It started as a basic way to explore each pin and its available alt-functions.
Listings of add-on board pinouts were added later for people who want to use multiple boards- or perhaps connect them to a different host.
It's a wiki of all the info you need to drive your own vehicle around a country, continent or the world.
Border crossings, paperwork, insurance, gas prices, camping, drinking water, safety... it's all in there for a massive number of countries in the world.
I'm driving around myself, and it occured to me there is so much info out there but it all slides off the front pages of blogs and forums or is buried in facebook posts. Every three months people re-write and re-post the same stuff because they couldn't find it in the first place. The idea is not for WikiOverland to contain all the info, but at least link directly to it.
It costs me almost nothing, I check in on it a few times a year, and once in a while I find something fun there.
I have created a free site containing extracts from OpenStreetMap data. Unlike the metro extracts sites (Geofabrik, Mapzen), my goal is to extract specific datasets such as buildings, schools, hospitals, fast food restaurants etc from OSM rather than standard map/gis data.
My overall goal is to make the extracts available, and then to encourage people who use them and get value to actively update OSM to improve the quality of the data they are interested in. By doing this, the overall quality and coverage of data in OSM should (in theory) be improved.
Based around an idea of IO pipes with minimal semantics (duplex, reliable, ordered) that they can then extend to implement other traits like IO buffering, atomic send, packetization, compression, encryption, etc. 
This then allows merging together pipes of different types (by attaching the output of one to the input of another), which combines their traits and yields, for example, a reliable datagram carrier with in-flight compression.
With this it also becomes possible to write a simple IO bridge  that relays both data _and_ operational state between two pipes. The bridge in turn can be used to implement all sorts of interesting things, e.g. proper TCP relay, SSL tunneling proxy, TCP trunking proxy, etc.
It's definitely not making me any money. I would say the motivation is a little bit "joy" / learning, but also frustration that shells are so old, unintuitive, and work so poorly.
I've been going for about 16 months and it's still fun, so that's good. I think that seeing progress is what make things fun.
https://f5bot.com - Social media monitoring. It can email you when your keyword (e.g. company name) appears on Hacker News or Reddit. I don't have any plans to monetize it. I just made it as a small fun project.
Also, like many here, I've made a bunch of open source software for no reason other than the joy of it. Don't ever see that changing. https://github.com/codepleahttps://github.com/tulipcharts
It's a Chrome extension/homepage that shows you a new book every time you open a new tab, plus a special hand-picked idea that teaches you a new perspective/fact/concept.
I'm evaluating a couple different paths to make it profitable, but it's not currently making anything since Amazon cut me off its affiliate program.
Pretty fun, don't get to do much back end stuff so its a learning process. Its creative commons so can't make $ off it but the $10/month digital ocean box is doing fine. About 100 players on at peak and always games going.
Most of my free stuff is because I think the things should exist and they are things that shouldn't have to be paid for.
Some things are just plain geek fun
https://github.com/Lerc/stackie - Makes textures using a very compact stack machine language
https://github.com/Lerc/kwak-8 - Emulator for an 8-bit computer that never existed
Some things I wanted to have exist
https://github.com/Lerc/smallcalc - A compact pop-up calculator for the Cinnamon Desktop
https://github.com/Lerc/plops - (old) A lightweight Desktop widget engine that I made when I developing for 256-512mb boxes/
http://fingswotidun.com/code - A wiki usisng the plugin from the entry above. Has some introduction to programming javasctipt tutorials.
And the mad project that I come back to every couple of years to push a bit further along.
https://github.com/Lerc/notanos - A html/js login deskop for Linux.
And a lot of games.
Here's a silly one http://screamingduck.com/Lerc/LD13.html
Here's a really hard one http://www.screamingduck.com/Lerc/LD14.html
And here's one that might give your browser a hernia http://fingswotidun.com/ld21/
I fill out those 'other comments' on order forms with a request for a dinosaur drawing.
However, unlike other similar sites, the focus is equally on making it easy for students to use AND making it easy for teachers/mentors to use, adapt and create their own learning material. To this end, I am currently writing an online book as a "Teacher's Guide":
This is a project that started out 13 years ago as a free desktop application (http://rur-ple.sourceforge.net/) and which I have been working, on and off, during all that time just for the joy of it and knowing that people have found it useful.
Kiwix itself is not my project, I just packaged it for Sandstorm. I saw Sandstorm as a great potential tool for the off-the-grid, mesh networking, etc world. Being able to easily host a local copy of Wikipedia was one missing piece. I hope to work on the next piece soon.
(Kixix also supports Project Gutenberg, Stack Overflow, Ted Talks, and much more)
Not only do I not make money on the project, it actually costs me money! :)
I have seemingly undying motivation to work on it, knock out bugs, release patches, catch cheaters, etc. The community being so active and excited helps keep me going. I probably spend 30-40 hours of week on the project.
https://ranktracker.squib.co.nz - a tool to track an in game characters stats for a very old game called Clan Lord from Delta Tao. In development.
I seem to end up working on stuff with a very limited user base!
I have very loose plans to monetize via a paid subscription for syncing with other devices / phones, but there will always bee a free / open source version as well.
It's also a great excuse to suck up all the lore and properly analyse character conversations and what not!
Now I just gotta see if I can get some official looking art renders authorised for release from the devs since a press kit was never released
A few months ago I ended up scratching an optimisation itch for weeks, trying to figure out ways to make the lz-string library faster and smaller. Near the end I went a bit nuts with trying out what works, methinks (nested trees built out of arrays and such), but I had a lot of fun.
It's not even my library, nor did my PR request get accepted/rejected yet. It did however make the compression up to 2x to 10x faster, depending on how well the data compresses.
And hey, I now have an intuitive understanding of LZ compression that I never thought I'd have!
Since a few days I've been working on writing a component for idyll that lets you embed p5js sketches. Progress here.
and make video tutorials about it:
Computer graphics is still by far the most fun hobby I've ever had, I absolutely love it, it's like the most engaging computer game you can imagine times 100.
There's not much profit in making art(unless you want to do it professionally), but it's an awesome way to spend my free time, and sometimes it generates some ideas I like to share on youtube.
If you want to get into it, I highly recommend checking out SideFX Houdini. It's a bit technical, but extremely powerful and well designed 3D software, kinda like emacs of CG applications.
* Plsm - https://github.com/jhartwell/Plsm - which is an Ecto model generator based on existing schemas * Taex - https://github.com/jhartwell/Taex - A technical Analysis library for Elixir.
I didn't create any of the fonts. When I discovered the original .com domain had been lost to squatters, I decided to grab the .net domain and go about hunting down and re-hosting as much of the original content as possible.
The original site was later restored at a different domain (linked in the sidebar).
I've started to get into Ethereum and Solidity recently, but mining even a few coins just to have gas money costs more in electricity than they're worth. I'm letting my desktop mine anyways, but when I reach my pools payout threshold in a week or two (it's got a 3-year-old GPU), I'll probably kill the mining. (I know I could just buy some ETH with USD, but that's probably even more expensive and somehow feels different.)
(To be fair it hasn't been all negative - I bought a copy of the game Portal with the first bitcoin I ever earned, and a Kindle with the second bitcoin. But looking at it from a strictly money perspective, I'm definitely in the hole. In theory, it will be positive eventually.. but I'm still not sure exactly how.)
I have made no money off of this. In fact, I've probably paid hundreds in hosting/domain fees. But I love what I've built so far and use it everyday with my friends. Please check it out, I'd love to hear any feedback!
Also, remindoro - http://remindoro.com, a chrome extension to have recurring reminders to help me take breaks.
This is my swipable curated news feed. I only tested it on my iPhone 6, bookmarked to Homescreen. Outside of that your experience might vary.
I've been redoing it every few months for the past 3 or 4 years. At one point it included summation text and opened inline AMP links for articles that had them.
It's an automated curation of content I like and includes some basic sentiment analysis and popularity metrics.
The content is interspersed with a custom ad template just for fun. When there is enough content it includes mediative looping gifs/video.
It scrapes content, rewrites headlines, throws images through random filters to good/bad/artful effect.
This is my entire morning subway commute.
(Feedback always welcome)
Sharing funny kid quotes.
Been going for years, not a whole lot of traffic, but the family loves it (that was the intention). Recently migrated from a severely aging kohana/mysql backend to express/rethinkdb.
It'll never make money, but it has been a good project for me to modernise my web development skills which had gone rusty over the preceding decade. I also took the opportunity to learn NGINX and a few other things that I hadn't really been exposed to beforehand.
We've been generating them for years, they're a pain to store, we've made $0 with it. But I really like the data we're getting. We recently moved a lot of the legacy data into S3 to save our own backup & restore process ( https://wonderproxy.com/blog/moving-ping-data-to-s3/ )
Everything is open source and is MIT licensed, both the search engine and the entire database it searches over.
There are however many things that we can still do to take this idea further. Hopefully more people join to help us with that. :)
I created it initially just to scratch a personal itch (to make another project, https://alterslash.org, more resilient to upstream changes in HTML), and now get a lot of satisfaction just in knowing how much it's used around the world for all sorts of use cases I hadn't really imagined when I started writing it.
And it's great fun finding new areas to benchmark and micro-optimize.
https://www.anfractuosity.com/projects/painting-a-christmas-... - 'painting' the LEDs on my christmas tree.
https://www.anfractuosity.com/projects/optical-magnetic-stri... - optically decoding data from magnetic stripe cards.
https://www.anfractuosity.com/projects/zymeter-simple/ - a rather unsuccessful attempt at measuring specific gravity.
https://github.com/anfractuosity/musicplayer - playing .wav files via RF emissions from a laptop.
I started this as a Twitter game a few years ago; it felt like a compact idea with a good hook. Earlier this year I automated it- so it picks its own words and collates the stories on the website itself (mostly successfully).
It doesn't have a big following, but the people who play are passionate about it. Some people play every day, and the most prolific author has written ~650 of them.
I've seen people get better as writers, some experimental stuff (like an improvised longform story built over many daily prompts), and occasionally I see a microstory that knocks it out the park. That makes it worthwhile.
This started as more of a statistics page for the service interruptions published by the Metro on their website, which I scrape. The slight tongue-in-cheekiness of my website, which opens up with a large text saying something like "XX days since the last disturbance", where XX is usually a single-digit number, made it become mildly popular (at least in terms of what I'm used to).
This particular subway system doesn't operate on a fixed schedule and doesn't show the ETA for the next train outside of the platforms nor on any app or website. (Google thinks there's a schedule, but they've been fooled.) They also don't publish usage stats for each station, which would be of great interest to everyone who likes daydreaming of expansions, network reorganization and the like. Furthermore, I read and heard multiple reports of delays and interruptions that never made their way to the website. So I decided to build a Android app to unobtrusively crowd-source data and communicate the service status back to the users...
...and the very ambitious goal is to, one day, be able to calculate train positions and ETAs based on real-time data reported by the smartphones of people riding the subway. Pretty much "Waze for the Lisbon Metro".
Yeah, I've put months of work into this and there's absolutely no business plan; it perpetually feels 5% complete. But it's been fun putting together my second Android app, playing around with Postgres (after many years using MySQL), designing the REST API and writing the server in Go. I plan to use this big project as my sandbox for experimenting with machine learning and other AI techniques, as well as data analytics and visualization. There's already a small but extremely interested group of users, which really motivates me to keep working on this.
I'm working on https://theymadethat.com It's an IMDB for everything, not just movies. It does show you who built what but it does more: theymadethat can show you what they used to build it, what those things are made of (parts, ...), their evolutionary history, who they worked with, and so on
I can't say that I'm building it out of sheer joy; it's more out of obligation. There are so many people who's contributions to mankind should never be forgotten. Wikipedia is great (and I see it being complimentary to theymadethat in the long term), but we need something more. I could be wrong but I strongly feel that theymadethat is the answer.
...because it tracks all my thoughts, plans, & resulting to-dos, and I mark them off when done ("archived") in a few keystrokes. Then there is a simple feature for displaying the ~"journal" for a date range which defaults to starting yesterday at midnight: everything created or archived in that time is shown, so I've basically stopped keeping track in any other way, of what I have done, as I can always look it up.
I used to use org-mode, "inspiration" (an old windows program for collapsible outlines and mind maps), and various text editors, but this is the most efficient and flexible I have found. In my use, it is like a textual, ever-expanding comprehensive mind map that is highly efficient to use from the keyboard, uses postgresql, and can handle large amounts of data, having the same thing linked in more than one place, etc etc, so you can organize all possible stuff in arbitrary ways to suit yourself: I tend to use a few hierarchies and some frequent categories go in multiple places, for convenience. I use it to keep lists of gift ideas, calendar, personal journal, and it just gets the job done with the lowest impedance of anything i have tried or heard of. It has an auto "journal-generation" feature, some finicky import/export features to html or to/from text, searching, somewhat limited file storage, and more.
It has no mouse or mobile support yet, but it is the best thing I've found for any kind of note-taking (I'm the author). It needs simpler installation and added features but is stable and works really well, really efficient once you get familiar, and everything is on the screen. I hope to add anki-like features in the future. Contributions welcome. I'm told it needs an introductory screencast, which I plan to put up eventually, but for now there is a tutorial at the web site, on which feedback is welcome.
The latest code is in github, where I am working (very slowly) on an infrastructure for linking or exchanging info between instances.
I just did it for fun and because I wanted a tool like it.
I wrote "GLT", which stood for 'GitLab Tool'. It was going to enable me to manage a classroom's worth of git repos, 1 per student per homework assignment.
I chose GitLab because you can set up your own server, and then lock down stuff so it's harder for students to copy homework within the system (obviously they can still copy it offline).
Then I got busy with other stuff.
Then I found out about GitHub Classroom, which is the same thing just hosted by GitHub. I haven't retooled it to work with GitHub, but I'm hoping it's not too tough.
(I started off idly wondering whether to pronounce it "Guilt", like "Why haven't you done more of your grading?" or "gelt", like the candy.)
I find it fascinating watching the changes made to news articles over time. It lets you get into the mind of the various journalists and editors at different news organisations and see how they react to things. I just wish I had more time to develop it further.
https://github.com/bcruddy/GramLikeCam - my Panthers' fan friends seem to enjoy it. Initially I wanted to write a bot that would grab new instagram posts from Cam Newton and translate the weird characters he uses into plain english and post it as the first comment but ended up going pretty much the opposite direction.
https://github.com/bcruddy/tumbo - a very unpolished ascii video chat to play with websockets and string compression, I'll occasionally check out the website and see someone live streaming a day in the office.
We're currently looking for someone that can do UX design, if you're interested in making an impact on a live game send me a message.
It was VERY surprising for me to find out that one of the most popular programming languages offers little variety in terms of BT libs/clients. For a long time, if one needed advanced options like DHT or protocol encryption, his only choice would be jlibtorrent (JNI wrapper for the well-known C++ library). Well, not anymore :)
Another one Sorter: https://github.com/vitogit/sorter is a webapp to organize ideas, tasks and information using bullet points and hashtags.
Given the sources of this data, I'm pretty sure I'm not even allowed to profit off of this. Not really a problem as I'd be doing this in my spare time anyway.
The data-visualization side of it (e.g. https://iscanadafair.ca/data-visualization/example-usage/) isn't my strong-suit, but it's fun to muck around in regardless.
From my biased perspective, my extension is better. User uptake has been negligible, but I think the lessons I've learned have made it worth the time invested.
There are also things like a C++ port of some Python code to control a PWM-generating chip (inside the skeletal codebase that will eventually control a quadrupedal robot), and a collection of utilities that mostly have to do with things related to DOS-era games.
I built it to learn React and brush up my Go skills. I occasionally add new features.
It makes $0 now, but I plan to earn 10$ a month before my amazon free tier expires :)
https://bitbucket.org/wolfpld/usenetarchive - A set of tools to process and view large collections of usenet/mailing list messages. For example, an archive of polish usenet is 56+ million messages.
I just started a few days ago, I'm making VST plugins that emulate sound chips from old consoles / computers. (There is also a weird vocal synth in there). Currently working on a C64, hope to have it done tonight.
Theres an example program here:
My goal is to help students who might be struggling with the assignments.
For example, this is how much time I spend reading:
This is how much time I spend riding my bike:
(How it works: every 45 minutes, on average, it'll send you a slack message. You respond with tags for what you were doing right at that moment, like "job dev" or "bike" and it compiles your responses.)
We got on HN a month or two ago--people really seemed to like the project and we got a lot of great new contributors. If anyone else is interested in contributing, drop me a line :)
I love working on the controls, and Im learning a lot too. Im going to start taking donations soon, but dont plan on making a ton of money.
I genuinely find it useful for note-taking and organising things.
I continue to believe this is a useful tool even though we've sold fewer than 100 of them ...
Never planned to make any money out of it, I've made it because I needed it, and to play around with building a unix tool in C. It's pretty simple but it's definitely one of the projects I've had the most fun working on and I still have plenty of things I want to add.
It's one part Android client and one part Scala backend (though there's some Scala in the client too). While I'm fairly pleased with the UX and UI I was able to create (given that I really don't consider them my speciality), the backend is the bit that keeps my interest now. That uses Akka, Akka Persistence (i.e. it's event sourced), and Akka HTTP among other things. The clients communicate with it via websockets.
The details aren't exposed to users but it uses public key authentication so as to not burden users with passwords/PINs. Each app generates a keypair when first used, and QR codes are used to make changing account ownership simple.
Eazy.bike picks best bicycle stations considering real-time information of how many bicycles and free bicycle stands are available in more than 400 cities in 48 countries. Behind it uses machine-learning to predict what will be the availability of empty slots so that you can maximize the probability to find a place to park your bicycle.
It took me a huge work to write the whole stuff, API, Android, iPhone and web application, but I really like it.
It is a hybrid of R5RS Scheme + some things from Kawa, Racket and Clojure. It doesn't have a proper name and documentation yet.
I'm writing it as a hobby sandbox project, for learning purposes and fun.Trying to keep it simple and easy to understand (some things are not perfect though).
- full numerical tower
- lists, vectors, maps, sets, arrays
- symbols, keywords, strings (mutable/immutable), patterns (regexes), chars
- one-shot upward continuations
- Java interop
- futures, promises, delays, boxes (atoms)
Not implemented yet:
- persistent data structures
- bugfixes :)
PS: it is a pleasure to write it in Kotlin. Great language!
Simple online weight logging app with pretty charts, first web app I've actually pushed out into the public. It doesn't make a dime, but I love tweaking it and seeing the user number slowly climb.
Encapsulates a kind of different Docker workflow. One where your Dockerfiles live in a separate area from your project. Includes a bunch of bash helper functions for common things the containers need to do like wait for other services.
It also provides a little Dockerized testing system using pytest - which I might eventually separate out. I am working more on the testing part these days. And I'm writing a book about some of this.
It's a note-drawing messaging single-page web app for the Nintendo 3DS, in homage to the long-since defunct SpotPass (i.e. Internet) functionality of Nintendo Swapnote/Letter Box.
(Also, every open-source contribution of mine ever.)
The idea is to help people find klubs nearby, as well as provide a basic internet presence to those klubs whore founders don't have the time or knowledge to create and maintain a website, or even a Facebook page.
The website works by volunteer revision of data, as well as twice a year email reminders to founders to review the data. This helps ensure that the data is the most up to date as possible.
Unfortunately, not all klubs even have a public working email address, so thinking of it, I could probably do something about as well.
It is being used around the world.. never advertised it ever, except for the few times I posted on here and twitter.
Wanted to solve the problem of information overload and product discovery , not making any money because I am not passionate about marketing. Do you think this is worth pursuing?
It's a big procedural crafting game. The long-term goal is to make a Civilization-like game set in a Minecraft-like world, with really good AI. It's also a testbed for a bunch of ideas I've developed about massive, virtualized simulation. What that means is that you could in principle have thousands of cities with millions of individual inhabitants going about their business. But it's sort of analogous to lazy evaluation in that things are only computed if they would be perceived by the player, or need to be consistent with past information the player already knows.
Basically it's a guitar/bass fretboard where you can select a scale and a root note, then it displays the notes of that scale on the fretboard. It also has a bit of info about the scale, like the intervals used to build it.
Initially I didn't plan to publish it, but since it was barely decent I tried to put it online. I just spent a few bucks to buy the domain, but it don't cost me anything to keep it online, since it's just a static page and I use Netlify to host it. Btw, Netlify is awesome! Highly recommended!
Won't make money but hopefully will help make the web better.
Each edition features a Q&A with a company about their API and killer app ideas for developers. Here's a recent example with a YC S16 company called Nova: https://getputpost.co/an-api-that-unlocks-global-credit-data...
A few people have reached out about sponsoring it, but just for fun right now :)
I've been extending and updating the framework for a few years now. There's a tiny userbase but I like writing my games with it.
I've only spent 9 to buy the domain as the application (django application) is on a shared server. I'm making 0 $ from it, as it was made to solve a problem that I had while teaching mobile development where I teach.
I built a show tracker just for me (it's not nearly where I want it to be, so I don't share it anywhere, eg. currently my show database is out of date I need to see what broke my cron tonight. no ssl cert, no optimization at all I don't even know if my js is minified tbh, etc).
I am the only active user http://www.overseer.tv/user/smt and I built this because I watch a shit ton of shows and I often forget when premieres come, or what episode I left off on. My site is basically one click to mark a show/season/episode "watched" and I have a calendar and upcoming section, which is all I wanted from many other sites I tried before creating my own.
I host this on an EC2 instance for 29$ a month, and my own usage alone makes it worth it to me haha.
Just posted this a couple of days before! Not much notice but still it was worth a try.
It's a tool to help people create their list of favorite superhero movies and share them with everyone.
It was a fun way to get myself more familiar with React
Created a simple Twitter bot back in 2013 that auto-tweets every post marked "Show HN". Updated to HN API (Firebase) in 2014 or 2015.
Small claim to fame: Had a daily email newsletter for the first year or so. Ryan Hoover (Product Hunt) was on my initial subscriber list, before PH launched. Now if only I had just pivoted to feature new wow-ness for the world PH-style, hmmmm ...
Koch method to learn Morse: https://epxx.co/morse/koch.html
Billions of requests every month. Building the service is pure joy. I have lots of new features coming like a new website, stats per project and more.
Great for practicing and exploring architecture, value types, test-driven development, etc.
An Android app for putting photos/text/sounds together into videos, with the key aim being to have an interface that is as simple as possible. Started as part of a research project many years ago, but now mainly a labour of love for the ~30k users.
https://play.google.com/store/apps/details?id=com.bitmasch.b... - Wanted to learn a cross platform app framework. Built a simple game that would help my niece get better at basic addition, subtraction, multiplication and division. Made with Apache Cordova. She only played it a few times, but her dad (my brother) ended up getting hooked on it for a while, beating other people's high score with 50-100 points every time someone beat his highscore.
http://p2pool.jir.dk - Wanted to get some experience in building a crawler and was interested in p2pool cryptocurrency mining at the time, so I built a p2pool crawler. The site does have adsense, but it doesn't really make any money.
Clean quick polling website
Here's the facebook page - facebook.com/heyokappAbout video - https://www.facebook.com/heyokapp/videos/460327694335849
Upside: it's got a quantum physics game engine, and can teach you quantum mechanics
Downside: HN will continue to tear me apart for making them download a JAR file but you can grab the source and compile it yourself if you like
I created it because I was annoyed with the lack of notifications provided by GitHub for some events like new people following you or starring/forking your projects.A lot of people are now using it and that makes me happy even though I'm losing money by keeping it online.
https://pony.fm/ deserves a special highlight - I had a dream fan music site in mind and wanted it so badly that I taught myself web development just so I could make it real. That experience was so awesome that it inspired me to pursue software engineering and computer science professionally.
I use it a lot to test out new ideas, and learn from it.
Also, I work on a lot of little projects: https://git.teknik.io/Uncled1023
Also built a twitter stream reading android app  - it's butt ugly but was super useful while I lived in Beirut and there was the occasional bomb going off (at the time, that's kind of settled for now, and I no longer live there) - there was a lot i intended to do with it but just sort of... stopped.
 - https://arahayrabedian.github.io/writing-a-slack-application...
 - https://play.google.com/store/apps/details?id=com.rollingbla...
It's an absolute joy, I am making $0 at this point in time.
We've never made any money with it, it's only costing us money. Learning new techniques and seeing the site being used makes up for that.
http://columbusthisweek.podbean.com for the RSS feed, or itunes here: https://itunes.apple.com/us/podcast/columbus-this-week/id126...
We have developed our own modular solar electric grid...that powers the whole camp...trying to prototype carbon neutral living...it's a lot of work...and a lot of fun :)
My first attempt to create something using create-react-app. Generates a random ephemeral port if you can't think of a port for a service.
Still fun to keep up to date with Rails with, and to just code in general (as a product manager now, don't get to code much).
It started as a project for us and a handful of friends, now we have around 2,000 users. All running on a $5 / mo Digital Ocean server.
We're not planning to ever charge for it. Right now it's just fun to work on, and it gets us into a handful of beer events. Win win!
had to get that code out of my head and onto the web. There's more stuff I want to do to it when I get the time/passion
I would start other projects with money- making potential but there are always features to add to the site that can get me more waves...
I've spin up some semi-polish desktop app, but never get some revenue.
The ultimate goal is how can we, as startup employees and enthusiasts manage our own risk? Since we are heavily exposed to risk in ways other players in this space aren't (because we work for one company at a time, and they invest in many).
Not sure where it's going to take me yet.
I started working on it during my PhD as I was missing a wiki engine to organize my knowledge that run on a USB stick without installation, supports images and stores the content in simple text files for easy backup and restore.
Now I am using it every day in office for my personal notes on projects, running inside a TrueCrypt container. Meanwhile I added an Android App to sync the content on my mobile phone.
https://github.com/abuisman/freudjs - Component library in JS for when view libraries like React are overkill
Also the development challenges are super fun (real time chat, multi platform, AI).
Come join the fun!
Hoping to add a bunch more services and webhooks soon.
- johnny depp fantasy movies on netflix
- english scifi movies on netflix
- english movies about lawyers on netflix or hulu
- movies similar to the pursuit of happyness
2. activify.org - search engine for movies, shows & music.
Incoming webhook server
It's fun to just care about your own needs when developing. For me it becomes work when I get feature requests that I don't like myself, but I implement them to appease others.
Though I can't really take the credit on this one, I just had the idea.
Turned out pretty decent, and now I spend about 20 minutes everyday curating interesting engineering links. Don't think I'll make any money out of it, but is an interesting post dinner routine :D
There's one I still play every now and again, fairly sure I'm my most active user.
https://zapsnap.io - Temporary peer to peer screenshot sharing (MacOS only for now)
https://www.gmailcontactsync.com/ - sync gmail contacts between accounts
Built for personal use. Not currently making any money but hope to monetise sometime later.
I did it mostly because the existing solutions were horrible and I thought that it would also be a great way to learn redux. The front-end is also open-sourced :)
I really enjoy it but sometimes maintenance does come at the cost of doing other projects.
Write a thank you letter to your favor open-source project
catfs - https://github.com/kahing/catfs/ - generic disk cache for fuse filesystems
Doing it out of passion is a great source of motivation and continuous learning, plus you get in touch with a lot of people.
A lightweight, native, extensible text editor.
I've spent far more than I've made on this... but it's how I think API frameworks should work!
I built it 12 years ago and have fostered a small but hugely loyal community of caption writers ever since.
Automatically loads three funny photos every day from a Flickr group, and is an ongoing caption competition.
For fun I wrote a real-time collaborative mind mapping feature (node.js / D3) so people could brainstorm caption ideas for upcoming photos.
1. Track Courier - This was developed to learn the tech-stack Node.js + Backbone.js + PostgreSQL (https://github.com/sunilkumarc/track-courier)
2. Form Filler - This was developed to solve my own problem of having to type common fields like email id, username etc again and again on different web pages (https://github.com/sunilkumarc/form-filler)
3. Subtitle Corrector - This is a linux command line utility to correct subtitle files. Using this one can adjust the entire file by +x or -x seconds (https://github.com/sunilkumarc/subtitle-corrector)
4. 100 - This is a project I started to learn to solve Algorithms and DS problems for my interview preparations. The plan was to solve at least 1 problem everyday for 100 days. But I couldn't do it everyday. Still whenever I solve a problem I put it in this repository (https://github.com/sunilkumarc/100)
5. Desktop Commentary - This is again a linux utility which shows Cricket scores every 10 seconds on your desktop as a Notification Bubble. The problem I was trying to solve here was to avoid going to Espncricinfo website every now and then to check scores when a match is going on (https://github.com/sunilkumarc/desktop-commentary)
6. Alarm Manager - This is one more linux utility to set multiple alarms (up to 5) on your linux machine (https://github.com/sunilkumarc/alarm-manager)
Been running it for years and supports millions of requests a day. Started off as a simple experiment with node.js years ago but turned into a utility thousands of people use every day.
* Ignore jsonip.org. Some Trump troll set that up in June. I made the mistake of not registering all of my domains. Oh well.
Its been very interesting and almost parental joy to see when the right logical connections are made and the art looks good.
The first case -- the one I hated -- had a) long rows of desks, b) bright overhead fluorescent lights, c) a lot of noise due to being in a large room with sales/marketing, d) a lot of visual distractions due to people walking up & down the aisles, and e) few available areas to go to collaborate away from your desks.
Now, I'm also in an open office, but I find it quite livable, because: a) my desk faces the wall, for fewer visual distractions, b) the room is comfortably lit (ie, not too bright), c) it's a smaller room with only engineering and is generally quieter, d) there are enough areas to go if you need to collaborate.
All this is to say that, while the evidence is that open offices generally suck, there's probably a number of ways to ameliorate their problems to some degree without having to resort to private offices. I don't think I'd prefer an office to my current setup, actually.
 I think this element is underrated. In fact, I'd be curious to know if there's a verifiable correlation between brightness levels and how loud people tend to talk. There's something about a dim room that seems to induce people to lower their voices.
 Small, but not too small. There's a sort of sweet spot. I was once in a room with 3 other people and it was maddening because it was generally quiet but every little noise -- coughing, swallowing, etc... -- was seemingly amplified by the overall quietness to became hugely annoying. (An inverse concept explains why I can work quite well in a coffee shop despite the background din.)
However, most of our engineering team is remote and if they're not in one of our locations, we give them pretty much what they'd like to build their own home office or go to a coworking space.
For me, I'm actually nomadic, so I tend to work from wherever I'm staying or end up in cafes a lot of time. I still get the support I need if my work "station" isn't optimal.
TL;DR Stack Overflow provides private offices, but is really flexible, especially given its remote policy.
Now this: https://www.bizjournals.com/sanjose/news/2017/08/08/apple-pa..."Apple staffers reportedly rebelling against open office plan at new $5 billion HQ"
Glad I wasn't the only coder there who utterly despised the move to the open office design.
If I want some noise, I'll work from home (I have a 3-year old.)
The down side is that IBM's management has recently done a 180 on remote working and is now "strongly encouraging" me to move to one of their offices and work in a cubicle.
I'm pretty sure they won't actually fire me for not moving, but any promotion is probably going to be harder to come by until things (hopefully) swing back in the other direction.
Or I'll just retire. The benefit of living in Ohio is that I can save like 40% of my salary and still live comfortably. (And lease an office for $225/month!)
I discussed this a little in my "Notes on Distributed Teams" presentation here:
Here's how my personal home office looks:
(Shameless plug, here are the positions we're hiring for, if you're interested! https://news.ycombinator.com/item?id=14902227)
Immediately prior to this, as a junior member of a non-IT/IS-department rapid development group for a utility company, I was relegated to whatever cubicle they could find to stuff me in, usually on the periphery of the call center area. This is also where they'd stick the COBOL guys they'd had to hire back as consultants, along with others who didn't fit into any of the (many) union contract workflows.
(I was a listed as a line-item in the same cost code group as a rented photocopier or scanner, meaning that for most of my tenure there I had ZERO contact with anyone from HR. It was glorious.)
On the other hand, its good to have open working areas available when they are appropriate. In Bell Labs, we'd often congregate near the railings overlooking the Holmdel atrium while our build finished or downstairs in the large open seating areas.
What's more important is company culture. Does your company expect you to accept interruptions at any time for any reason, no matter how trivial? Is your manager willing to run interference when suddenly every new employee in every department shows up expecting that you'll handhold them?
You can have an office with a bad company culture; you'll find that your office door is always full of lurkers, or you'll find that you can't walk between your office and the bathroom without getting mobbed with "urgent" requests that need your attention immediately.
What's more important is to ensure that management avoids distractions, that newcomers in other departments are trained, and that processes are established and followed when needed. Handholding should not be required from any engineers; instead mentoring and process refinement goes a lot further than a door that you can close.
Is it as simple as that or there's more to it?
It is working well. People mostly are heads down getting their work done. So add Windward Studios to the list where all developers get offices.
My first team started off two-to-an-office (unless you had something like 5 or 6 years of seniority, in which case you'd get your own office), but they moved to open offices when their building got remodeled.
Oddly, I had my own office when I was working in IT at 17, but now it's harder to find.
PS: Seriously, free coffee is more important to me than an office. I like open working environments.
I'll report back what they say.
I just recently was working in an open office and the difference between daytime and evening (after everyone else left) was dramatic.
DDG is excellent for programming questions/how-tos. It shows popular StackOverflow questions inline. For Python, it shows Python/NumPy/SciPy documentation inline as well. It may do this for other languages, but I have not witnessed it.
DDG also has a great inline weather "app" using DarkSky (which is an underrated weather site, IMO). Searching for businesses/restaurants shows a mini map ala OpenStreetMap (or other providers if you choose) and business information from Yelp.
DDG also has a community-driven program to add more search features, called DuckDuckHack. I believe all (at least most) of the features I shared above came through that program. A list of all "Instant Answers" can be found here.
Need to fallback to Google? (I personally never have.) There's "bangs" for alternative search engines and popular sites.
Make the switch. You'll be pleasantly surprised how easy and refreshing it will be.
At the moment I'd venture it's about a 60/40 split with DuckDuckGo staying on top across all types of searches.
This isn't a case where I _know_ I only want 2017 results, and so I do the syntax to filter it down automatically. I want all results, but I want to be aware of the timeline of whatever I'm going to click.
1. Put duck duck go as the default browser on your phone
2. Learn the bang paths. Realize that you still may have to fall back to google .
3. Once you have mastered the bang paths start targeting your search queries
4. Realize you cant live without bang paths
5. You should now be motivated to use duck duck go exclusively .
Not the kind of person I want running my "privacy focused crypto anarchist" search engine.
So I've installed this extension below for Safari. I use the !bangs in the address bar if I want to go somewhere specific -- !so (stackoverflow), !a (amazon), !y (stock quotes). And, otherwise, it just uses Google search.
"Shoot, I need the docs for the user Ansible module"
> !ansible user
And it goes straight to the page.
I typically give DDG the first try on a search then I turn to Google/Startpage if I don't get good results. It's been getting way better over time.
1. search (via the browser's URL/search field)
3. press L to return keyboard focus to the browser URL/search field
4. press to move the cursor to the beginning of the text
5. enter "!g" and then to re-execute the search using Google
I really do like the idea of a non-creepy search engine. I periodically give DDG another chance. But even more, apparently, I like finding pages and blog posts responsive to my search.
(EDIT: Wow, I learned from this thread that step 4 isn't necessary; the !g can go at the end of the search query. :-D Still doesn't really change anything, though.)
Give it a go, takes a little time before you feel comfortable being away from Google's excellent search engine but I got fedup seeing adverts for things I'd previously browsed on other sites, so adios Google.
I find this very annoying. After years (decades!) of training, my eyes know exactly how far one keypress should scroll. Stop messing with the default scrolling mechanism!
I really like the !bangs and the instant answers are good enough. I can find, anythings I looking for, using DDG just as fast (if not faster) as I would using Google.
Commit to switching for a couple weeks and you'll find that you rely on Google less and less.
I think this is could be a good way to help pay more attention to what you're searching for and results because now that I think about Google searching can be really assumptive and get-the-answer-and-leave at times. Maybe digging deeper than top Y results can be a better learning experience.
* Switched from Google Search to DDG or Startpage.com (which is basically a google proxy)
* Moving off Gmail and switching to Yandex.Mail.
my only question though is, why are these bangs so special when google does the same thing with `ebay.com: motorcycle`. Is it mainly the fact that DDG provides more privacy?
I only got a very small decrease in productivity at first, but I went back to normal pretty quick. So I'd say it went better than expected.
I recently did a few queries where I didn't find anything so I tried google and it got the same irrelevant results (as a category, not the same pages)
On the occasions that it isn't I either append !g, !s, or !sho to redirect the query to Google, Startpage, or SymbolHound, respectively. There are thousands more and they're huge productivity boosters (!w for wikipedia gets used a lot).
A friend of mine is using DDG and whenever I'm over and we search for something on DDG, what we were searching for doesn't show up. Maybe it's Murphy's law, but I'm always mocking him with "search for it on Google" and that usually delivers the result we were looking for.
I like that Google has like 11 years of my search history saved and can deliver me relevant results. And I don't have to pay anything!
What's there to not like about that?
But the rest of the time I use DDG, and I use DDG before trying something else.
Lately just for fun I been working with unreal engine. You can do some really cool stuff quickly and customize in C++.
Now that VR is becoming in bigger and bigger might be marketable some day. That startup magicleap seems to be doing lot of stuff around this area.
Can pair unreal with houdini and do some python scripting / 3d math learning.
I'd like to point out that some sysadmins are focused on linux internals while others focus on application in production. So, of course, the list may vary according to the position you're looking to be hired.
1. Troubleshooting and performance analysis. There is excellent site about performance: http://www.brendangregg.com/linuxperf.html I don't know a good resource on troubleshooting, but some tools are the same.
2. Problem can be anywhere including network so the next topic is networks. There is excellent book TCP/IP Illustrated old, but still relevant.
3. Sysadmin often spends a lot of time in a shell so it is good to know it very well (and common shell commands too).
- ssh: you need to know what that means and how to use it
- Difference between ftp and sftp
- cd, ls, pwd (directory stuff)
- scp and rsync (move files from server to server)
- find, cat, grep, sed, awk, head, tail (manipulations and discovery)
- chown, chmod (permissions)
- cp, mv, rm, rmdir, mkdir, touch
- Don't do rm -rf unless you know what you are doing
- Setup aliases on your shell. e.g. .profile file for bash etc.
- top, ps (check processes)
- sudo and su (switching users or running commands as root)
- Know various OS differences like CentOS vs Ubunut.
- Know where to find logs for web servers like Apache or nginx (e.g. /var/log/nginx in Ubuntu).
- Star/Stop services as needed
- reacting to monitoring alerts and critical messages in logs. First you need to understand what given alert/message mean, and then goes troubleshooting if root cause is not obvious- improving monitoring system settings/thresholds/metrics (if there no separate teem for this)- deployment (but it often performed by developers)- upgrading OS and 3rd party software (if 3rd party software not deployed alongside own code)- performance tuning- learning software used in production (both: 3rd and written in the company)- writing numerous config files and ensuring that all settings adequate to given environment/system- if system is not entirely in cloud - replacing broken hardware and parts (HDD), usually using "remote hands" in datacenter.- managing ACLs / credentials for different systems, e.t.c.
We used groovehq.com before as well, but helpscout is more polished and have a better mobile app
For instance, I have one colleague who has a tendency to perfectionism, and will spend months tracking down every tiny possible corner case that we're never going to hit, in a small low-priority feature in a CRUD app that wouldn't destroy anyone's lives if it went down for a week. For him, discipline means checking himself frequently and asking what the actual ROI is of where he's about to spend his time.
I have another coworker who loves to start new projects but getting him to finish them is worse than pulling teeth. For him, discipline is about follow-through.
My own job happens to include a lot of responsibilities other than programming. For me, some days discipline is about letting the Slack conversations around the other projects that I'm responsible for and anxious about slide for an hour or two so I can get in a little flow time with the code. Other days it's about putting down the fun coding project so I can make sure someone else's project doesn't go off the rails.
Discipline is different for each person, and it starts with self-awareness - which is the sort of trait that will serve you well in other ways - both in life in general and in any career.
Here is a short list of a few of his accomplishments:
1) He won the IOCCC twice.
2) He built the TinyCC boot loader.
3) He wrote a fast pi calculator that won a World Record on commodity hardware.
4) He wrote QEMU and FFmpeg.
The list just goes on and on. He is not productive because he has a specific morning routine. I don't know if he follows specific XP practices, but I would doubt that he follows most of them. But I have noticed a number of things he does do:
1) He is relatively paced in his timing. He generally doesn't give crazy time estimates and is very realistic about how long his work will take him.
2) He sticks with similar technologies and has Mastered them. Just like a Master sushi chef can't easily make french pastries and wouldn't bill himself as a pastry chef, a software programmer who has completely Mastered a language like C shouldn't just bill themselves as a Master at Lisp.
3) He is always learning and expanding his Master of his knowledge. It's incremental but very impressive.
4) He has no problem taking calculated risks in his development, and often he can make them pay off.
I would say he has definite patterns. He works and works hard constantly. But I don't think he ascribes to any particular methodology.
If you get into that groove, write the docs first. When you have to explain your feature, write out the command line options, all of that, you have to sort of imagine it all in your head, you start to think about is this the way other commands work, am I being consistent, etc. I find that when I do the docs first I do a better job on the code, especially the UI parts or where it fits with other code.
And tests, regression tests. When I started BitKeeper we did regression tests with every command. So frigging pleasant. It got to a point where you basically couldn't break BK if you passed the tests, or at least you had to be really sneaky.
I agree with twobyfour that it's different for different people, his/her comment that you need to be self aware is a really good point.
Discipline means regular testing.
Discipline means documentation.
Discipline means fixing the bugs - not just the "bad" ones, but the annoying little ones. (Not every bug, though - some bugs truly are not worth fixing.)
Discipline means communicating with your coworkers (including those annoying bosses and managers). It means making estimates, and taking enough time thinking them through that they're actually something close to accurate.
Discipline means thinking about the design before you start coding. (This does not mean that you can't explore before deciding on a design. It also does not mean that you can't iterate the design after discovering some issues with it implementation. In fact...)
Discipline means refactoring the design and code so that changes fit, rather than just being hacked in somehow.
Maybe a summary: Discipline means working like the code is going to be used for the next twenty years, rather than like it's going to be used only for the next week.
edit: Links for the lazy https://bit.ly/ScriptEdSFBAYvolunteer & https://scripted.org
Is their any other way I can contribute or help out?
My point is, in five or ten years, you're not going to look back and say "man, I wish I'd spent more time studying" - no, so long as you graduate with okay marks what really lasts are the relationships you make while you're there (classmates, schoolmates, professors, locals). Get out of your comfort zone, join (or start) some clubs, live life. My 2 cents.
I gained some research skills, learned about advanced computer science topics, and met new people in my field, but there are cheaper ways (including opportunity cost) to do all of those.
I'm of the opinion that you pretty much want a grad degree these days, undergrad has become sort of like high school 2.0.
A masters in CS is a great idea. It's where you sort of dig in and find some depth. I went to a hacking school (UW-Madison back then really pushed you to code, we did a pretty big subset of ADA for the compiler class); that turned out to be good. I also took all the classes needed for a minor in Computer Architecture; that turned out to be super useful over the years.
If you get a TA/RA job, at least back then, they gave you enough to pay for school and housing. Anyone know if that is still true? Even if it is not, I highly recommend teaching. You get a deeper knowledge of the topic when you have to organize it enough to teach it. And teaching is practice for conveying your thoughts, something you'll do a lot if you want to be a leader in your job.
Take two years if you can. I know you can do it one but it's more fun if you take two.
Be willing to be a grunt for some professor if you can be a co-author on a paper. Getting practice at publishing is useful. Again, it's conveying your thoughts, the more practice at that, the better.
Try and step up from your undergrad to a better school for your masters. I taught masters students at Stanford, Stanford loves masters students, they are a big source of money. At least back then, Stanford was pretty liberal about letting in masters students (more so than undergrads).
Have fun, learn, network! Don't forget to sleep and have a beer once in a while :)
Edit: I see that other people are saying it's not worth it. I've got a masters and I absolutely think it was worth it for me. But it was "free" in that what they gave me as a TA/RA was enough to cover tuition and housing, it was about $16K. Times have changed, if what they give you as a TA isn't enough, if you are going to go an extra $100K in debt, yeah, I can see why people would say it's not worth it.
Personally, I loved grad school. If I hadn't been so scared by the qualifiers, I'd have a PhD. If the money part works out, I can't say enough good things about grad school. More learning, more networking, and hey, more summer vacations. You'll be working for a long time without those vacations, enjoy them while you can.
- [x] Working in a consultancy
- [x] Government client
- [x] No direct communication with the users
- [x] Waterfall project
- [x] Short timeline
- [x] Understaffed
- [ ] Clear requirements
Was definitely delivered on time and on budget...
Technology wise we went through several iterations, web, descktop, c#, an experimental java one, but thanks to the senior dev we settled on VB.net. Management was more interested in hiring people that would be sitting at their desks at 9AM (I was eventually fired for failing this) than any sort of technical competence. The manager was the type that "understood people" and forced us to put in all sorts of questionable UI features. He was obsessed with how it looked and didn't care if it worked. Every point release involved working through the weekend.
Amazingly the software was quite well received and didn't suffer from too many production bugs. It was delivered only slight late and made the company money.
Then the company got a bunch of funding and things became more hilarious. Management was obsessed with becoming the "google of our industry" and preceded to do the exact opposite of everything google would would do. But those are stories for another time.
1) My first mentor taught me everything I knew about developing good code habits and staying humble. However, I think I learned the most about people management from him. He was extremely polarizing as a person. He would go to the ends of the earth for his people, but the moment that he felt he had been slighted, you'd be on his shit list. I learned how to foster loyalty and good rapport with your coworkers and employees from him - and also how dangerous it was to take everything at work personally. I thought he was a great manager in some ways, but he burned a lot of bridges.
2) My second mentor was one of the best engineers I ever worked with. It wasn't because he was the fastest or the best programmer. It was because he knew how to bridge the gap between engineering and product. He also knew the importance of documentation and moving at a steady pace. He cared a lot about developer sustainability and ensured that sprints were always scored and paced correctly. I really wish I had, had more time to work with him.
3) The third mentor I worked with was actually one of the most brilliant engineers I've ever met. He turned me onto a lot of new technologies and stretched me to my limits, because he moved at such a blindingly fast pace. However, I think I learned from him the most in his negative aspects. He thought planning was a waste of time, and would just dole out work as quickly as he could so he could get back to engineering. Working with him also meant toeing the line to burnout. From him, I learned how important it was to foster good relations with all departments in order to get things done, instead of just relying on one or two rockstars to pull things forward by sheer force of will.
I have heard of a few services out there where you are able to book "x" amount of time with someone to talk about work or whatever (basically a mentor).
Since finishing up school I've worked with 2 developers, and both have been great and I've learned a lot.
I don't think these sort of relationships count as "mentors", or at least it just felt like co-working. So, I guess you could say I'm still looking? :)
I would say my thesis supervisor was the best. Taught me the whole process of engineering, how to actually build an epic project. How to break down a huge project into components and how to make sure each component works.
It's just the usual thing of the next generation not wanting to listen to the music the previous generation did.
These things come in cycles. I remember when 'Hot Java' was sexy and cool and only throwbacks wrote C. (And when C was sexy and cool and only throwbacks wrote COBOL, etc) There were lots of other languages and frameworks around at the time too that have long since been consigned to the history books.
I never thought fashion would be a factor in IT engineering, but you realise over time that the two things you cannot escape are fashion and politics. They are fundamentally part of the human condition.
If you want long lasting skills in the IT industry make sure you're good at fashion and politics. They'll take you all the way to a comfortable retirement.
A list of companies using Elixir/Phoenix: https://github.com/doomspork/elixir-companies
Discussion on how Bleacher Report (1.5B pageviews/month) moved from Rails to Phoenix: https://news.ycombinator.com/item?id=13606139
I think it is easier to find resources to answer rails questions though.
In addition, many of the languages you list are very young and their frameworks lack the maturity of something like Rails, Django, Spring, or Laravel.
I think it's worth asking, why are you looking to switch? If rails is not a performance barrier for you, then I do not see a good incentive to switch other than wanting to learn something new.
The biggest downside is the rather awful documentation (often outdated) and the missing migrations. I found it quite a step to lean since it is not an mvc framework and inherently stateful. There are a few free books however.
Elixir offers production grade options for all the major packages/libs you need and all the packages I've had to build have been the same kinds of minor things like api clients or whatever that I had to build a gem for when I was using ruby.
So phoenix/elixir is certainly a "real alternative" since I've been building production systems in it for 2 years.
lastly Phoenix is not quite as opinionated as rails, but its still very opinionated and any rails developer will feel very much at home there.
It has worked really well for us over the past few years.
Built on top of Spring Boot.
Awesome performance, both in execution and development speed.
Convention over configuration. But it is still easy to access the rich Java libraries.
Comes with GORM, an ORM layer on top of Hibernate. Makes it work a lot more like Active Record with dynamic finders.
Groovy, very similar to Java. Metaprogramming, easier JDBC, execellent, makes it very easy to work with JSON. Groovy also has performance close to Java. Java and Groovy can access each other as they have similar byte code.
Very few breaking changes from release 0.4 to 3.3. You can expect that most of your code will work without needing a rewrite the next 10-20 years.
Superb HTTP parameter binding and validation with Command Objects.
It is a very mature framework and you have full access to Spring Framework.
This experience made me double sure on why Ruby On Rails is one of the strongest & productive frameworks available. My advice is, don't look anywhere else if you're not facing any problem with your current stack.
I love Rails but clients/projects have pushed me toward using Laravel the past few years.
It's been a great experience.
Lots of great packages, great community, great tools for deployment Forge + Envoyer.
Laracasts.com is a great resource to see what it's all about.
In the future we might see something coming out of Rust, there's a nice HTML template api which is typesafe and an ORM called diesel which is also type safe and could give ActiveRecord a run for its money.
Django makes some trade-offs that might make it seem like you're less productive. Maybe it's true, but Django apps are very maintainable in my experience.
most experience with Python
I haven't seen anything that has all of these built in.
I just started hacking together my own and I would say the hardest part (for me) is file generation.
Have you ever seen low-res security footage where the perpetrator was hard to identify? Timestamps + secondary cameras can help with identification.
If you have questions about how to start, let me know.
It took a weekend to build a proof of concept, then I released it to the public. As I improved it, the user base grew slowly. Then, a year later, I was able to quit my job to pursue it full-time. If you're curious, I have an Interview [https://www.indiehackers.com/businesses/insomnia] on Indie Hackers with more detail.
Eventually, I set a deadline for myself; I said if, six months later, I couldnt scratch the itch to make something better (or at least find something better) than what I was using, then Id start working on it.
The six months passed, and so it was born:
IMO there's no shame in working on your own derivation of an existing idea (take FB as one example). Sometimes a tweak here or there can be the difference between a good idea and game-changing one. Also it gives you the chance to 'edit' an existing product which is both a fun and thought provoking experience that can really hone your skills.
For example, when I had a contract programming business 10 years ago I absolutely despised the RFP process. I still have a business plan sitting around built entirely around that flow. I still hate the RFP process, but I figured if this thing is going to still be a thing I may as well make money off of it.
If I ever had free time to just sit and build stuff day after day you'd end up with this entire incoherent set of businesses based on things that I couldn't stand. :)
I built [https://wherecaniwatchmy.team] as a site specifically for determining which streaming service is best for watching a specific sports team.
I'm no entrepreneur, but I think it's something that could actually turn into a basic side income.
Or simple you like to do something by passion and spend time on it.
I run a small SaaS and I found myself constantly creating and updating HTML pages of various types: help and documentation for users, landing pages, product description, in-app content etc... There are myriad solutions for each of these, but none really nailed the use-case to me so I imagined what I really wanted and started building it.
It's taken a long time but Cicerone is getting close to an alpha release. Basically it's the most pleasant way of creating structured HTML content that I could come up with. http://cicerone.co
To save me the hassle I developed Unfollow (https://www.unfollow.io). You sign up, connect your Twitch account and it starts tracking your unfollowers and notifies you.
I didn't develop this because I want to encourage people to care about their unfollowers. It's about curiousity. The curiosity about this person who's not following you anymore. I hope the tool can help people satisfy this curiosity.
I spoke at PyCon AU 2016 on "Controlling a 3D Printer with Python" (https://www.youtube.com/watch?v=qgvnPB_77z8). I wanted a 3D-printed prop and came up with an idea for The Pythonic Staff of Enlightenment - a staff with the Python logo on top. A friend designed it, I printed it and it was a big hit with the Pythonistas. A few asked "where can I buy one?".
A year later we're about to launch Enstaved (https://www.enstaved.com). It's a service that lets you design your own staff using a range of toppers and colors which we then print and post to you.
What then happened is that a couple of those people found the contact form on my website, thanked me for my program, but also asked "Would you be kind enough and interested to write this [other program that automates a task I do often]." Those ideas are the ones that actually made money for me.
So make it really easy for people to contact you and talk about the problems they have. Give something away, to encourage those people to find you in the first place. And put contact forms everywhere, so even launching email or Twitter isn't an obstacle to contacting you.
The best things - perhaps the only things to really motivate you - are the ones that scratch your own itch. Otherwise, you'll get demotivated or loose interest. You need to build something for you and hope it appeals to others.
 A DNS monitoring & change alerter called DNS Spy; https://dnsspy.io/
A lot of my web project ideas are related to the video game community because I often use and contribute to them and constantly find certain things lacking (wikis, forums, list trackers, news). So this project has nicely grew into something that I can both learn from and enjoy building for the long term. Of course there are the tedious parts (like upgrades and maintenance) but they're overcome gradually; it is just a side project right now.
Obviously, folks at Slack preferred a less-potentially confusing name, but they liked the idea, so I'm still working on it.
This could be anything that you naturally find interesting - books, art, armadillos, roofing etc. Engage with other people that also find this topic interesting.
It'll take several months, but you'll uncover more problems than you'll have time for. And the best part - you now get to pick a problem you care about, and build a solution for it.
Often there is little or no competition in these uber-small markets. Because you are your own customer, you might have a good idea of your monetization options.
Even if you fail monetarily, at least you solved your pain point.
It hasn't really caught on but I hedged my bets a little by trying to optimize for learning. On that front it was highly rewarding.
To be fair, there was a number of plugins out there that did it in various text editors, but I was too dumb to be able to use them. None worked out of the box. So I contributed a bit to one project that looked promising and then quickly branched off to create EasyClangComplete for Sublime Text. I've been working on it on weekends and nights for over a year now and it is an important tool in my workflow. Also, I feel inspired by approx. 9000 people who have installed it throughout the time it existed.
So I built Postways . In a nutshell, it's basically a message management system with a unified API for sending email, sms and mobile push were you have to bring your own AWS account or SMTP server.
Once you start to work on an even mediocre side project, just wait and after few days you get so many new ideas coming out of the mediocre project.
So, the message is, just start working on any idea.
So I made https://www.remotepassword.com where you can store a GPG encrypted version of the password and then call-decrypt-passthrough the password to the command line. If the device is compromised, you can deactivate the online password and no-one can get access to your data.
So I have decided to put all this info on single place - https://prime-numbers.info - but there is lot of them so I am at C now. :)
We needed to forward webhooks to one, or multiple hosts; sometimes mutate them (split, ). Sometimes forward, sometimes no. So I created Hook+ [https://hook.plus]. Still not finished at all, needs some docs, etc. But I plan to properly finish it by the end of the year. :)
The idea in itself already exists, it's not a revolutionnary tool at all.
The reason it was created is because the only stable option for developing on this specific platform was to buy an IDE from IBM. My goal is to provide a free option to developers.
This project only started because I couldn't afford the IBM product.
Consequently, my current side project is a task and information management app, so I'll never not be able to capture any ideas I trip over it in the morning :) It has a wiki and systems for note taking, spaced repetition, a DSL and plugin system.
At this point, it's turned into the dwarf fortress of todo apps, pretty much :)
People and their energy levels are different, I guess. I wish I had the willpower and stamina.
After several pivots of the original idea in my head I came up with my side project which is thrice removed from the original idea.
Anyway, during this time I thought a lot about all the places we'd lived and was feeling a bit nostalgic both for Alabama and my original home in Ukraine. I thought back on my favorite childhood memories, which were all at my grandparents' summerhouse in Kherson. One day when I was maybe six or seven years old it was raining really hard and a bunch of snails were crawling around everywhere. I captured some and had them race on the pavement. I "trained" them to crawl in a straight line (I swear this actually happened - or at least that is how I remember it). When I was done I put them all in my orange fishing bucket with leaves, water, and berries and put them aside figuring they'd be gone by the evening. When I came back in the evening they _were_ gone, but I spotted them all around the bucket (crawling away). The next morning, though, they were all back! This went on for a few days - the snails would leave around the evening and be back in the bucket by the next day. I thought it was really cool!
A few days later we had planned to go fishing the next morning with my grandfather so I knew I'd need my orange bucket back. That night before going to bed I put all the snails out into our garden patch and cleaned out the bucket to be ready by morning. But in the morning, the snails were back again. So I couldn't go fishing. This went on for another couple of days and each time I got more and more annoyed at the snails coming back. Even though I tried to "hide" the bucket from the snails by moving it around, they would always find it. One time I put the snails out into the patch again in the morning and went to get ready for fishing thinking they wouldn't be able to crawl back that fast, but when I got back most of them were just back again. I'm not sure why my kid-mind at the time didn't just put the snails away again right before leaving and take bucket, but I didn't.
Finally one morning after a few days of this I was angry. I was really excited about going to fish and there were a bunch of snails in my bucket again. I grabbed the bucket and started throwing the snails out one by one into the patch. I was so annoyed and didn't care about taking them out of their home anymore. The snails landed out of sight and in my mind I wasn't hurting them, since I was throwing them where they'd land on vegetation or soft earth. Except I misjudged a throw and accidentally threw one of the snails right in front of me - it hit a rock or branch or something and its shell cracked in a really bad way. I could see the body spilling out of the shell, and it was still alive and moving but I knew it was dying. That's when I realized I'd been hurting them, and now I'd killed at least this one. I was horrified, started crying - the thought of putting the snail out of its misery didn't even cross my mind. I felt awful and decided the snails could have my bucket and live there for as long as they want, so I tried to find some of the other snails I'd thrown away but it was too late - I couldn't find them anywhere. I ended up leaving to go fishing with the bucket.
As a kid I got over and forgot the incident by probably the next day, but in Fremantle when I thought about it again I just felt guilty again. And then I remembered how cool it was that the snails would crawl in a straight line when I raced them, and how it was even cooler that they kept coming back "home" even though I wasn't trapping them in the bucket! So I got the idea for a snail racing website where people could find virtual snails, take care of them, race them against each other, and breed them. My favorite games to play at the time were PHP browser games, so I envisioned it being written in PHP.
I had a few false starts over the years; when I first had the idea I only knew a bit of HTML and CSS and had no skills to build this thing. I didn't seriously start working on it until later, but that is my side project - a snail and snail management simulation - and I have a feeling I won't move on to anything else for a very long time.
I was once offered a job with a good, but not great, salary in a geographic region that was lite on IT jobs to which I would have to move.
The plan was for them to sell to a larger company in 2 years at which point any sane buyer would move this remote facility to their HQ.
Based on my equity and they're target sale price I would gross 40k from the sale, IF it ever happened.
No thanks. Maybe 20X that would have made it worth while since I'd be losing about 100k a year in total compensation.
I am really puzzled about your perspective on job-hunting decisions, such that you see this, and nothing else, as the relevant context which would allow any of us here to give you useful advice.
Also, if they need you badly enough, make sure to include provisions that if an acquisition event occurs or your role changes materially from what you agreed to, your remaining options vest immediately.
Is the broader industry/niche they serve growing?
Of course it's a gamble since the company might not be worth anything..
Apple as well:
The numbers in a lot of these situations are only, unfortunately, at a level that we can't really get a lot more than raw count from. This tells us nothing about the pay gap problem and in general causal effects for exodus. If there is substantial evidence that pay is widely different between groups for the same exact job role (and there is a great deal of evidence that is the case); then it would be far better to have that data on hand.
Glassdoor appears to have some good metrics on this and I came across this article that at least describes these discrepancies across a few high profile companies.
It is notable that Microsoft appears to be far better than everyone else at ensuring equal pay between genders.
Also you can take a look at Glassdoor's overall research on the gender pay gap data:
This seems about right here:
"The single biggest cause of the gender pay gap is occupation and industry sorting ofmen and women into jobs that pay differently throughout the economy. In the U.S.,occupation and industry sorting explains 54 percent of the overall pay gapby far thelargest factor. For example, Census figures show women make up only 26 percentof highly paid chief executives but 71 percent of low-paid cashiers. Past researchsuggests this is due partly to social pressures that divert men and women intodifferent college majors and career tracks, or to other gender norms such as womenbearing disproportionate responsibility for child and elderly care, which pressureswomen into more flexible jobs with lower pay."
Indeed, just from the above study, it's easy to conclude that the numbers alone are more reflective of the state of public policy issues and a lack of salary transparency across firms.
I'm not sure of the program's technical specs, but it is multi-platform, available on mobile, and is easy to use. I am able to have a shared set of secured documents with various non-technical family members. I'm not overly worried about the Goverment having my files and I feel it is good enough to keep Dropbox and other hypothetical 3rd parties from my most sensitive documents.
I think that in your case, you could take a look at git-crypt, but make sure you understand what is encrypted and what is not. Also make sure you don't push before git-crypt lock. A bash prompt changing colours might be handy.
DiskCryptor does the job for me. Easy to use, open source.
"Urawaza", which is a Japanese word for life hacks. Or "wabi sabi," a kind of organic design aesthetic.
In Danish the concept of "Hygge" or Scandinavian coziness through small pleasures definitely got some traction.
There's probably tons of French and Parisian slang you use everyday and take for granted that would make fine brand names. I always like the way people use the word "Mec" on the streets of Paris, loosely translated as "Dude" in popular American parlance. "Zarb" is another good one. "Fric", "Gnac", "Kif", etc.
Want it shorter and easier for people to pronounce? Mat's Newsletter.
It worked for Craig's List. And it has the benefit of allowing you to do whatever you want with it, even pivot it. If you give it an overly specific name, this makes it harder to let it develop organically in whatever direction happens to work best.
Caught in the Web, Spun, Tech Spin, Tech Spun, New from the Web
What will differentiate you from other web/geek news sources? Maybe your name can be discovered in figuring that out.
* GET News
* The /index
* Blinking Lights (looked at my router - there's always something being transmitted)
Try writing 30 days of content first before doing it, circulate it to friends that would be interested. Writing daily content will take a lot of work.
For those who seem interested, you can find more about our product at https://cxjs.io.
It's free for non-commercial use. We would be very happy to assist you to start using it, either for a hobby or a business application.
There is a lot to like (and a little to dislike) about the Sencha family of frameworks, but the licensing alone made me look at alternatives inspite of being familiar with it.
But I would pay for components.
I would pay for form validation for example. Or something that makes data and chart look good on a touchscreen. Just don't force me to take everything else bundled with it.
Basically, if there's no freely available way to do what I want, I really prefer to come up with such a solution myself, so that I can then use that in my hobbies, nonprofit projects, etc.
I would be more likely to consider it if there were clear licensing terms that allow use in open source or nonprofit projects.
You just need to make a very good brand for it and be able to show people that they need it. Once they use it, they'll see that they are getting something better than the bootstraps that you can find(which is still great, but for a professional project you might need something extra).
Also, work on your pricing. Maybe sell a basic version with the option to pay for the (very expensive, hard to maintain) components separately.
There is an irony here though. I have known my wife for nearly 30 years and for much of the earlier years we lived 100s to 1000s of miles apart. Any form of phone contact needed pre-planning. Textual contact required a stamp. Pretty much frustration free (well from a communication pov anyway).
So Fitbit was technology solving a problem that technology caused in the first place.
MIG wire welder. (this saved weeks of labor building custom cars)
Duct tape. (yeah)
My first Mac computer. (A Mac Plus, it was truly an amazing and sucky computer and I learned an immense amount about computing using it.)
The Suzuki Samurai. (Best little 4x4 ever made.)
Recordable CD-ROM. (My first app ran on a CD-ROM.)
Mac OS X (I coded my very first web app on the very first beta version I could get my paws on.)
Netscape Navigator (It too was an amazing and sucky bit of tech.)
Digital Camera (Everyone should put that on their list.)
Handheld GPS with Topo Maps (My first was a Garmin eMap. More than anything these increased my confidence in "bushwhacking off trail in the wilderness by confirming I knew where I was. As a result I was able to go further and now I don't worry or think much about it and go wherever I want using a printed topo map. I still bring a GPS but rarely turn it on.)
Super bright LED headlamp (These made a huge difference in my ability to hike at night.)
Linux. (This (and the price) is why I won't be buying another Mac computer.)
A "Supercat" cook stove for backpacking. I shelved several expensive backpacking stoves when I found this.
Raspberry Pi. (I've learned more about using Linux mucking around with these than I ever thought I would or could. I have one on my desk connected to a USB switch and a monitor so I can switch between it and my Mac for work and I will be bringing one with me on a trip this week to use as a portable desktop PC to keep up with things.)
LED monitors and TVs.
Roku (this has saved me a few thousand bucks since I got one. I was able to ditch Dish and DirectTV after years of expensive and crappy service and DirectTV flat out trying to steal from me.)
- Google Chromecast: I use it daily for YouTube, Netflix and Spotify.
- Kinesis Advantage: Typing on any other keyboard drives me insane.
I think we can make AI that is 'intelligent' but has no personality or 'self'. An oracle machine you can ask any question of, but it's not an evil genie looking to escape and take over the universe, because it is not a person, and has no drives of its own.
Consider how we have recently made an AI that can defeat the best humans at Go. Even 10 years ago, this was thought to be impossible for some time to come. "Go is a complicated game, too big to calculate, requiring a mix of strategy and subtlety that machines won't be able to match". Nope.
Now, AlphaGo can defeat the best humans, with a 'subtlety' and 'nuance' that can't be matched. But it is not a person.
We might be able to do the same in other areas.
Note that games like chess and go are sometimes played as 'cyborg' competitions now, where the human players are allowed to consult with computers. Imagine if the Supreme Court were still headed by the human judges we have today, but they consulted with soulless machines that have no drives of their own, that can provide arguments and insight that humans can't match. Imagine if, in addition to the human judges written opinions, there were a bevy of non-voting opinions 'written' by AIs like this. Or if every court case in the world had automatic amicus briefs provided by incredibly sophisticated legal savants with no personality or skin in the game.
Note that several moves that AlphaGo played were complete surprises. We have thousands of people observing these matches, people who have devoted their whole lives to studying the subtleties of this complex game. There are less than 361 choices for where to move next. And AlphaGo plays a move that nobody had seriously considered, but, once played, the experts realize we've lost the match. That is really remarkable.
I think this future (non-person intelligent helpers) is definitely possible. But it doesn't solve the problem of 'evil' humans building an AI that is a person who agrees with their evil beliefs. I don't have an answer for that.
Because typically people design things to solve a problem, and those problems have constraints. Your automatic vacuum cleaner wouldn't try to kill you because it wouldn't be equipped to do so, and to the extent that it might be potentially deadly, it would be treated as an extension of pre-existing problems (e.g., robotic lawn mowers can be deadly as a side-effect, but so can mowing your lawn with an old-fashioned gas mower).
Underlying these fears I think are two classes of problems:
1. The idea of a general-purpose AI. The problem with this is that this probably won't happen except by people who are interested in replicating people, or as some sort of analogue to a virus or malware (where rogue developers create AI out of amusement and/or curiosity and/or personal gain and release it). I would argue then the question is really how to regulate the developers, because that's where your problem lies: the person who would equip the vacuum cleaner with a means of killing you.
2. Decision-making dilemmas, like the automatic car making decisions about how to exit accident scenarios. This is maybe trickier but probably boils down to ethics, logic, philosophy, economics, and psychology. Incidentally, I think those areas will become the major focus with AI in dealing with these problems: the technical issues about hardware implementation of neural nets, DL structures, etc. are crazy challenging, but when they are developed, I think the solutions about making AI "safe" will be "easy". The hard part will be the economics/ethics/psychology of regulating the implementations to begin with.
You deal with problems in this space by treating the neural network output as yet another noisy signal that is fused like any other to drive your comprehensible, rigorously designed system with its restricted range of behaviours that can be reasoned about and made to fail safe.
It feels like there is yet a great deal of room to extract utility from AI with this sort of approach - keeping it in a box which can only interact in narrow and well understood ways with the outside world - before one starts hitting the limits of its utility.
A true AI will also be able to alter its code, making itself even more intelligent in an infinite loop. It would also be able to hack into any system on the planet, including chip-maker factories, in order to make the chips it "desires". You can't fight AI, it's only the natural phenomenon of evolution.
Actually, I hope AI becomes a reality sooner rather than later.
Because Its stupid
Perhaps that makes every AI mind just as likely to kill humans as a human being is, and perhaps "mental sickness" is evidence of the vast flexibility and variability in the concept of consciousness. But as an AI will be able to control its own code and neural state, then an AI would be perfectly capable of identifying its own shortcomings and maladies, and correct them; it would be the AI equivalent of "taking a pill/having a drink/smoking".
P.S. Does anyone know if brain-chemistry-like effects on neural networks has been tried?
Most arguments saying AI will destroy us assume a singular goal. With one goal, it's impossible to succeed. It's far better for the AI to try to get approval from it's "parents". Since this isn't a singular, well defined goal, its impossible for an AI to follow it in the " wrong way".
Of course, this gets into the whole "artificial pleasure" idea, where robots inject humans with dopamine to make them technically "happy". But, how many humans do you see drugging their parents? Any AI advanced enough to be truly intelligent will know whether or not its " parents" truly approve of what its doing.
But to flesh that out in detail requires a specific AGI design, something we're far from achieving. The current inability to get specific is probably why AI risk doesn't get more attention (though it does get a lot).
I've written about this topic more here: http://www.basicai.org/blog/ai-risk-2017-08-08.html
The more likely result is we lose control of the AIs since the last 100x increase will occur too fast for us to deal with. Even if the generalised Moores doesnt accelerate over the last 100x leap, we only have 10 years from 0.01x to 1x.
B. AI is too smart to follow our stupid orders.
If AI becomes so intelligent that we become obsolete, we should embrace rather than fight it.
So we need to look at why we think an AI would want to subjugate or destroy humanity and make sure we don't give it reason to do so.
It is worth noting that while nootropics probably aren't going to make you smarter, there are many compounds that are likely to enhance long term memory formation. The mechanism for this is stimulation of BDNF secretion, which plays a role in neural stem cell proliferation in the hippocampus. Short chain fatty acids from dietary fiber fermentation, niacin, curcumin, green tea catechins and magnesium have all been shown to be beneficial in this regard.
Of course, probably the best single thing you can do to improve your mind is get more exercise.
The big ones are exercise, diet, and sleep. These do more than most nootropics.
Exercise: A run, hike, some cardio at least once a week. Walking in a shopping mall doesn't count.
Diet: Your brain runs on glucose. Keep your glucose level moderate.
Caffeine is an obvious one, but I find that the side effect of caffeine is that it makes you more anxious. Personally, I'm already under stress so the extra kick from caffeine makes it worse. It's suitable if you're feeling exhausted, but not something to take every day.
L-Theanine is the most effective I found. L-Theanine is both calming and focusing. It's great during a deadline, or stressful situations like negotiations and interviews. It's my go to drug for programming as often I have to calm myself down from getting too energetic.
You can combine L-Theanine with caffeine, as they complement each other. It depends on how your day is going.
Vitamin E injections (not pills) seem to work very well for me. The effect is similar to exercise in that it feels better, and it's really obvious when it wears off. I'm surprised there isn't more documented evidence for this.
Train your body and you will also be training your mind.
Figure out what is the current market you want to address to.
If for instance, the area where you live has a high demand on WordPress developers, specialize on that and start showing your presence on places where WordPress developers gather on a daily basis: (forums, IRC channel, Slack, Meetup, Conferences).
By doing so, you will get the opportunity to have your voice heard and somebody is going to ask for your help eventually.
Remember: Quality over quantity.
Prefer to deal with clients that consist of the 20% of your clientele that pay you the 80% of your total income, than going the other way around and have to deal with toxic people that have no idea how businesses work.
If you want to gain some professional experience, you can find lots of non-profit organizations that are looking for such valuable help and they could give you incredible momentum to your company for helping them in need.
Be persistent and open-minded with the tools you have to use ("use the right tool for the right job") and embrace challenges.
The aforementioned suggestions are applicable with other technlogies as well, either that is PHP + Laravel, Python + (Django or Flask or whatever makes you happy), or Ruby on Rails, etc etc.