Nothing as complex or inventive as the other projects here, but it's all that I'm working on at the moment.
It's amazing what a nice bunch my customers are. Out of 500 subscribers already 70 have volunteered their time to answer the question set that I just sent out. For typical ecommerce emails, 14% might be the number of people who open an email, but here they not only opened, but clicked through some obscure link on the bottom and spent time answering a long questionnaire for me.
I haven't collected the answers yet, but here are the questions.
- Why they subscribed
- Who will eat the candies?
- Do they have kids?
- Are they into anime?
- Have they been to Japan?
- What are their hobbies?
Also included some that might help with online advertising:
- Education level
- Social networks they use
- Other websites they visit (5 people mentioned Hacker News)
I'm thinking of writing up a blog post describing what I learned, will post it later.
In particular this week, I've been working on solidifying the quantification side of the app (see the first two screenshots) - i.e. making day-to-day productivity (and lack of productivity!) towards big goals something that's measurable and the user can be held accountable for as they look back over past performance.
I've added more of an explanation to the imgur captions.
The site's currently in a launched-but-heavy-iterating stage at https://nachapp.com
Screenshots here: http://imgur.com/a/uw8I1#0
: http://www.wrct.org/: http://designmodo.github.io/Flat-UI/
Main view when paused:http://imgur.com/2IyQkSG
Main view when reading:http://imgur.com/yukcvyW
If you don't know what Spritz is, it's a technology / service to let you read more efficiently, by displaying each word in the same place. Your eyes don't need to scan to find the next word, and most people can increase their reading speeds by a lot because of this. Many dyslexics find reading with Spritz far more comfortable than reading printed text. I'm not going to argue it's use for reading in ranges upwards of 1000 wpm, but I do think it's comfortable and usable for general reading (300 - 400 wpm personally).
Features already integrated:
- Change the speed as you're reading with a slider. Most Spritz applications don't have this, and it's a shame.
- Pause, play, jump back a few words.
Things left to do:
- EPUB & MOBI support. Shouldn't be too hard. Currently it just reads TXT documents.
- Add Books. From URL initially, next step will be GDrive + Dropbox.
- Bookmarks. Very easy to do with .txt documents, maybe a bit different for e-book formats.
I've been working on a minimalistic game collection site with Flash and HTML5 games: http://playszone.com/
Why to play here?
- Big images that actually shows the real game at almost 1:1 scale; - Social integration: when you like an item, like on facebook, share on facebook or tweet about it, it will be stored on my server. (You have to be logged in in order to work.) - Why this is cool? - You have a feel of accomplishment as you will always try to do all the social tasks. - Where exactly is this? - Everytime you play a game, you have a right navigation with 6 buttons. Those are the buttons. (The only problem is the like button which takes a lot longer to get accounted) - No ads, at least not in my site. The flash games and some html5 games comes bundled with ads (Any way to remove them?). - Minimalist UI, which can be closed (Click on the 3 bars at top right of the page). - Played games have an watermark (Only for logged in.).
- Main: http://playszone.com
- In game (flash) Road of Fury: http://playszone.com/games/id:5334632f8984d74232b8925d/road-...
- In game 2 (flash) The Peacekeeper: http://playszone.com/games/id:5339d19cc6af0b434c2dc9d2/the-p...
- In game (non-flash): http://playszone.com/games/id:5332e034775c56a02cc4a1cf/flapp...
- Submit game: http://playszone.com/submit-game
- Login or register: http://playszone.com/login-or-register
- Categories: http://playszone.com/games
- Manage games: http://playszone.com/manage-games
- Node.js + Express - MongoDB + Mongoose - Server side rendering with React.js
I just finished my portfolio website http://grant.cm
It's around 70% done. The hard parts: creating the posters from comments (imagemagick) and creating a product page (zazzle api) are both done.
Now i'm just working on getting a rabbitmq cluster up and running so that it can process multiple comments at once.Also working on the design of the the items because right now it's pretty bland with just b/w text.
Here's a screenshot: http://i.imgur.com/8SOMHBl.jpg
It does workout, nutrition, and body measurement tracking and I'm in the midst of deploying the routines and meta-routines - https://thesquatrack.com/soon over the next few weeks.
* Better search result info - http://i.imgur.com/RassIwF.png
* Flexible nutrition goals - http://i.imgur.com/8dabrHg.png
* Some meal fast logging - http://i.imgur.com/PdOBm0U.png
* Improved the dashboard a bit - http://i.imgur.com/hbs8ZTS.png
I'm not a UI/UX or business person, but I love code, so as long as it's functional, I'm happy.
100% solo founder and 100% bootstrapped ... it's been a heck of a fun journey :-)
One thing I have really enjoyed in this app is having built something in an industry which I have 0 knowledge and almost 0 interest. (fashion, beauty, health). I believe it's allowed me to build much more effectively and detach many of the emotions from building and any preconceived ideas about a particular industry. I normally work in front-end and because I'm looking for a job now I've seen a lot of employers give me a stink eye when I dont have experience in a particular industry or even an interest. I think it's odd and I can see their concerns but I also sometimes like to point out that I can also add to the team something nobody else can, a fresh perspective.
In order to stay motivated I have found inspiration not through the industry and the space itself, but through efficiency and learning new tools that power this website. One of the things I'm most proud is a prototype of a client side feature in which I'll be allowing users to create 'hotspots' anywhere in the image they upload. A typical use-case would be for a user to create a hotspot over a particular item of clothing or accessory and reference a referral link to that product. I've also re-created this hotspot feature in mobile and in videos on top of the Youtube API.
I have had some time off this week so decided to work on something a bit different. I have been working on a concept fuzzing framework for security testing. In the screenshot you can see some of the files produced by it - The bottom right is the configuration used to generate the file format (for this case Bitmap, although I have tested a few others like WAV)
Bottom left is a bitmap produced with no defects. The top shot is a bitmaps produced with some random changes - you can see the green bitmap is now corrupted due to a change somewhere in the format.
I'm using it right now to search through a year's worth of HN "Who's hiring" threads and starring places that I want to work at / hiding those that match criteria that I don't want.
Pretty soon I'll be adding the "application management" piece to it so that I can start to track my applications, correspondences, phone screens, etc.
Backbone.js frontend powered by a Rails API with MongoDB as the datastore. Wanna hire me? email@example.com
I'm experimenting with SPI to transfer the addresses to the shift registers faster and as you can see by the serial output, it's not quite reliable yet. Debugging timing issues is tricky.
I'm also making a PCB. I plan on making it using toner transfer method once some blank PCBs arrive.
I just started, and I'm scraping JSON play-by-play data. This is my first experience with databases, so hopefully it works out well.
(written with spring mvc for the server side, angularjs for the client side, use websocket/socks.js).
Will be available as a open source project.
The CRM webapp I'm working on with the basic features I think such a system should have :
- Customers, suppliers and leads management. - Calendar - Tasks (billable time tracking) - Opportunities, Quotes, invoices, credit notes and purchases - Expenses (rebillable) - Products and services with inventory and moving average costs - reporting - customer dedicated page
Trying to filter oDesk job postings using a naive Bayesian filter. Using method described in pg's A Plan for Spam.
Learned a bit about font rendering and Java's awt packages.
Being used to play with parameters for an in-hub solar vehicle motor. The next step is integrating it with FEA-derived flux densities for higher accuracy.
A competitor to Google Custom Search (yeah, I know) called ExtSearch. Right now there's just a lander at http://getcustomsearch.com/
the screenshot i'm posting is everybody's screenshots ^^
For the purpose of surprise, I'll just leave the screenshot here: http://i.imgur.com/PP4LN2J.jpg
The prototype is ready and it does what it's supposed to, but it's not ready to be released yet. If you'd like to know when it's ready, you can join my (new) email list: http://eepurl.com/SRIPT
 https://twitter.com/TheKaranGoel/status/457563836225056768 https://news.ycombinator.com/item?id=7602045
After receiving great feedback from a show HN, we are glad to have been able to implement almost all of the suggestions we received from HN.
Here's my local dev setup:http://i.imgur.com/cb0WuDH.png
New backend uses node and grunt along with the shopify theme manager. I can develop locally and keep it in git. Grunt watches the changes and the shopify theme manager uploads the new files. So I'm able to develop locally with haml and sass and deploy to my Shopify store as I work.
Also using https://github.com/toolsforliving/foundationify to integrate Foundation with Shopify. It's a good setup for anyone that needs to make an e-commerce site.
I'm busy adding splay tree support to OlegDB. The idea is to use them for searching/cursor iteration. If you haven't seen them before they're basically binary trees with the caveat that newly inserted elements are at the top of the tree. Of course, segfaults abound until I get it working...
 - http://en.wikipedia.org/wiki/Splay_tree
 - https://olegdb.org/
I'm working on a command line spreadsheet app. Screenshot: http://i.imgur.com/snyBhYH.png
I'm working on http://www.hackathonwatch.com It's a hackathon discovery site - it helps you discover new hackathons.
I've been working on it for several months, but did not really get a chance to add "watch/monitor" feature.
: optimize contractor work flow to increase my ROI
: adding "watch/monitor" feature
Designed to be easy to navigate with the keyboard and replace the spreadsheets I normally use on projects.
If anyone out there needs something like this please shoot me an email. Planning on launching a V1 this weekend.
O'Reilly puts up lots of good stuff at https://www.youtube.com/user/OreillyMedia although the webinar recording quality leaves a lot to be desired. A real random set of tech topics though and often something worth watching.
Entrepreneur - https://www.youtube.com/user/EntrepreneurOnline - usually puts up lots of short videos with a business tip in or something. Sometimes longer interviews. Usually worthwhile if a little superficial at times.
The guy who founded Something Awful has a ridiculously addictive channel - https://www.youtube.com/user/lowtaxico - he generally plays horrifically poorly produced indie games with his sidekick Shmorky and I could listen to their absurdist banter all day.
It's a bit of a mish mash but https://www.youtube.com/user/Bisqwit always blows my mind when he does his coding videos such as coding a NES emulator in C++11: https://www.youtube.com/watch?v=y71lli8MS8s
https://www.youtube.com/user/Shmee150 is awesome if you're into supercars. He's currently doing a tour of European supercar events and factories putting up a video each day.
Far Lands or Bust - https://www.youtube.com/user/kurtjmac - is a guy who started to walk towards the 'far lands' in a Minecraft maps years ago. He's something like 10% of the way but is still plodding along recording his progress. This is a real pilgrimage with all the highs and lows that entails.
MrThaiBox123 - https://www.youtube.com/user/MrThaibox123 - is a British IT expert who seems to have an endless supply of cash to buy gadgets, phones, and amazing computer setups.. and he does incredibly well recorded reviews of them. He also has a vlog at https://www.youtube.com/channel/UCrXrOof3iFRZYJGqqApH3Ng which I find interesting to see behind the scenes of someone's life on a daily basis.
Numberphile is a channel of really pleasant and interesting math videos. It's intended for a general audience; any level can enjoy it.
Perhaps you should show these videos to your kids too? When I was young I thought math was boring. It wasn't until college that I found out it was secretly very interesting.
- https://www.youtube.com/user/EverySteveJobsVideo - All the Steve Jobs videos in one channel
- https://www.youtube.com/user/1veritasium - Veritasium: an element of truth
- https://www.youtube.com/user/webofstories - Stories from Donald Knuth, Benoit Mandelbrot, Marvin Minsky
- https://www.youtube.com/user/PandoDaily - the fireside chats with Peter Thiel, Elon Musk, Fred Wilson, Brian Chesky, John Doerr, Tony Hsieh are especially recommended
- http://www.youtube.com/user/ThisWeekIn - my favorite episodes are those with Naval Ravikant, Phil Libin, David H. Hansson, Chris Sacca, Chamath Palihapitiya and Eric Ries
- http://www.youtube.com/user/ecorner - Look for the talk by Phil Libin
- https://www.youtube.com/user/bigthink - Larry Wall and DHH
- http://www.youtube.com/user/kevinrose - Ignoring the raccoon toss video :D
- http://www.youtube.com/user/AtGoogleTalks - Look for a converstaion with Garry Kasparov
- http://www.youtube.com/user/KasparovCom - Into the night with Garry Kasparov and Peter Thiel
- https://www.youtube.com/user/techcrunch - Dont laugh, but I love watching TC Cribs.
- http://www.youtube.com/user/UCBerkeleyHaas - Look for Guy Kawasaki!
- http://www.youtube.com/user/masterlock77 - Trial by Fire: Yabusame
- http://www.youtube.com/user/leweb - Look for Gary Vee!
- http://www.youtube.com/user/StartupGrind - Check out the fireside chat with Vinod Khosla.
- http://www.youtube.com/user/atotaldisruption - Justin Kan!
- http://www.youtube.com/user/500startups/ - Marc Andreessen & Dave McClure!
- https://www.youtube.com/user/building43 - small teams BIG IMPACT' by Robert Scoble
- https://www.youtube.com/user/stanfordbusiness - Look for the fireside chats with Elon Musk and Marc Andreessen
- https://www.youtube.com/user/princetonstartuptv - Princeton Startup TV
https://www.youtube.com/user/urbanTrash - Frank Howarth - Beautiful projects and his videos are very creative.
https://www.youtube.com/user/DrunkenWoodworker - Interesting work.
https://www.youtube.com/user/mtmwood - amazing geometric work
- Fosdem talks, https://www.youtube.com/channel/UC9NuJImUbaSNKiwF2bdSfAw
- Minimalist Programming with jekor, stuff on haskell, like a teardown of Pandoc, implementation of redo, Minimalist Programming with jekor
- Veritasium, mainly physics, https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA
- Vi Hart, the best thing about mathematics that's online, https://www.youtube.com/channel/UCOGeU-1Fig3rrDjhm9Zs_wg
- Brady Haran's channels on various scientific topics, http://www.bradyharan.com/
https://www.youtube.com/user/Vsauce --- IMHO the best youtube channel in existence. Every video is a rabbit hole of interesting questions and tangents with fantastic presentation and weirdly uplifting closing points.
https://www.youtube.com/user/pbsideachannel --- Smart thought provoking videos that use internet memes, gaming, anime, and such as the launch off points.
https://www.youtube.com/user/1veritasium --- Well presented science videos with a focus on the joy of learning.
Incredible indie singer, original songs and some ridiculously good covers https://www.youtube.com/user/mreebee3
Retrogaming/computing (somehow I find these endlessly relaxing):
https://www.youtube.com/user/CGRundertow the old videos where they cover the games are great and funny, they've moved their game content off of youtube due to overzealous copyright enforcement)
https://www.youtube.com/user/Chrontendo probably the most scholarly look at the NES ever made
https://www.youtube.com/user/MrGameSack incredibly well produced show)
https://www.youtube.com/user/Gamester81 (another great show, guy also produces his own Coleco games)
https://www.youtube.com/user/lukemorse1 (a retrogaming legend, lives in Japan an fixes up old arcade games)
https://www.youtube.com/user/MetalJesusRocks (one of the best produced shows around)
Foreign Travel - Asia
https://www.youtube.com/user/Confreaks --- Like above, but mostly Ruby
https://www.youtube.com/user/emacsrocks --- Emacs Rocks (not updated frequently)
https://www.youtube.com/user/EEVblog --- Electronics Engineering Video blog. This is an excellent resource for electronics hobbyists. This doesn't cover programming much, unless it's micro controller firmware or FPGA programming.
- JSConf: http://www.youtube.com/channel/UCzoVCacndDCfGDf41P-z0iA
- InfoQ is very high-quality, especially for Java: See http://www.infoq.com/presentations/ (See QCon videos, StrangeLoop videos)
- redev videos: http://oredev.org/2013/videos
- Channel9 by Microsoft has some top notch videos: http://channel9.msdn.com/ Don't assume that these are all .NET or Windows specific, for example here is one series on Functional Programming by Dr. Erik Meijer: http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Func... Lots of similar videos by Leslie Lamport, Rich Hickey, Simon Peyton Jones. See http://channel9.msdn.com/search?term=%22expert+to+expert%22 for example.
ChessNetwork is run by a national master named Jerry who is absolutely hilarious.
TommyEdisonXP - A jovial and friendly blind guy, who talks about, and answers questions about, how it is to be blind:
Arvind Gupta - He makes simple toys out of cheap materials, and explains the physics behind the toys. He does this full time, and works to popularize science at a premier Astrophysics and Astronomy research institute in India.
Grand Illusions - Like Arvind Gupta, this guy has collected toys and curiosities from around the world, and has dedicated a channel to document them:
Backyard Brains - They perform simple and interesting experiments on nervous systems of organisms:
Bite Sci-zed - A brilliant science channel run by self-confessed science nerd, Alex Dainis:
smalin / Music Animation Machine - Brilliant, brilliant visualizations of western classical music pieces, that help you understand the structure of the music much better if you're a beginner:
For example, see the 2nd movement from Beethoven's 9th symphony: http://www.youtube.com/user/smalin
Talking Animals - Human voices dubbed on viewer-submitted videos of pets. Funnier than you might expect!
I haven't sampled the following channels very well, but they seem promising.
Backstage Science: https://www.youtube.com/channel/UCP16wb-IThCVvM8D-Xx8HXA
It's Okay to be Smart: https://www.youtube.com/channel/UCH4BNI0-FOK2dMXoFtViWHw
Household Hacker: https://www.youtube.com/channel/UCI4I6ldZ0jWe7vXpUVeVcpg
The Slo Mo Guys - As seen on TV: https://www.youtube.com/channel/UCUK0HBIBWgM2c4vsPhkYY4w
Youtube "Leanback" for discovering channels and videos. Slick interface, but doesn't seem to surface quality content. Seems to just prioritize trending items.
https://www.youtube.com/user/bsdconferences/videos collects talks from various BSD conferences. An interesting non-technical talk from the collection is "A Narrative History of BSD" by Marshall Kirk McKusick (https://www.youtube.com/watch?v=ds77e3aO9nA).
https://www.youtube.com/user/Froblyx/videos lectures on game design and development by Chris Crawford (Balance of Power, The Art of Computer Game Design) uploaded by the man himself. "The Dragon Speech" of his can be found elsewhere on YouTube (https://www.youtube.com/watch?v=_04PLBdhqZ4).
https://www.youtube.com/user/VintageCG/videos early computer graphics demo reels, mostly from the '80s.
Unfortunately there does not seem to be a way to get the watch later list as a feed. But youcan subscribe to custom lists like so:
All the people posting Brady's  various channels (numberphile, sixtysymbols, etc) left out the best one: periodic videos. Not only is it interesting chemistry in the same format as numberphile/sixtysymbols, it also features the best mad-scientist HAIR on the planet .
Incredibly detailed and insightful discussion of games from a what you might call a sociological perspective. They speak both as a game designer and as a player. A special emphasis is given to showing how "games" are a type of art, enabling certain new kinds of expression.
I'll caution that I don't mean "game theory" (Nash Equilibrium, etc) - Extra Credits discusses things like "interactive experience" vs "passive reading/watching", how mechanics can be used as a storytelling medium, industry issues, abusive (or just plain annoying) design choices, and theories such as the Uncanny Valley and the illusion of choice.
All packed into short ~5-6min, almost-animated, fun little videos.
(My personal favorites are Vsauce, Veritasium, SciShow, Crash Course & CPG Grey)
ASAPScience - Fun, short interesting facts/explanationshttps://www.youtube.com/channel/UCC552Sd-3nyi_tk2BudLUzA
BigThink - Predominant people talking about interesting issues in short segmentshttps://www.youtube.com/channel/UCvQECJukTDE2i6aCoMnS-Vg
CPG Grey - an awesome professor talking about interesting factshttps://www.youtube.com/channel/UC2C_jShtL725hvbm1arSV9w
Computerphile - short videos explaining concepts in CShttps://www.youtube.com/channel/UC9-y-6csu5WGm29I7JiwpnA
Crash Course - beautifully designed courses for several subjects segmented into short videos. Highly recommended!https://www.youtube.com/channel/UCX6b17PVsYBQ0ip5gyeme-Q
Engineering explained - learn everything you wanted to know about car internalshttps://www.youtube.com/channel/UClqhvGmHcvWL9w3R48t9QXQ
IFLScience - short science news updateshttps://www.youtube.com/channel/UCvOTgnW7oj9ZWDd2y5TEApw
Minute Earth - beautifully animated short science fact videoshttps://www.youtube.com/channel/UCeiYXex_fwgYDonaTcSIk6w
Minute Physics - as above, but purely about physicshttps://www.youtube.com/channel/UCUHW94eEFW7hkUMVaZz4eDg
SciShow - this was one of the first short science video channels - awesome.https://www.youtube.com/channel/UCZYTClx2T1of7BRZ86-8fow
SciShow Space - as above, but about spacehttps://www.youtube.com/channel/UCrMePiHCWG4Vwqv3t7W9EFg
SixtySymbols - short videos talking about interesting symbolshttps://www.youtube.com/channel/UCvBqzzvUBLCs8Y7Axb-jZew
SmarterEveryDay - awesome science explanation videoshttps://www.youtube.com/channel/UC6107grRI4m0o2-emgoDnAA
Veritasium - very high quality science explanation videos - awesome guyhttps://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA
VSaurce - mindblowing videos, usually around 10m, taking you on a tour of interesting facts and ideas. Check out Vsauce2 & 3 too.https://www.youtube.com/channel/UC6nSFpj9HTCZ5t-N3Rm3-HA
He has lots of videos with circuits that seems impossible, but that are just full of hacks. He goes as far as putting circuits inside his components (leds, switches...).
I have a soft spot for RoosterTeeth, they make Red vs. Blue and hilarious Let's Plays and other geeky humor videos. It's one of those shows you can watch in the background while eating or something
Some of the marble machines he's made are incredible.
An extensive series about machine learning (100+ videos).
Ben Krasnow, physics for the underfunded:
Ham Radio Now, lots of SDR talk and good content:
I have many others (e.g. CCC), but on mobile inside an observatory atm.
Seananners - https://www.youtube.com/user/SeaNanners
GassyMexican - https://www.youtube.com/user/GassyMexican
TheMrSark - https://www.youtube.com/user/TheMrSark
edit -- whatever category
Yogscast - british guys playing computer games like minecraft (their arguments are very funny) - https://www.youtube.com/channel/UCH-_hzb2ILSCo9ftVSnrCIQ
news - VICE and VICE news channels for real journalism.
Indie game dev: https://www.youtube.com/user/WolfireGames
Clojure talks: https://www.youtube.com/user/ClojureTV
A filmmaker I enjoy: https://www.youtube.com/user/caseyneistat
[Shameless plug] Computer science paper presentations: https://www.youtube.com/user/PapersWeLove
The first is Ben Rice's: https://www.youtube.com/user/Rev198The next is Pete Rubish: https://www.youtube.com/user/PeteRubish1
These guys are strong as hell and watching them continuously work hard to get such small returns (5-10 lbs) is really motivating for me.
I also like carsandwater for his "Red-Hot Nickel Ball" videos. https://www.youtube.com/watch?v=9qSEfcIfYbw&list=TLIZX0Wqcq2...
Numberphile has some great recreational math videos. https://www.youtube.com/user/numberphile
And, as a few others have mentioned, Veritasium.
A jet engine mechanic way up in the Canadian north. If you've always wanted to get hands-on with a gas turbine, this is your guy.
As I type this, the leading video is an unboxing :)
eCorner from Standford. My first touch with the entrepreneurial worldhttps://www.youtube.com/user/ecorner
This Week in Startups with @Jasonhttps://www.youtube.com/user/ThisWeekIn
Topics from DaveMclure and SteveBlankhttps://www.youtube.com/playlist?list=PLsO8gd4NDn4g5XYcVJQ8D...https://www.youtube.com/playlist?list=PLj1r1DJ80ooT4E2dl0sFw...
Applied Science is pretty cool. He is a master with electronics and fabrication.
Any other leads?
https://www.youtube.com/user/flitetest - fixed wing and (multi)copter builds and flights. Mostly mechanical, electrical, and aerospace.
minutephysics, minuteearth, and crashcourse are also great.
I only have http://www.youtube.com/user/rwenderlich
Smarter Every Day
The Brain Scoop
(Sorry for the lack of links, but that takes forever)
(And the formatting. I don't know how to make it \n)
Internet Culture and Tech Stuff
- https://www.youtube.com/user/EEVblog (electronics stuff)
- https://www.youtube.com/user/lindybeige (irreverent but informative takes on historical stuff)
- https://www.youtube.com/user/bkraz333 (Ben Krasnow, amazing DIY home laboratory stuff)
- https://www.youtube.com/user/urbanTrash (Frank Howarth, fantastic wood crafting)
- https://www.youtube.com/user/minutephysics (well explained science stuff, see also:)
- https://www.youtube.com/user/wickiemedia (if you've even been curious about pro audio, live or recorded, this channel has tons of great tutorials and explanations)
- https://www.youtube.com/user/setiinstitute (SETI talks, probably boring unless you're really engaged with cosmology, astronomy, exobiology, or space exploration, but if you are then there are some amazing talks)
Also, I've found defcon and ccc talks to have some amazing content occasionally. Try searching for "defcon" or "30c3" to get started.
It can do almost anything SQL can. It can't do "IN" queries yet but I have a plan do that in a way that's consistent with the general drag and drop approach of the app. It doesn't explicitly handle BETWEEN queries but they are easily achieved by using two filter tools one after the other.
I think there are two types of complexity to be dealt with when enabling users to build reports/queries. One is the complexity of the concepts involved, the other is the complexity of communicating what you want to happen to the computer. I built QueryTree because of a belief that many people understood they the concept of a filter or a join, but just didn't like text based programming languages. I replaced the SQL syntax but left everything else in place. If I didn't think my target users were up to understanding the conceptual complexity I would have restricted it a bit more and would probably have ended up with something like IFTTT.com but for data. Mostly, people seem to "get" QueryTree though, especially when they're using it on data that they're familiar with.
The vast majority of your users won't use the complex filters.
Ask your customers what kinds of reports they want to build, usually it will be a series of AND requirements.
You can look at email filter builders for inspiration.
Usually it is something like building a series of :
Field (drop down) operator (drop down) value (text)
The tricky part in the ui is combining these (and/or) and if you really want to get fancy, supporting parena to change the precedence of the operators. A AND (b or c).
You must not convert this to SQL on the client side. You must validate the fields submitted are in your approved list on the backend (indexes/security).
Yeap, this is indeed the big issue. One thing that helps is to tune the UI for your specific domain so that it has just enough power to be usable in that domain, but no more. We had to build a query tool for retailers in my last gig, and tuning the UI just for retail helped a lot.
For example, make it easy to specify a BETWEEN operation in your UI if that tends to be used often, provide commonly-used domain queries as templates so your customers can learn by looking at and modifying these templates, etc.
For inspiration, you may also want to look at other products that have query building as core feature. Two that stand out to me in terms of usability are mixpanel and chart.io:https://mixpanel.com/segmentation/ (see "Goodbye SQL" section)http://chartio.com/product/tour (see "Drag and Drop Chart Creation")
Basically, we used a single piece of software's single feature as our reference, for describing it to others and for how to handle the experience.
iTunes Smart Playlists. (https://www.evernote.com/shard/s136/sh/7f5f39a1-6c85-4853-aa...)
I have yet to see a better interface (than iTunes) for building what are essentially custom queries.
For building queries, you drag classes and attributes from the metamodel tree into either the filter tree or the report fields section. The filter tree is a tree of AND's and OR's constructed as you drag attributes into it. Selecting an item in the filter tree then brings up a value editor based on the attribute type that allows you to filter your query based on values that make sense for that type. So if you define your tasks state as enum(unassigned, assigned, started, completed) you get a combo box with those values and options to select in, not in, null, etc.
The report fields section is a list of attributes you want to see in the result set. Basically just a select on that attributes value for the query system. Imagine a todo list created instantly by filtering on tasks with owner == current user and state not in completed, but also wanting to see and sort on the priority, and not showing the owner since you know it's you. The report fields area allows setting of sort order, and ascending or descending.
As you drag attributes into the filter or fields sections, a results pane underneath automatically gets new columns added (for fields added of removed) or new results based on a modified filter tree. After saving a query, users can then register for updates of items that match the query. If any data is changed that affects query results, the updated item or removal is pushed via websocket and that item is updated or removed from the results grid. With this, users never have to refresh the query since all the data is live.
Screenshots are slightly edited and a little out of date, but you get the idea.
Query builder: http://i.imgur.com/AV071JV.png
Dashboard (powered by query/report building): http://i.imgur.com/BvBW7L3.png
I would contrast this with something I would not advise, having a visual interface go straight to a database query behind the scenes.. because then you're basically limited to what you exposed in the UI.
For choosing the tables to query, my idea is to present a grid. Each cell has the table name and tables available through relations. When a table is selected, the cells either remain "on" or are disabled based on relations available. These will typically change depending on tables selected. Relations are discovered as defined, say hasOne, hasMany, etc. this is step one.
Step 2 involves selecting the fields to include in reports. These are typically prefixed with the model name and with underscores replaced with spaces. So User.first_name becomes "User's first name", User's country name or Country name, which I haven't worked out fully yet. I suppose some intuitive way to combine these into virtual fields would be nice.
The hairy bit is selecting conditions. I get requests to hard code queries such as finding the number of product ordered by users who have taken an online course or an in-person course so I have to be flexible. This part is tough to express in a UI simply, because X AND (Y OR Z) isn't the same as (X AND Y) OR Z. However, having some way of grouping conditions and requiring that such groups also have a binary operator by dragging and selecting seems the way to go, a la selecting icons on a desktop.
All of this can be saved as a "virtual table" for reuse. Output is typically a CSV for marketing purposes but my intention is to have this so I can plug in a PDF renderer with nice charts and what not, like Google Analytics.
Though something tells me building all this may be overkill if I can find a package that handles analytics and custom-defined events, along with the ability to upload backdated data!
The challenges of course was training the users to use the operators correctly and in a way that made logical sense. It did take a while for the end users to learn to build queries.
On the UI front, most of the fields and tables could be chosen by double-clicking or drag and drop. Certain operators could not be used with fields based on their types. We also provided a AST like tree to help users understand the operators.
On the optimization front, letting users build their own queries could also lead to very costly queries. We had to profile the user created queries regularly and fine tune our query generator to handle such uses. We ended up creating a lot of materialized views in Oracle to handle specific frequent uses of joins in the table.
The users who were using this tool were top level finance and accounting folks, who wanted to produce reports for the CFO has he dreamt up different data points to work on!
1.Table selection - there is predefined set of joined tables we call views. Views have descriptive names e.g. 'Temperature measurements', no underlying tables are shown.
2.Column selection - user selects columns from views using descriptive names , not actual column names . UI clearly indicates columns that land in 'group by' section by calling them dimensions. There is predefined aggregation strategy for all columns that are not dimensions - e.g. average for temperatures or sum for number of measurements. In some cases more that one aggregate is available e.g. average or maximum temperature. User just selects maximum or average temperature not aggregation operator.
3. Filters: user can select simple filters on columns: =<> and string matching for text. All filters are ANDed
4.Sorting: user can select columns to sort on.
5.Display: results are displayed as tables or charts. More that one section may be placed on single report.
The real system has tons of additional features but basic design as design as described above has worked great for years.
Live demo: http://demo.easyquerybuilder.com/asp-net-mvc/
This is the design we've come up with so far, which incorporates grouping of queries. We've tried to make it readable, but we also display the query in a sentence as you build it. http://cdn.firetrust.com/images/misc/customfilter.jpg
1. What type of report would you like to create? (define the domain)
2. What are you looking for? (define the topic)
3. What limits are there? (define the data boundaries)
4. How do you want it displayed? (report output format like excel, pdf, etc).
See how a select group of customers like it and get feedback on it ... some might immediately say "yes we want something more powerful" or what you have will be just fine. From there you can decide if you want to pursue exposing the query-builder more openly than a guided wizard, and if you want to charge extra for it.
which deals with pure PHP objects.it follows a java standard,you can write SQL like queries with it.
Even Henry Ford had people who thought cars were a crazy idea and they would never use them. Now look where we are with vehicles. In short, don't worry about it.
@VCdelta (this is a bot that tweets changes in VC portfolio pages)
A very humble person, who hopes to empower people to own their own data. Currently working on http://indiephone.eu/
We had VHS tapes for our family videos. Now we have them as video compressed with h264. If that format is getting phased out, we'll just transfer to the latest format. Some degradation may occur when switching codecs, just like when transferring from VHS to digital, but that's fair.
You don't have to come up with a solution that lasts 80 years. You just need to survive 10-20 years until you transfer to the next media that makes sense for you. Keep redundant copies off-site.
For exceptionally good photos, I'm considering prints on aluminum. These should last 50 years or longer with a little less care than Polaroids/Instax (i.e. they can be exposed to light).
I do pretty well and backups of our ever growing photo collection (about 100gb) now. But at some point I may hit an age or health state where I don't care. I guess I can hope one of my kids will have an interest.
Really I should trim that photo collection down to a must have set.
So, you need to be careful with digital pictures too. Keep copies locally and remotely, and carefully keep track of passwords for hosted services.
This is not just limited to pictures. How do you manage your finances? Do you have the passwords stored in a place where your family can get to them in an emergency?
I haven't personally looked into it, and it looks like they are still testing, but this seems to answer your question.
I envisioned a service where we'd help you curate your digital photos (and other important documents), print them on archival paper, and box them in a way that will keep them cool and well cared for and then post back to you. We also contemplated that we might also provide storage services for a second copy.
Would anybody here be interested in such a service?
The issue of even file-formats is problematic when it comes to digital images. One has to ask are NEF and CR2 files going to be infinitely readable? Are canon and nikon themselves going to last 40 years? And if so, provide backward compatibility? and if Not, when and where and to what quality should we trandfer the information to something more archival?
It's not clear at all. So I think this is a great question to ask, consider, and ponder solutions for.
It should be easier for a late-arriver on a post to add a useful comment, and have it be promoted. Have you considered using randomization to adjust the score of certain comments?
HN comments seem to exhibit a rich-get-richer phenomenon. One early comment that is highly rated can dominate the top of the thread. (I will note that, qualitatively, this doesn't seem as bad as a few months ago.)
The problem with this approach is that late commenters are less likely to be able to meaningfully contribute to a discussion, because their comment is likely to be buried.
One thing interesting about the way FB feed appears to work is that they use randomization to test the signal strength of new posts.
Have you considered using randomization in where to display a comment? By adding variation, you should be able to capture more information from voters about the proper eventual location for a comment. It also means more variation is presented to people who are monitoring a post's comments.
Plus everyone has been asking for a way to collapse sub-comments (and many plugins do it already).
That's interesting to me because I find myself downvoting much more often than I used to. But the comments I downvote are not that often toxic in the sense of being nasty. They're more often low-content or low-value comments that don't add to the conversation.
The jerks and trolls are out there but I'm not positive they're most pernicious problem.
I mostly only downvote spam or abuse; I try to ignore "no-op" comments, and would rather reply to someone with information about why they might be wrong vs. downvote, but I'm not sure if this is universal.
Yes this will be great. Any comment that has personal attacks,abusive language, racial slurs, trolling, off-topic self-promotion/marketing etc. should allow downvotes to be more powerful. Usually, comments like these get a lot of downvotes pretty quickly but I am sure there are a few who upvote those comments as well for their own reasons.
May be comments like those should not be allowed upvotes once it reaches a number of downvotes ? Also, not sure if you guys already do this but really bad comments should be killed automatically once downvoted a certain number of times within a short time span ?
Now, when it comes to unpopular comments which are not necessarily outright bad, I am sure those are tough to program because how do you handle the sudden upvotes and downvotes at the same time ?
The avg score is the average amount of points from the previous X comments a user has made. However, this disincentivizes user from posting in new threads which are unlikely to receive upvotes. I've lessened my own commenting in new threads because of this.
To me it seems like a lot more stuff is getting downvoted than used to, and I'm not sure I see a meaningful pattern in the places I see it happening.
That said, I do understand if the mods/community do not feel that witticisms have as great an importance on HN - yes, seriously - so this is not a criticism, just an observation.
I have to say, I'm a bit confused now. Aren't "trolls" the sorts of comments that are supposed to be flagged? (I understand that spam is meant to be flagged, but HN gets very few true spam comments).
What is the difference between downvoting and flagging for comments specifically - and more importantly, what comments should be downvoted?
I've read conflicting arguments (both sides quoting pg, incidentally) that disagree on whether or not downvotes should be used to signify disagreement, or whether one should downvote comments that are on-topic but have little substance (ie, most one-liners).
 I guess this depends on your definition of "troll", but I think a well-executed troll is similar to Poe's law: the reader can't tell whether the commenter is being flippant/rude or sincere. In other words, it's just enough to bait someone into responding, without realizing immediately that it's a worthless comment.
 eg, ads for substances one ingests to change the size of a particular masculine organ, or (less blatantly) direct promotions for off-topic products.
I've seen dang do this and I think it's actually quite effective. I'd love to see more of this.
This could start a vicious cycle where voting cabals of power-users form. For example if Idea X becomes popular among some members of HN they will be able to always steer the discussion to talk about Idea X or down-vote a competing valid Idea Y into oblivion. Comment readers could be converted to Idea X, as it is always appearing at the top of relevant comment threads. So now the voting cabal as even more members. Growing the dislike of Idea Y. The cycle then repeats. The discussion is then steered over time by the thoughts of a select few power-users.
Maybe this is just the natural order of things and I'm subconsciously afraid of change. Thoughts?
Also, I'm pretty sure you've found the secrets to good Internet moderatorship. So many forums went offcourse from ban-happy moderators that didnt want to actually take the time to moderate the community, instead just banhammering people. Kudos to you guys
How have you looked into this, and what have the results been?
What efforts are you going to take to ensure it stays true in the future?
There are other comments asking these questions that have so far not been answered; it would be good to answer them. It's very unsettling when people (primarily from a privileged/majority standpoint) proclaim that things "don't silence minority groups" and handwave the justification.
In general I've found HN to be much more positive towards feminism in particular than similar communities like Reddit or others that I won't name, but the tech industry has large issues in this area and it's surprising to me that this would be the case.
In particular, it seems likely to me that HN will selectively not-silence minority voices that tend to agree with the status quo or pander to majority voices. I'd be surprised if your analysis accounted for that, but I'd be very, very happy to be wrong.
Am I the only one who thinks that posting more meta-discussion directly in comments reduces the overall quality rather than increases it?
Maybe a downvote should come with a chance to add an explanation that can be seen on a user's page or on a "meta" page, but not dilute the discussion itself.
My question, is there an issue with comments I'm not seeing? Do the popular topics on the homepage have dozens of spam or troll comments that are pruned out constantly, so I don't notice the problem? Or is the issue those 1 or 2 downvoted comments I mentioned earlier?
HN receives a small number of comments, so fine tuning algorithms isn't a big deal in my opinion. This isn't Reddit, where the number one post right now has 4,000 comments. That presents a lot of complications, since they need to try and cycle new comments so they all receive some visibility, allowing them a chance to rise if they're of high quality. On HN, you have 20 comments, or 50 comments, so regardless of the sorting, nearly everything gets read. As long as HN generally sorts comments, they're fine.
EDIT: just proved my point,why am I being downvoted? it was a simple suggestion yet,someone downvoted me,just because he can and it's free. I was not trolling or anything... I just wanted to participate the debate.
It'd be nice if something could be figured out to discourage this behavior through reduction of the value of the downvotes of such, especially if a comment has not had a response to explain the downvote.
I have noticed that usernames might influence the way I vote. What if usernames were not displayed in comments? Now this leads to two problems: 1) it makes it hard to follow who replied to what in threads 2) it makes it more tempting to post bad comments given the lack of accountability. I think the first problem could be solved by assigning users a per-submission temporary username picked at random from a name/word list. The second problem could be solved by linking those random usernames to the actual profile page of who posted (just like HN currently does). It wouldn't stop deliberate attempts at up/down voting specific users, but it would remove the unintentional bias.
Oftentimes a post is doing really well , accumulating a dozen up votes within 30 minutes, jumping up the front-page, but then because of two comments, it gets penalized to the third page. I can see it being triggered when there are 40 comments, but there seems to be an awfully low first trigger?
It would be interesting to see how you could actually change the community via comment filtering.
For example, if some individuals are always posting negative comments and were previously not silenced. I wonder if now that they are being silenced if they would leave the community entirely, just keep posting and ignoring the results, or change their comments to fit the community.
Otherwise it looks like anyone just decided to intervene.
This, for example, is much more likely to be buried than if I replied a few comments down on the thread from bravura.
It would also be useful to know how often other people upvote (downvote) the comments I upvote (downvote).
These stats should only be privately viewable.
curious to learn how this analysis was conducted. e.g. how does HN determine which users belong to a minority groups?
Is that desirable? A better debate surely entails more than one opinion. I also don't know what a 'jerk' is, someone that disagrees with the group think?
I just don't think its that big a problem. But thats just one opinion that might differ from the collective and therefore must have no merit? An odd place. Over engineering! To be expected I suppose.
I've thought about doing this in the past but I didn't want to seem too elitist.
Sounds like the new algorithm penalizes disrespectful/spammy comments, rather than the "difference in opinion" comments (which is good). Could a 3rd option be added to differentiate this, though? Have option for upvote, downvote, and mark as spam (I'm thinking a "no" symbol).
I would love to have more details about that: what do you define as minority, and how do you measure silencing.
Most people know what a jerk is. Perhaps though you (and others) could define what a troll is for the purpose of interpreting this statement. (Of course I know the online definition  but think that there seems to be much latitude in "extraneous, or off-topic messages" or "starting arguments".)
Specifically also from :
"Application of the term troll is subjective. Some readers may characterize a post as trolling, while others may regard the same post as a legitimate contribution to the discussion, even if controversial."
While as mentioned I know what a jerk is, I can also see very easily someone throwing out "troll" to stifle someone else in more or less a parental way. That is to nominalize something as simply not important or worth even of discussion.
Every thread is a rehearsal with same opinions at the top over and over and non-fitting opinions float to the bottom. In which turn, they get less "downvote-power" so they will stay low and can't get their peers above. I am not saying that the current flow of discussion is bad, I am just saying that participation is flawed.
We are simply in a system where you get awarded to fit to the masses and you get more power once you have been accepted into the hive-mind. A circular-reference at some point.
Just pick one and force yourself to use it to the exclusion of other editors. Future you will thank you later, because you'll still be using it 20 years from now. "We are typists first, programmers second" comes to mind. You need to be able to move chunks of code around, substitute things with regexes, use marks, use editor macros, etc.
== 6.824: Distributed Systems ==
http://pdos.csail.mit.edu/6.824-2013/ Do each lab. Read the discussion and rtm's course notes.
== Tarsnap ==
https://www.tarsnap.com/download.html How to write C. Study the "meta," that is, the choice of how the codebase is structured and the ruthless attention to detail. Pay attention to how functions are commented, both in the body of the function and in the prototypes. Use doxygen to help you navigate the codebase. Bonus: that'll teach you how to use doxygen to navigate a codebase.
== xv6 ==
Read the book. Force yourself to read it in its entirety. Use the source code PDF to study how to turn theory into practice.
== Arc ==
You're not studying Arc to learn Arc. You're studying Arc to learn how to implement Arc. You'll learn the power of anaphoric macros. You'll learn the innards of Racket.
Questions to ask yourself: Why did Racket as a platform make it easier to implement Arc than, say, C/Golang/Ruby/Python? Now pick one of those and ask yourself: what would be required in order to implement Arc on that platform? For example, if you say "C," a partial answer would be "I'd have to write my own garbage collector," whereas for Golang or Lua that wouldn't be the case.
The enlightenment experience you want out of this self-study is realizing that it's very difficult to express the ideas embodied in the Arc codebase any more succinctly without sacrificing its power and flexibility.
Now implement the four 6.824 labs in Arc. No, I'm not kidding. I've done it. It won't take you very long at this point. You'll need to read the RPC section of Golang's standard library and understand how it works, then port those ideas to Arc. Don't worry about making it nice; just make it work. Port the lab's unit tests to Arc, then ensure your Arc version passes those tests. The performance is actually not too bad: the Arc version runs only a few times slower than the Golang version if I remember correctly.
== Matasano crypto challenges ==
http://www.matasano.com/articles/crypto-challenges/ Just trust me on this one. They're cool and fun and funny. If you've ever wanted to figure out how to steal encrypted song lyrics from the 70's, look no further.
== Misc ==
(This isn't programming, just useful or interesting.)
Statistics Done Wrong http://www.statisticsdonewrong.com/
A Mathematician's Apology http://www.math.ualberta.ca/mss/misc/A%20Mathematician's%20A...
Surely You're Joking, Mr. Feynman http://web.archive.org/web/20050830091901/http://www.gorgora...
Zen and the Art of Motorcycle Maintenance http://www.arvindguptatoys.com/arvindgupta/zen-motorcycle.pd...
== Above All ==
Don't fall in love with studying theory. Practice. Do what you want; do what interests you. Find new things that interest you. Push yourself. Do not identify yourself as "an X programmer," or as anything else. Don't get caught up in debates about what's better; instead explore what's possible.
I never seem to get enough motivation to read deeply into random "grand" code bases like Lua or SQLLite, but some months ago I got into the habit of always studying a bunch of projects that use a given technology before I use this technology, and it greatly decreased the amount of time it takes me to get to a "idiomatic" coding style. So instead of diving in a random, I would recommend making researching existing code-bases related to what you are currently doing an integral part of your workflow.
You could read some of the code-bases he reviews, and then read his review. You'll be able to compare and contrast your opinions with his, and if there's interesting variation you can blog about it ;)
"Code is not literature and we are not readers. Rather, interesting pieces of code are specimens and we are naturalists. So instead of trying to pick out a piece of code and reading it and then discussing it like a bunch of Comp Lit. grad students, I think a better model is for one of us to play the role of a 19th century naturalist returning from a trip to some exotic island to present to the local scientific society a discussion of the crazy beetles they found."
The reason this is off topic is that it sounds like you were after interesting specimens anyway. I don't have any code examples as such, although if algorithms count I'm particularly fond of Tarjan's algorithm for finding strongly connected components in a directed graph, and the Burrows-Wheeler transform (as used in bzip).
 Douglas Crockford's JSON parser. Worth a look because it is excellently commented and is easily understandable https://github.com/douglascrockford/JSON-js/blob/master/json...
It's very nicely commented and has a nice, easy to read style throughout (except for the regexp files).
Very clean (mostly) and very revised C code, following a strict code convention
(Of course it's kernel code, so some things don't apply to userspace, still)
It's a free cross-platform implementation of Apple's Cocoa, so there's a lot of stuff there. But the project is well organized, and almost everything is written in a minimalist oldschool Objective-C style.
I've looked at some other cross-platform frameworks, and they are often hard to understand because they have been developed by a large group of developers and include lots of complex optimizations and platform-specific code paths. Cocotron is not as finely tuned as Apple's CoreFoundation (for example), but much more readable.
Haskell: Snaphttps://github.com/snapframework/snapSnap is another project built in layers (snap-server, io-streams, snaplets, snap-core). The 1.0 release makes some pretty massive structural changes behind the scenes changes with minimal breakage of the public api and io-streams is a very nice api to work with.
* The lack of ifdef's that make cross compiling a breeze
* It is easy to understand, compare to reading the Linux kernel
C++: (Complex software with elegance + performance )
Dart source code V8 source code (Same people as Dart) LevelDB Chrome (the only downside: too much virtual dispatch -> "javism")
SQLite Redis Nginx Solaris and Freebsd
Rich Hickey implementation of the clojure runtime in Java (it was there in 2009.. maybe now this is in clojure itself??)
The Go standard libraries
(One thing that I still remember years on is the "drop of sewage" example.)
Scheme (and functional programming in general): examples/exercises from the SICP book
Very clean, feature-rich yet pragmatic and well documented. https://github.com/zzzeek/sqlalchemy
You'll see some differences from more relaxed C# projects (e.g., we avoid allocations like the plague), but I'd say we have pretty good style. ;)
Max Ogden's talk (the first video on that page, also here: https://www.youtube.com/watch?v=8gM3xMObEz4 ) about how voxeljs and browserify work is inspirational, and his energy, motivation, deep understanding and skill, thirst for learning, reading other people's code, building on top of it, and sharing what he built and learned, is extremely contagious!
You may want to pause the video frequently and take notes -- there is so much great information in there, and he covers a hell of a lot of amazing stuff.
And the source code is really nicely broken up into lots of little npm modules that you can plug together to make all kinds of cool stuff.
This stuff is a great fun starting point for teenagers or students to learn how to program and create their own games and web applications, or master programmers to learn the node.js / npm ecosystem and idioms. There are some great ways for new and non-programmers to get into it.
He says "Everyday I work on it I get more motivated to work on it" -- and you will too!
What you will be benefitting from by watching his video and reading his code, is the fact that he actually did a survey of a HUGE amount of code, and took the best, read it, learned from it, rewrote it, and built on top of it.
A lot of them were the classic genius programmer projects, really impressive visually, super hard to understand, a giant lib folder with 50 files, everybody writing their own 3d engine.
Then he found out about three.js, and learned that, and combined all the stuff he had seen on top of it, including a PhD project in computational geometry that showed how to efficiently implement minecraft with three.js, for removing interior faces, etc.
So he learned from and built on top of all that great stuff, and made voxel.js and an insane amount of demos. Now the community has written a whole bunch of nice modular node.js npm modules and demos, that browserify can combine them together into a package that runs in the browser.
My only trivial beef with it is that their style guide says not to use trailing semicolons! That makes emacs very irritated and it breaks out in a rash.
But other than that, the code is very clean and modular and comprehensible, and opened my mind to a lot of stuff that I didn't realize was possible.
A less glib answer try Brogue: https://sites.google.com/site/broguegame/
A very interesting roguelike with interesting constraint-based features.
I haven't written any C for years, but really enjoyed skimming through Redis codebase, it's so clean, easily understandable and extensible.
source that needs some postprocessing (tangle/weave):
PDF from the source (including hyperlinks)
Common Lisp - "Paradigms of Artificial Intelligence Programming" by Peter Norvig and "On Lisp" by Paul Graham
C - "C Interfaces and Implementations"
Minix 1 and XMonad are also very good suggestions too.
I inherited a colleagues work after she left, and it was horrible. But I thought about why it was horrible, and how to make it better. What would it look like if it was done well?
Even with my own code, if I look at something I did 6 months ago, and it doesn't make sense straight away, the it can usually be improved.
, where the authors actually go deep into the design & architecture of selected well designed open source projectse.g. llvm, git, freeswitch, etc.
Highly recommended !
To learn how to document code.
[Update: Oops. I missed the "Clojure -> Core" by jacquesm]
Then there are the issues of ads causing videos to freeze, browsers to crash, and containing malware. Or what if the ads are offensive to you or you have young kids in the house? For me it's impossible to blame users who just want to view their content in the most optimal way, which is why I see Adblock as a barometer for how satisfied users are with the way websites are delivering both paid and organic content.
I don't mind ads, as long as the following conditions are met:
* They don't present a security risk.* They don't impede the usability of the website (or, in the case of some ads, Firefox in general! Some Flash ads use absurd amounts of CPU) .* They don't leak information to third parties who may resell said information.
However, pretty much all ads in practice fall into one or more of these categories.
Now I use weather.gov and I am pretty happy with the result.
I think he may have a virus/malware installed that is feeding extra ads into the browsing session..particulary the aggressive pop-up windows are indicative of client-side malware
You should you do virus check/removal with a reputable program.
Secondly, I've done both. I've started my own company, which got rejected from YC and ended up in another incubator, DreamIt Ventures, and ended up crashing and burning due to a variety of reasons. I've also spent a summer, and now the better part of a year working at a YC company, Amicus (totally check it out, its an amazing place to work.) I'd say I was incredibly happy with both experiences, but I gained different things from each one.
YC, or the accelerator experience, puts you in the hands of some top start-up gurus and mentors, creates sky high stakes, and gives you the opportunity to build something really awesome yourself. If you have previous startup experience, an idea truly worth the immense work, and/or a co-founder whom you trust with your life, this might be for you. When asked if I'd do DreamIt ventures again, I always say yes, but I warn people that its way harder than you first expect, and if the mix is a off with your co-founder, it can be a few months of extreme pain and constant difficulty. You learn way more about the ins and outs of running a company, and the feeling of having your work criticized to no end, and of failing despite everything you tried. This is a good way to improve certain skills, but I'd argue not all skills fall under this category.
The intern experience is more flexible. From everyone I've talked to, it seems that most companies are looking for especially driven young people who will try really hard before giving up and who will generally do more than their employer asks. This means that once you have the spot, your employer probably isn't going to put much stress on you to work incredibly hard, and while the culture might demand that you work more than 9-5 every day, you generally can take weekends off, or take a day off here and there. This means that if your goal is to learn how to run a software team, as well as pick up a bunch of different tech in your free time, this is for you. If there's a hackathon in the city you're in, you can part-take, and if there is a tech talk that will take an extra day, you can almost definitely get out of work to go check it out. One of my friends at Amicus spent every weekend hacking on a side project, and had an incredible portfolio by the end of the summer, as well as new knowledge of how to write clean code and manage an engineering team of more than one or two.
Now its not to say that you can slack off at work, or not take one of these internships seriously, but at the end of the day you're either trying to 1. Learn a lot or 2. Get a permanent position at the company you're interning at. For the first goal, theres a lot of flexibility to put down your internship work when you go home, and build that cool project you haven't had time for, and for the second, a quality employer will judge you by the quality of your work, not your hours.
Thus, you really have to think about what you want to get out of an internship. Do you want to learn from the engineering pros, get feedback on your work, and build side projects, or do you want to learn to pitch as well as push code, do UX research as well as debug, and have a company in your name instead of your name on a company. Both scenarios are amazing opportunities, you just have to figure out which one fits you better.
However, everything depends on what you want. If you want to have very interesting work, which uses cool tech and is knowledge intensive, you should choose companies which can afford long term investments, not small startups which want to get profitable quickly. If you want to get rich, you probably should choose a different path, but I don't have expertise here.
Going to YC too young is considered "premature optimization" by at least one if not more of YC's founders.
"Because we fund such large numbers of startups, Y Combinator has a huge "alumni" network, and there's a strong ethos of helping out fellow YC founders. So whatever your problem, whether you need beta testers, a place to stay in another city, advice about a browser bug, or a connection to a particular company, there's a good chance someone in the network can help you."
You come off here (as is pointed out by tlb and massappeal) kind of approval-seeking. You should be in business for yourself, because you think that you are better off starting a business than not.
And if your parents don't approve, you need to decide for yourself whether or not to follow their wishes: a bunch of random jerks on the 'net can't really help you there. It's part of becoming an adult.
(Also, I've seen your Github and I've skimmed Outfitly--can you please consider something a bit more useful to attempt as a business? Please? You seem too smart to be chasing vapid B2C stuff).
In fact, we get "new source code" all the time from GPL enforcement efforts. The thing is, it's admittedly not often upstreamable source. A lot of the modifications to source done by redistributors of GPL'd software is not really well formed nor suitable for upstream. It's that classic kind of "it just works, but it's ugly" code.
This is particular true with regard to the "scripts to control compilation and installation of the executiable" which is a required part of the complete, corresponding source, provision of which the GPL mandates.
Situations like the WRT54G (the GPL enforcement source release of which launched the OpenWRT project) and the Samsung TV lawsuit that I helped do (which launched the SammyGo project: http://www.samygo.tv/ are excellent examples of what great things happen when the GPL is enforced: reaching the promise of copyleft, which is hackable devices downstream.
This is why I've spent(and probably will spend) most of my professional life enforcing the GPL.
This post here is about a few specific issues, but if you want more general information on the topic, dalke's link to my talk is probably helpful. Also, here's links to the docket of the largest GPL enforcement lawsuit ever done, Conservancy v. Best Buy et al: http://ia700409.us.archive.org/18/items/gov.uscourts.nysd.35...
BTW, sorry for jumping into this thread. I'm kinda the Kibo of Free Software licensing discussion online; I'm not an HN regular but mlinksva linked me to this.
Linksys distributed GNU software in their routers, in violation of the license. See http://en.wikipedia.org/wiki/Free_Software_Foundation_v._Cis... for details. It links to the FSF's complaint at http://www.fsf.org/licensing/complaint-2008-12-11.pdf if you want to see the low-level legal details.
That WP page ends "On May 20, 2009 the parties announced a settlement which includes Cisco appointing a director to ensure Linksys products comply with free software licenses, and Cisco making an undisclosed financial contribution to the FSF."
Interesting note though - GS did not violate the GPL because they didn't distribute the code. The GPL allows an organization to modify and use code for its own use without releasing it as long as it's not distributed outside the organization.
Ive had more products break GPL than Ive broken copyright before I learned Linux when I was pirating windows software.
Just not much to do really, its only the copyright holder that can actually push for enforcmenet of copyright, and me as a user am pretty much screwed.
He talks about the lawsuits and the effects they had.
Is there such a thing or a specific way of doing this?