hacker news with inline top comments    .. more ..    16 Jan 2017 Ask
home   ask   best   6 months ago   
Ask HN: What's the best computer science book you've read recently?
177 points by bobnarizes  7 hours ago   60 comments top 31
aduffy 5 hours ago 3 replies      
The Algorithm Design Manual by Skiena.

Each section contains a story of some situation he was in where he faced a problem which he solved by applying one of various algo techniques (DP, divide and conquer, etc.). After reading CLRS for a class, it was nice to see how some of the most common textbook algorithms have been applied by a notable computer scientist.

webmaven 35 minutes ago 0 replies      
The Plausibility of Life by Kirschner & Gerhart

OK, this is an oddball one, in that a book on Evo Devo is pretty far from CS, but reading it completely changed how I look at software architecture, protocols, formats, programming languages, and a whole range of other CS-related topics.

Superficially, it is what it says on the tin: an examination of the mechanisms by which life manages to evolve at all, that keep most mutations from being immediately lethal, and instead have a decent chance of producing (potentially) useful variations.

But under the hood, I've found it extremely interesting how and why so many aspects of the living world are resilient and even antifragile, and there is are lot of useful ideas and concepts to mine beyond relatively superficial biomimicry like genetic algorithms, neural networks, or even "design for failure" approaches for software and services.

Read it, and you won't think about "Worse is Better", "Bus Numbers", or Chaos-Monkeys the same way ever again.


relics443 5 hours ago 1 reply      
I still haven't read anything better than Code by Charles Petzold [1] and it's not even close.

[1] https://www.amazon.com/Code-Language-Computer-Hardware-Softw...

nextos 4 minutes ago 0 replies      
CTM. Could be labelled as SICP's sequel.
DubiousPusher 53 minutes ago 0 replies      
The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan and Shimon Schocken

Basically it has you hands on work through the basics of every concept active in a modern computer save for networks and web.

You use software tools provided with the book to design memory, ALUs, intepreters, VMs, compilers Operating Systems and applications.

Available as a free online class at http://www.nand2tetris.org

jagger27 4 hours ago 0 replies      
Like others in this thread, this is more (only, in fact) about programming but I found The Go Programming Language to be an absolutely perfect introduction to Go with fantastic examples and succinct prose. It's beautifully typeset as well, which doesn't hurt.

http://www.gopl.ioISBN: 978-0134190440

jrbedard 1 hour ago 0 replies      
Deep Learning (Adaptive Computation and Machine Learning series) by Ian Goodfellow, Yoshua Bengio, Aaron Courville

Came out in November 2016. Split in 3 parts:

Part I: Applied Math and Machine Learning Basics (Linear Algebra, Probability and Information Theory, Numerical computation)

Part II: Deep Networks: Modern Practices (Deep Feedforward Networks, Regularization, CNNs, RNNs, Practical Methodology & Applications)

Part III: Deep Learning Research (Linear Factor Models, Autoencoders, Representation Learning, Structured Probabilistic Models, Monte Carlo Methods, Inference, Partition Function, Deep Generative Models)


tpetricek 4 hours ago 1 reply      
A Science of Operations by Mark Priestley (http://www.springer.com/gb/book/9781848825543)

This is cheating a bit, because the book is history of computer science rather than computer science, but I think anyone interested in programming should read it. We often think about history of computing (and what it teaches us) in a retrospective way (we see all the amazing totally revolutionary things that happened), but it turns out that if you look deeper, there is often a lot more continuity behind key ideas (and we just think it was a revolution, because we only know a little about the actual history). This book goes into detail for a number of major developments in (early) programming and it makes you think about possible alternatives. It was one of the books that inspired me to write this essay: http://tomasp.net/blog/2016/thinking-unthinkable/

Eridrus 6 hours ago 0 replies      
I tend to get most of my CS content from papers & web pages, but Sutton & Barto's Reinforcement Learning book is pretty good: https://webdocs.cs.ualberta.ca/~sutton/book/the-book-2nd.htm...
DearVolt 5 hours ago 2 replies      
Engineering a Compiler 2nd Ed by Cooper & Torczon

I used it to supplement my prescribed compiler construction textbook and it's incredibly useful! Also surprisingly easy to read compared to some texts with a very math-heavy approach.

vram22 5 hours ago 2 replies      
More about programming than computer science, but it does talk a lot about and show some custom algorithms (it's more about programming-in-the-small, though it does talk about some big picture too), also it is old and out of print (last I checked), but I thought it was really good when I bought and read it, so mentioning it:

Writing Efficient Programs

Also has a great bunch of "war stories" about performance tuning in real-life, including one in which people, IIRC, improve the performance of quicksort on a supercomputer by 1 million times or some such, by working on tuning as well as architecture and algorithms at several levels of the stack, from the hardware on upwards.



Edited to change Wikipedia URL to more specific one.

cottonseed 5 hours ago 3 replies      
Lately I've been reading Network Algorithmics. Awesome book.


johnbender 5 hours ago 1 reply      
Quantum Computing for Computer Scientists

Note, you have to be willing to put the time in, especially if your linear algebra is rusty or (like me) you have only a passing familiarity with complex numbers.

With that in mind, it's almost entirely self-contained and you can immediately start to make connections with classical computing if you're familiar with automata.

I've been interested in learning about quantum computing for a few years now and this book finally got me going.



As an aside it's a really great excuse to try out one of the many computer algebra systems out there. I gave Mathematica a trial for fun since I'd already used SageMath in the past.

cygned 5 hours ago 1 reply      
"Structure and interpretation of computer programs"

Definitely recommended.

deepnotderp 6 hours ago 1 reply      
Does ai count as CS?If so, I'd like to nominate the Deep Learning Book
rough 1 hour ago 0 replies      
Has anyone read Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Michael Mitzenmacher, Eli Upfal[0]? If so, how difficult are the exercises? Aside from doing problems I like to read solutions and analyze them to learn better style, new techniques/ideas. Are there any books like this one, but with solutions? Thanks.

[0] https://www.amazon.com/gp/product/0521835402/ref=s9_simh_gw_...

petithug 5 hours ago 0 replies      
A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday


jsgoller1 5 hours ago 0 replies      
I've been reading _The Practice of Programming_ (Pike, Kernighan) lately; it's mainly geared towards Java and C/C++ programmers, but even as a DevOps engineer I'm finding a lot of it useful.


amirbehzad 2 hours ago 0 replies      
Book:Star Schema, The Complete Reference, by Christopher Adamson.One of the best technical books ever written.


Article:Thinking Clearly about Performance, Cary Millsap (Method R Corporation)


blain_the_train 2 hours ago 0 replies      
> This book will help you navigate the diverse and fast-changing landscape of technologies for storing and processing data. We compare a broad variety of tools and approaches, so that you can see the strengths and weaknesses of each, and decide whats best for your application.


pbhowmic 1 hour ago 0 replies      
The Art of Multiprocessor Programming by Shavit & Herlihy. Recommend topping it off with the lecture delivered at Microsoft Research (https://youtu.be/nrUszqrlvi8)
awesp 2 hours ago 0 replies      
Write You A Scheme, Version 2. https://www.wespiser.com/writings/wyas/home.html. A tutorial on how to write a production ready implementation of scheme using Haskell. Contributors welcome
kartD 5 hours ago 0 replies      
Grokking algorithms. Great book, especially for someone like me who doesn't deal too much with this stuff (as an embedded systems engineer).

Grokking functional programming and deep learning seem awesome as well, but I haven't finished either so take my recommendation with a pinch of salt.

spraak 6 hours ago 2 replies      
Has anyone read "The Impostor Handbook"[0]? What do you think of it?

[0] https://bigmachine.io/products/the-imposters-handbook/

Edit: I'm not connected to the book.

edko 3 hours ago 1 reply      
Type-driven development with Idris (https://www.manning.com/books/type-driven-development-with-i...).

It was a real eye-opener of what types can do.

grillisalaatti 6 hours ago 2 replies      
Not new, but "Hacking - The Art of Exploitation".
adamnemecek 3 hours ago 0 replies      
I'll give you a couple. Note that some of these are rehashes of my earlier comments.

# Elements of Programming


This book proposes how to write C++-ish code in a mathematical way that makes all your code terse. In this talk, Sean Parent, at that time working on Adobe Photoshop, estimated that the PS codebase could be reduced from 3,000,000 LOC to 30,000 LOC (=100x!!) if they followed ideas from the book https://www.youtube.com/watch?v=4moyKUHApq4&t=39m30s

Another point of his is that the explosion of written code we are seeing isn't sustainable and that so much of this code is algorithms or data structures with overlapping functionalities. As the codebases grow, and these functionalities diverge even further, pulling the reigns in on the chaos becomes gradually impossible.

Bjarne Stroustrup (aka the C++ OG) gave this book five stars on Amazon (in what is his one and only Amazon product review lol).

This style might become dominant because it's only really possible in modern successors of C++ such as Swift or Rust, not so much in C++ itself.


# Grammar of graphics


This book changed my perception of creativity, aesthetics and mathematics and their relationships. Fundamentally, the book provides all the diverse tools to give you confidence that your graphics are mathematically sound and visually pleasing. After reading this, Tufte just doesn't cut it anymore. It's such a weird book because it talks about topics as disparate Bayesian rule, OOP, color theory, SQL, chaotic models of time (lolwut), style-sheet language design and a bjillion other topics but always somehow all of these are very relevant. It's like if Bret Victor was a book, a tour de force of polymathical insanity.

The book is in full color and it has some of the nicest looking and most instructive graphics I've ever seen even for things that I understand, such as Central Limit Theorem. It makes sense the the best graphics would be in the book written by the guy who wrote a book on how to do visualizations mathematically.The book is also interesting if you are doing any sort of UI interfaces, because UI interfaces are definitely just a subset of graphical visualizations.

# Scala for Machine Learning


This book almost never gets mentioned but it's a superb intro to machine learning if you dig types, scalable back-ends or JVM.

Its the only ML book that Ive seen that contains the word monad so if you sometimes get a hankering for some monading (esp. in the context of ML pipelines), look no further.

Discusses setup of actual large scale ML pipelines using modern concurrency primitives such as actors using the Akka framework.

# Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques for Building Intelligent Systems


Not released yet but I've been reading the drafts and it's a nice intro to machine learning using modern ML frameworks, TensorFlow and Scikit-Learn.

# Basic Category Theory for Computer Scientists


Not done with the book but despite it's age, hands down best intro to category theory if you care about it only for CS purposes as it tries to show how to apply the concepts. Very concise (~70 pages).

# Markov Logic: An Interface Layer for Artificial Intelligence


Have you ever wondered what's the relationship between machine learning and logic? If so look no further.

# Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)


Exhaustive overview of the entire field of machine learning. It's engaging and full of graphics.

# Deep Learning



You probably have heard about this whole "deep learning" meme. This book is a pretty self-contained intro into the state of the art of deep learning.

# Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems


Even though this is an Erlang book (I don't really know Erlang), 1/3 of the book is devoted to designing scalable and robust distributed systems in a general setting which I found the book worth it on it's own.

# Practical Foundations for Programming Languages


Not much to say, probably THE book on programming language theory.

# A First Course in Network Theory


Up until recently I didn't know the difference between graphs and networks. But look at me now, I still don't but at least I have a book on it.

jackyinger 6 hours ago 3 replies      
A New Science - Wolfram

Maybe stretching outside the typical, but I have a weakness for cellular automata.

Also, I've vowed never to buy another Oriely book or similar book ever. Online docs are free and stay up to date.

jonbaer 5 hours ago 0 replies      
The Master Algorithm by Pedro Domingos
spdegabrielle 3 hours ago 0 replies      
mmaunder 5 hours ago 0 replies      
Best for what?
Ask HN: How to effectively learn PowerShell?
153 points by mondoshawan  11 hours ago   80 comments top 25
nailer 11 hours ago 3 replies      
I also moved from bash (after nearly 2 decades!) to powershell. Here's my powershell profile, including instructions for setting up a new box and additional aliases for Unix commands:


Short answer for 'How do I learn powershell?' is:

* Learn 'select'

* Learn 'where'

Once you get those two, and get out of the scraping with sed/grep/awk mentality you now properly get powershell.

mindcrash 11 hours ago 1 reply      
Not sure how much time you have, but if you do not have much I strongly recommend "Learn PowerShell In A Month Of Lunches" [1]

Basically means that if you can spend about one hour every day on the text and exercises in the book you will be able to grasp PowerShell scripting in about a month.

[1] https://www.manning.com/books/learn-windows-powershell-in-a-...

vmarsy 10 hours ago 0 replies      
I looked at the Microsoft Virtual academy videos [1], they cover a lot of basics but were usefeul, having the creator of powershell teach the course helped understand the philosophy behind it.

When searching for tutorials online, "the scripting guy" was useful, but more importantly I make sure to search for powershell v5, v4, or v3 tutorials. - There are lots of "old" tutorials, but I think there were major changes between Powershell v1, v2, and v3, so I try to avoid those, especially regarding modules

[1] https://mva.microsoft.com/en-us/training-courses/getting-sta...

manojlds 1 hour ago 0 replies      
For me it was this - https://stacktoheap.com/blog/2012/10/17/learning-by-answerin...

I started using Powershell and also stated answering questions on SO. The latter helped a lot in quickly improving my skills.

nikbackm 11 hours ago 0 replies      
I've started reading this one and found it pretty good. As a beginner at least.


BeetleB 10 hours ago 2 replies      
Sorry to piggyback on this post:

I have to use Windows at work, and do not know Powershell. Several times I've debated learning it, but never put in the effort.

Now I use Xonsh (http://xon.sh/). It is a Python shell - cross platform and similar semantics to bash, etc. I was never a power bash/zsh user (scripting in them is Hell). The nice thing with xonsh is that it is Python. If you want to customize your environment, have complex aliases - well, you just write Python code in your config file.

Learning PowerShell for Windows is the ideal. But xonsh is a good intermediate solution for people who don't want to invest in going all the way.

(To be honest, I'm seriously considering switching to xonsh for my Linux machine - currently I use zsh).

oellegaard 11 hours ago 3 replies      
Protip: You'll find two app on Windows called Powershell. One is just called Powershell and the other is called Powershell ISE. I mistakenly picked the regular one, to later find out that Powershell ISE is epic. It's like a combination of a terminal and some kind of IDE.
ygra 11 hours ago 0 replies      
I may be an outlier in this regard. I learned PowerShell by starting to golf in it. However, while I know the language quiet well, I'm completely useless at using it for administrative tasks, simply because I've never done that with it. I use PowerShell as my go-to scripting language, calculator, interactive .NET playground and a bunch of other things, but rarely for managing Windows servers.

I can recommend the PowerShell cookbook too, though. I've been a technical reviewer of the 2nd edition and at least back then it was good :-)

aytch 9 hours ago 0 replies      
I just registered powershellbyexample.com - I'll start updating it soon!
agumonkey 2 hours ago 0 replies      
I tried scripting the clipboard through vbscript but got stuck, tried powershell, it's a one liner.

Seems like a pleasant platform. Thanks for this thread.

AlexB138 11 hours ago 0 replies      
dkarapetyan linked a good Cookbook. That's essentially what you're asking for. In addition to that, when I had to learn Powershell I found "Learn Powershell in a Month of Lunches" quite useful. At the time it was considered the go to book for PoSh, but that may have changed.
13of40 9 hours ago 0 replies      
If you can get hold of either Bruce Payett or Lee Holm's PowerShell scripting books, those are pretty canonical guides, as both of those guys were devs on the PowerShell team for years. On day one you should get familiar with the discoverability features built in: get-member, get-help, get-command, get-member, tab completion, get-alias, etc.
w4rh4wk5 8 hours ago 0 replies      
There is a well designed tutorial on Youtube, helped me a lot to get started.


kruptos 5 hours ago 1 reply      
Can someone link a site that was posted on HN a month ago that shows side by side comparisons between BASH commands and Powershell?
jamesdftx 10 hours ago 0 replies      
I'd recommend:- "Learn PowerShell in A Month Of Lunches" - reddit.com/r/powershell - the powershell podcast at powershell.org
ZenoArrow 11 hours ago 0 replies      
Whilst you might get some value in trying to learn in a structured way, I'd say you'll get much more out of it if you try to scratch your own itch.

In other words, think of something you want to script, then try to learn how to do that in PowerShell.

What I think you'll find if you try learning something as vast as PowerShell with a general approach is that, whilst you may pick up some decent general habits, you'll also find yourself learning a whole bunch you never use.

Learning PowerShell is different from learning a conventional programming language as each use case you'll have will make use of different commands. It's like having a DSL for each use case. You'll use different commands for Active Directory management, for Azure management, for file processing, etc... As long as you know the basics you can pick up whatever is going to be most relevant for what you do.

nathanaldensr 11 hours ago 1 reply      
There is an excellent series of videos on PluralSight. I can't remember for sure who the instructor was, but I always recommend them to anyone learning PowerShell.

I think it's this guy: https://www.pluralsight.com/courses/powershell-intro

majkinetor 11 hours ago 3 replies      
Effectively, forget about desktop and cmd and only live in powershell. That is what I do - Posh is my operating system, it autostarts with Windows. In a several months you will be effective user, but to master it will still take years.

In this regard, few tips:

- Install apps via Chocolatey. If app is not there create a package and maintain it. AU framework makes it one time development event. See this report: https://gist.github.com/majkinetor/a700c70b8847b29ebb1c918d4...

- Your profile is very important. I use profile.d which can be reused easily on all your machines: https://github.com/majkinetor/powershell_profile.d

- Use Powershell Gallery and modules in general. Make module or reusable component for everything. See my work here:


- Make sure you use mandatory cli tools:

cinst conemu less peco sysinternals everything copyq

- Do not use junk GUI editors such as ISE. Visual Studio Code is way better if you have to. Sometimes is OK when debugging. I would suggest vim because speed is of great importance in shell world.

- Follow reddit community and ask questions there rather then on SO which is full of achievement biatches. Redditors will help you for free for the joy of sharing the knowledge.

- Use Github to store all your stuff. Also, in coorporation you can use NAS share to let anybody import stuff from there.

- DO NOT LISTEN naysayers about aliases - use default alises all the time. They are cross-platform and well known and I can go into neurolinguistics of why is it better and easier for the brain but I don't want to do it here. People will certainly whine now but ignore them. DEFAULT (READ ONLY) ALIASES ARE THE BEST. Particularly, if you see somebody does foreach-object or where-object just kill him ASAP.

- Do ALL windows config from Posh. If you don't know ask around. If you are devops dude, you can thank me later, especially when you learn DSC and apply all that knowledge there or with boxstarter.

- If you happen to be locked in older posh use PSReadLine. Keep in mind that $host.Version -lt '3.0' is full of surprises and use latest version if possible.

- Do not compromise with others in coorporation. Ask for script for everything. If sysadmin tells you that server is low on disk you ask for proof in the form of the command you can execute. Ask for invoke-sql when using databases. If you give admin a job to create a IIS site for your web app ask for a script. If you are a project manager, do not close tickets without a script.

- If you monitor vendor excursions in your company infrastructure, ask for transcripipt of ALL operations they do. You will thank me later. Do not sign their work without it.

I can recommend "Windows Powershell In Depth"https://www.manning.com/books/powershell-in-depth-second-edi...

And if you don't enjoy PS almost every single moment you are doing something wrong.

PS: I do not work for Microsoft :) I just think bash and friends are ridiculous in 2017 and honestly a little embarrassing. Do not do that - install Powershell on Linux and Mac if you have to and keep your sanity.

PS2: Somebody will certainly say that ruby/python/whatever is great on linux side. Ignore them. Those are not shell languages (while great otherwise and valuable in your skillset - cinst ruby python etc. is among my mandatory stuff but lets keep perspective here).

Good luck.

iamkarlson 10 hours ago 1 reply      
How have i learnt powershell:1. Replace cmd to powershell everywhere 2. Make you routine tasks automated by ps3. Connect to remote machines by powershell only .... PROFIT
chris_wot 7 hours ago 1 reply      
Powershell is frankly fairly amazing. Recently I found myself needing to open the Windows datastore.edb file, and before I discovered some interops I learned that in fact you can grab a C# member definition, then use it as a signature and load that type as a Powershell object [1]

Hell, I even found a C# code snippet and was able to add into a Powershell string, then add this as a C# type definition, and Powershell compiled it to an assembly and then loaded it as an instance of a Powershell object.[2]

1. http://www.leeholmes.com/blog/2009/01/19/powershell-pinvoke-...

2. I found how to do this here: https://blogs.technet.microsoft.com/stefan_gossner/2010/05/0...

YeGoblynQueenne 10 hours ago 1 reply      
I believe the best way to learn powershell is by using it as your shell, everyday, for real-world tasks, particularly in your job.

Start small, with ls, cp and cat, and don't force the pace. psh is a shell first and foremost- a shell with a very nice language, but a shell all the same. So get comfortable using it as a shell.

First thing is to create your $PROFILE. Google for an example and see if you can edit it to suit you. Then get chocolatey, PSCX (psh community extensions), posh-git and vim, and get used to doing most of your work on the command line (like you'd do with bash, on Linux). See what tasks you can automate by writing a few short scripts- very simple things at first, like copying and renaming files, setting up directory structures and so on, then progress to processing xml and setting up scheduled tasks, and sending email, setting up credentials etc. After a few months you'll find that you can wean yourself of windows GUIs for most of your everyday tasks and probably all of your not-so-everyday ones.

psh being a command-line tool, it's far easier to learn it like that, than trying to learn the language first. You can learn the basics of the syntax allright, but there's a bazillion commandlets that you will never be able to remember, unless you use them in your everyday work, and incorporate in your scripts, and those commandlets are often integral to the use of psh. Basically, you can't separate the language from the use of the shell, so you shouldn't try. Learn them both at the same time.

 % % %
Here's my personal example: I learned psh to avoid the long rdp queues in a past workplace.

I guess that company didn't want to shell out for more windows server licenses and so there was a limit to the number of people who could rdp to a server at the same time- just two or three people per server. So there was always a bit of a queue and I often had to wait between a half hour and a couple of hours before I could get a slot. Or someone would go for lunch and forget to log out, and you had to kick them out and it was generally a big drag.

At some point I started using psh as my windows shell, and then I found out about windows remoting [1], which sounded a lot like ssh on Linux- basically, it lets you open a shell on a remote computer. Next time I had a slot on a remote machine, I enabled remoting and suddendly I could do all the work I needed on the command line, while everyone else still had to wait in line for an RDP slot [2]. Needless to say, this made my life and my job a hell of a lot easier, not to say pleasant (I might have had a few smug smiles on my face, at times).

I'll note there was only one thing I couldn't do remotely: running a proprietery installer for the company's platform, that only had a gui and no command-line options. Everything else, including a whole bunch of SQL stuff, I could do it remotely, on psh [3].

All this naturally pushed me to do more psh scripting, as it was easier to run a script than key in a dozen commends on the command-line. So I left that job feeling very comfortable with powershell, and although I didn't quite have to use it that much in any other job since, I still use it as my primary shell at home.


[1] I think it started with this article, whose title immediately caught my attention:


[2] Noone else cared to learn powershell. I did ask. They said they didn't want to have to learn a new programming language. To be fair, I never explained my remoting setup to anyone, because they would probably tell me to stop using it (I was just a junior dev at the time). Note also that I never enabled remoting on any of our public-facing servers, just in case there was some vulnerability that could be exploited.

[3] I also used vim and netrw to edit my scripts on the remote server directly, over a UNC path, so I didn't have to re-upload them every time I needed to change them. This was a very Linux-y way to do stuff and really unusual where I worked.

diminoten 7 hours ago 0 replies      
I dunno if this is the kind of advice you're looking for, but what I've found is forcing myself to do everything with an unfamiliar tool helps a great deal.
knocte 10 hours ago 5 replies      
I strongly recommend against learning Powershell, it has horrid syntax and is not crossplatform.

It wants to be a pseudo C# but without being C#. And anyway you can use scriptcs nowadays to write scripts in C# (or even better: .fsx scripts, with F#, which is more succint, less verbose than C#).

Ask HN: Have you experienced completely loss of interest on everything?
7 points by lossofinterest  4 hours ago   1 comment top
angersock 2 hours ago 0 replies      
> So I ask you... What motivates you to do what you are currently doing? (8>= hours/day)

Hint: nothing. I've just finished a year-long vacation from dealing with startupcanistan. It's been wonderful, though I'm probably heading back soon.

It's totally normal to get burned out on something that hasn't been directly rewarding to you--ignore the bullshit echochamber and media about our "industry".

Ask HN: Why do coding bootcamps teach Ruby on Rails and JavaScript?
66 points by Onixelen  2 days ago   58 comments top 25
rubyn00bie 2 days ago 3 replies      
JavaScript is a must know if you want to do web work. It's as necessary as HTML. It's the only language browsers actually natively run.

Ruby on Rails is sort of the basis for most any other modern MVC web framework. That is to say it inspired nearly every other web MVC framework, in most other languages. If you can use Rails you'll be able to use most anything else. Prior to Rails most web apps had proprietary frameworks powering them or no framework and were just an bunch of "pages" (endpoints) loosely strung together.

Rails also, for better or worse, has one of the easiest to use ORMs-- ActiveRecord. This helps new folks worry less about the intricacies of learning SQL (or whatever your persistence layer is) and more so about what writing a web service is really about.

Ruby as a language is also very expressive, is truly object oriented, and has all the right building blocks (that's kind of a pun actually), plus a very large amount of documentation and examples. It also is very good for meta programming which is what enables a lot of the rails magic (and fun).

At the end of the day learning more languages like PHP, Python, Java after Ruby is fairly trivial. I always tell noobs to learn whatever is useful for them, and stop worrying about what language.

I started with Ruby 10 years ago and now can write Java, PHP, Python, Scala, Elixir, Objective-C, and Swift; though I am by no means an expert in all of them. At some point you'll realize you've learned concepts and they're what is important. Not syntax.

P.s. don't let my username fool you ;) I'm just unfortunately hipster.

Edit: added some thoughts on why your first language isn't so relevant and a bit of clarity.

Edit 2: fixed absent minded use of rails where I should've written ruby.

bhollan 2 days ago 1 reply      
Programming concepts come more easily the more gradually they are revealed. Nobody has any concept of what a stack overflow is or why it's important on day 1. Ruby is approachable and fairly forgiving and (at least in MY opinion) VERY readable.

Full disclosure: I went to engineering school for 2 degree and then later attended (and currently work for) a code school.

I can say that I can see a marked difference in students that go through Ruby as a first programming language vs JS. Ruby-first students are more ready to deal with new ways of doing things and they are, in general, less likely to have serious learning issues. JS-first students tend to have more consistent problems grasping things like scope and return values. It IS possible it's bent as such due to our curriculum, but all I can tell you is what I've seen in our students.

niftich 1 day ago 0 replies      
Code camps were a product of the mid-to-late '00s, and the premise and format has largely remained the same.

In the late 2000s, the popularity of Ruby exploded when Rails gained mindshare. Rails, along with its healthy share of innovations [1] and productivity gains [2], was a good fit for code camps because it took little effort to crank out a basic CRUD app. Such fast feedback is very impactful on people who are just starting out programming.

Despite other frameworks borrowing from RoR in the years to come, Ruby's culture is largely compatible with the notion of 'programmer awesomeness' -- where a motivated coder is given a powerful toolset and is allowed to do great things, even if they're a bit quirky -- and is lighter on idiomatic dogma than some other languages that are popular for greenfield development today. While those idioms and mores are an asset to the languages that have them, they may stifle independent exploration and make people more afraid to make mistakes, which are quite detrimental to new learners.

Meanwhile, since the late 2000s, Javascript has become practically mandatory, largely buoyed by the HTML5/Web Platform effort and browsers finally getting their act together, but also by Node opening up an entirely new frontier for JS in a very desirable application domain. This, coupled with the JS community's tolerance and encouragement for exploration and independent re-discovery, also makes it a good fit.

[1] https://news.ycombinator.com/item?id=12758085#12761705 [2] https://news.ycombinator.com/item?id=13196431#13197538

jw2k 2 days ago 1 reply      
Quite simply, it's great market fit.

JavaScript has extremely low barrier to entry. Everyone has a browser, so you can get someone to get started without download any software. That's huge.

Rails has the benefit of providing a framework that can get someone building functional CRUD apps in a tremendously short period of time.

Between those two, you've hit a nice sweet spot where someone can be fully functional as a developer in a short period of time (talent/quality/patience aside).

codingdave 2 days ago 0 replies      
Look at the goals of a bootcamp in the first place - to get you just enough knowledge to have the minimum skill needed to be useful to a team. They are not trying to make you a computer scientist... they are trying to teach you as little as possible, while still knowing enough to get work done, which means knowing how to work with a toolkit that does most of the work for you. And RoR does that. It also is popular enough that once you know it, you can probably find a team using it that needs help.

And why JS? Because that is what runs in the browsers.

agentultra 2 days ago 0 replies      
I'd guess Javascript is quite popular[0] because it's literally on every modern computer and has incredible reach[1]. It's also a bit of a kitchen-sink language so students can grow into a style and paradigm that suits them. Plus there's nothing to install to get started... just open a browser.

[0] http://www.tiobe.com/tiobe-index/javascript/[1] https://tessel.io/https://www.sitepoint.com/creating-webgl-game-unity-5-javasc...https://www.youtube.com/watch?v=5sETJs2_jwo

aczerepinski 2 days ago 0 replies      
I think it hardly matters which language you learn first. I went to a Ruby bootcamp but Ruby is #4 or 5 on the list of languages I've used most since then. I didn't use it at all in my first job after the bootcamp.

Those programs are three months out of your life and then you're back to learning on the job and in your free time like everyone else.

I think a dynamic OO language like Ruby or Python is a great place to start but it doesn't really matter. Any mainstream language would be fine.

amorphid 1 day ago 0 replies      
A lot of it might just be timing. Dev Bootcamp (the original bootcamp?) started up when Rails was the cool kid on the block, and it was a break out success. They proved there was a market, and the busy model was easy to clone. A bunch of Rails bootcamp copycats popped almost immediately.
tavrobel 2 days ago 1 reply      
My guess is that they are the flavor of the month (knowing only Rails+JS is widely employable), and have a low enough barrier to entry that you can realistically teach someone enough to be useful in the timescale of a bootcamp. Add a little HTML/CSS and you can do front end as well.

I think the auto-magicness of Rails helps, since it gives you so much even if you are relatively inexperienced. Then you have a jumping off point, to start learning on the job, earning money and you can ostensibly choose your own adventure from there.

edit: I'm not sure what's objectionable about this comment. I'm new here and trying to be helpful, so if I've gone against some rule, I'd like to know so I can learn from it.

nrjdhsbsid 1 day ago 0 replies      
Essentially because they're easy to grok. Take js for example. No interfaces, basic OO system, no access modifiers or static typing, no multithreading, no pointers Etc...

A lot of concepts can be handwaved when you're using a language that doesn't support them. Js is easy to learn and widely useful.

caconym_ 1 day ago 0 replies      
IMO Ruby does a pretty good job hosting a bunch of different programming paradigms and techniques in a consistent way. Whether or not that's ultimately a good thing in a language, I don't know, but I can believe it has benefits in an educational context. Add to that the popularity of the language in general, and it seems like a decent choice for a "boot camp" style education.

If there's a real argument to be made for the pedagogical merits of Javascript, I'd love to hear it. There does seem to be a sizable job market for relatively inexperienced Javascript developers, though.

slap_shot 2 days ago 0 replies      
They are ubiquitous and compliment each other in full stack entry level developer roles.
slowrabbit 1 day ago 0 replies      
If they are teaching Ruby and Javascript, then that must be a web development specific bootcamp. Javascript is a must for web, Ruby is a solid backend choice with very high readability.
gravypod 1 day ago 1 reply      
I think the question that I'd really love answered is why do all of the bootcamps focus on web development. Why don't some focus on systems development, operating systems, trading systems, and other things that won't be covered that I'd consider "important programming" stuff.
rednerrus 1 day ago 0 replies      
If I did it again, I'd do a longer bootcamp that was Devops focused.
ravenstine 1 day ago 0 replies      
A few points I don't think anyone has mentioned yet:

- Ruby has less of a learning curve in contrast to a lot of other languages, though the margin is definitely narrowing with ECMAScript

proyb2 2 days ago 0 replies      
Both frontend and backend, definitely if you are to be in charge of a project that involve security and quality coding on both side that most developers must be proficient and competent to deliver with "Web application" framework.
newsat13 2 days ago 0 replies      
Because they are the (one of the) easiest ways to get things done. Did you have a specific question? This seems to be one of those questions that will bring out the trolls and people will start talking about elixir, rust etc.
pmontra 1 day ago 0 replies      
JavaScript is everywhere and they need it for the browser. Ruby is the most consistent and concise mainstream OO language IMHO. Ruby on Rails is still the easiest web framework to program with.
ransom1538 2 days ago 4 replies      
Most actual work is in "php". But, it isn't 'hip' anymore. So, they teach ruby. Ruby is more difficult and less clear. Rails itself is a land of 'gotchas' (I have 10 years exp in both). After learning ruby/rails it will be difficult to find work and understand basic database constructs.

/end rattling my cane


cookiecaper 2 days ago 0 replies      
Web is the most accessible medium. If you can view it in your browser, so can anyone else. There is no complex configuration or build process (though it seems the JS community is dead set on changing that). What You See Is What You Get. It's an immediately useful and intelligible medium and you mostly stay away from the really scary things. Teaching simple web dev first makes sense.

Rails is probably chosen mostly out of the false tradition that Ruby is a good beginner's language or the also-false tradition Rails is a good framework.

yellowapple 1 day ago 0 replies      
You ask this as if all coding bootcamps teach these things, which I highly doubt to be the case. In fact, I'm aware of several "bootcamps" for both Java and Python. Hell, there's even one out there for COBOL: http://www.wintrac.com/courses/mfcobc.asp

As someone who ended up learning Ruby (and Rails) for a previous job, I can attest that it's a great language from a learning/teaching perspective. Huge ecosystem, the syntax is actually readable, you don't have to fiddle with compilers, and so on. As mentioned in other comments, Rails is also the archetypal MVC framework, for better or worse; while I don't personally care for it, it gets the job done and is in relatively common use; in terms of getting students from zero to hireable quickly, Rails knowledge is pretty useful.

Meanwhile, Javascript is one of those necessities for web development, for better or worse, so a web-centric bootcamp will understandably put some emphasis on learning it.

joeclark77 1 day ago 0 replies      
My first programming class employed Pascal. It hasn't held me back. Let them learn Ruby... one day they'll tell it to their grandchildren and everyone will have a laugh.
746F7475 1 day ago 1 reply      
For one Ruby just has easy syntax
baybal2 2 days ago 2 replies      
Ask ten people to write a hello world in js, and they all will do it, and do it the exactly same way - this is great for a production language. On that point, JS is as good as C/Cxx

The downside - ask 10 people for an example of proper use of advanced oop in js, and out of these 10 you will get 5 passible anwers all of which will be drastically different - horrid thing for production

Ask HN: How do I compile a list of censored websites in my country
9 points by amingilani  15 hours ago   8 comments top 5
loopbacker 15 hours ago 0 replies      
Most dns servers don't allow zone transfers, so I don't believe you'll be able to enumerate domains like this.

In general enumerating domains is not really possible (you can't just dump all North Korean domains for example, and people have tried).

I'd start by figuring out how they are blocking sites. Probing to see which IPs are blocked would be much easier. There are various tools to lookup which sites are hosted on a given IP address (using crawled data).

One way to do this would be to try connecting from outside Pakistan (e.g. EC2 server) and from inside and seeing if a IP is blocked.

Scanning all 4 billion IPs surprisingly doesn't take too long on a modern internet connection.

AdamTheAnlayst 9 hours ago 0 replies      
I own https://www.DomainDetect.io, we pull new domains from Zone files/3rd party sources daily. ~200,000-400,000 domains per day to alert on new phishing sites for businesses. So we do something similar. I would start with something like https://czds.icann.org/en attempting to resolve them asyncronously in your country, then work your way through the new daily additions. Use an ElasticSearch/Cassandra backend for speed to query that volume of information.

Your problem will come from the countries/TLD's that dont play ball with their zone files. These are trickier to obtain.

jjoe 10 hours ago 1 reply      
I think you should crowd source it. Build a simple two-page site where people can submit censored websites and another where you display them. But your very own website could end up on the list.
Raed667 14 hours ago 1 reply      
My two cents: Don't do it on your own. Contact NGOs that work on the censorship issues, EFF, AccessNow, FLD, etc.. They have been working on these issue for a while and probably can help you with their resources.
miguelrochefort 9 hours ago 1 reply      
Yours will soon be on that list.
Ask HN: What are some good (fiction/non-fiction) books about human progress?
30 points by karimdag  1 day ago   25 comments top 18
matt4077 1 day ago 2 replies      
The most ambitious book in that regard must be Guns, Germs, and Steel (http://amzn.to/2jKq9ku) by Jared Diamond. It aims to answer the question: "Why did Europeans end up killing/conquering/... American Indians, and not the other way around?

You'll find lots of people saying Diamond has been "debunked" but by that they mean "here's some criticism someone posted online". It's a remarkable work of analysis tracing the causes of human progress over thousands of years.

hacknat 23 hours ago 0 replies      
Reading Fukuyama's "The Origins of Political Order" and part 2, "Political Order and Political Decay" is a really good sweep on political progress where it comes from and whether or not it's inevitable (hint: it's not).

Fukuyama is a real realist. What I mean by that is that he doesn't deny that progress has occurred (something some people believe), but he points out how precarious that progress is and that it can go away (something some people deny).

I don't understand why it's a controversial statement to say that progress isn't inevitable and that decay can sometimes happen, but for some reason it is. I think his books, among many other things, are useful for grasping that progress takes hard work and can, like anything in this world, be ruined by laziness, corruption, or simple accidental misfortune.

shim2k 21 hours ago 1 reply      
"Sapiens: A Brief History of Humankind" by Yuval Harari.Pretty much a review of all human history.
DrScump 1 day ago 0 replies      
Pretty much everything by James Burke, including the Connections series and The Day the Universe Changed.

Both were turned into TV miniseries by the BBC (plus a successor to Connections that I haven't seen).

oli5679 16 hours ago 0 replies      
The box is a really interesting history of the shipping container. It's looks at the intersection between the technological, political and business aspects of the struggle to introduce a more efficient but highly disruptive technology. It changed the way I think about driverless cars.


jaclaz 8 hours ago 0 replies      
I would recommend:

The Measure of the Worldby Denis Guedj

There is an excerpt here:


The matter is interesting and IMHO very well told, as besides describing the peregrinations of the scientists it gives an insight into the period, the science revolution and Enlightenment.

unlikelymordant 1 day ago 1 reply      
bill bryson, a short history of nearly everything. It is basically a history of what we know and how we came to know it i.e. what experiments were performed, what led to other things etc. Really well written.
psiclops 1 day ago 0 replies      
Siddhartha by Herman Hesse

One man's journey towards enlightenment, learning, experiencing, and progressing through life the entire way.

mjklin 22 hours ago 0 replies      
Human Accomplishment: The Pursuit of Excellence in the Arts and Sciences, 800 B.C. to 1950 by Charles Murray. The author did statistical analysis to find the most influential figures in each field of endeavour, from philosophy to music.
aaronhoffman 15 hours ago 0 replies      
Deirdre McCloskey has a series of books on "The Bourgeois Era". Here's an example of what they cover "1% of history, 99% of wealth" https://www.youtube.com/watch?v=a0nsKBx77EQ
bsenftner 10 hours ago 0 replies      
You'd have to read the body of his work, but Mark Twain's self conversation (the theme present in all his writings) is criticism of the conceited concept of human progress.
shivaodin 14 hours ago 0 replies      
The Ascent of Man: A Personal View, by Jacob Bronowski should be on any list about Human Progress, especially technological progress. The book is about the progress, pitfalls and misgivings of technological progress.
Dowwie 1 day ago 0 replies      
"The Gun" by C.J. Chivers is about the history of the AK47 and how it changed war. The AK remains an affordable, durable piece of technology that anyone could use, and effectively do so with minimal training, while in the process disrupting structures of power.
ue_ 16 hours ago 0 replies      
Books by Eric Hobsbawm and perhaps even Marx and related figures like Proudhon. They are from a European point of view, though.
maneesh 1 day ago 2 replies      
Sapiens is amazing
brad0 1 day ago 0 replies      
Science fiction: Seven Eves

It's what happens with the human race if the moon crashes into the Earth.

unixhero 23 hours ago 0 replies      
Rendezvousous with Rama

Global Shift

SFJulie 17 hours ago 0 replies      
Why read a book when you have a live experimentation?

Amish are not my cup of tea, but they are an interesting bunch.


Android phone hacking into my Wifi
4 points by xsofiixx  8 hours ago   3 comments top 2
rootme 1 hour ago 0 replies      
Possible is another device in your home. May be a camera?
yr-s 8 hours ago 1 reply      
Control access to your wi-if network by forcing approval of your device mac addresses?
Keybase.io is very useful for Web of Trust
22 points by dixonwille  1 day ago   1 comment top
shakna 18 hours ago 0 replies      
When you say Web of Trust, I'd say quite a few think of the troublesome browser extension [0], not the theory [1].

A key point in the theory, is that it is decentralised. Keybase isn't.

What you're enjoying is just public key infrastructure, and GitHub integrating it well.

It's cool it exists, and works well. But it's hardly a Web of Trust.

[0] http://lifehacker.com/web-of-trust-sells-your-browsing-histo...

[1] https://en.wikipedia.org/wiki/Web_of_trust

Ask HN: How do I get up to date as a frontend developer in 2017?
60 points by aphextron  2 days ago   28 comments top 9
rootme 48 minutes ago 0 replies      
Just do nested tables.
binarynate 2 days ago 1 reply      
My interest was piqued when I first misread the question as How do I get a date as a frontend developer in 2017?
dvcc 2 days ago 2 replies      
I think everyone will need a bit more context around what you do know prior to answering the question. Front-end development has somewhat quieted down from the crazy pace of the past few years -- or maybe I just settled into a stack and have given up, who knows!

But a lot of the major players (e.g, Webpack/React/Angular[!2]/TypeScript/etc) have all been around for more than a year, so context is important.

Todd 2 days ago 2 replies      
I would pick a set of technologies that you want to learn. This will require a bit of research, of course. It's a bit of a personal decision, based on your predilections and your past experience.

There is a ton of activity in the space, of course. I would first glance at the ECMAScript efforts of late (ES6 and ES7 in particular). You'll probably need to use Node.js, since it tends to be the center point of JS development, regardless of the tools and frameworks you choose.

The first piece is your build tool. Grunt and Gulp are the two top build tools. Gulp is more recent and seems to have more uptake. If you haven't written a build script (e.g., gulpfile.js) I recommend building one up from scratch rather than using someone else's. You could use others' for examples of what to do, but build your own from scratch according to your needs, as you go. You'll learn more and understand the whole thing that way.

The next choice is whether to use a transpiler or not. The two biggies are Babel (ES6 transpilation to ES5 or ES3) and TypeScript. You can skip this step at first, but it will be a foundational aspect to your build, so don't wait too long. If you do skip it, loop back once you've made your other choices.

The final big choice is framework. The big ones right now are React and Angular 2. There are many others, of course (Vue, Inferno, ...). You might try a few efforts here to learn about them if you don't have a clear initial default choice.

There are secondary choices depending on which main framework you choose. For example, if you use React, you will likely need a client-side store. Flux used to be the default. Now it's likely to be Redux or, more recently, MobX.

There hasn't been a better time to be a JS dev. There's still a lot of churn, but there's also more stability than there has been in the past few years. You can stick with technology choices for a year or two without major disruption if you make course corrections. Good luck!

contingencies 1 day ago 1 reply      
Not that much has changed that is super significant.

IMHO to be a good frontend developer you need decent comprehension of JS/CSS/HTML. Some framework experience. Some backend / upload knowledge. Know git. Not an asshole to work with.

To be a better frontend developer you need human skills, strong raw JS, the ability to move between frameworks without whinging, and solid knowledge of cross-platform desktop/phone/tablet/TV development. Can happily code a frontend direct from either an API spec or a vague informal concept. Have written and used automated tests with git.

To be an awesome frontend developer you need all of the above but are comfortable doing web as well as multi-platform native development, can run docker or another toolchain for rapid iteration and integration with backend developers and QA teams, have great people skills, have executed multiple projects where security/reliability/offline mode/multilingual design were front and center, and have learned basic lessons about cutting corners by maintaining at least one or two nontrivial projects long term.

camus2 2 days ago 1 reply      
> What are some need to know things in terms of frameworks and workflow that I should be aware of?

Strange times, isn't it? 10 years ago, a front end job would require a comprehensive understanding of CSS, the DOM and JS. Now it's all about framework X and Z, build tool A or B, Typescript and what not, like these tools are so complex one has to be a specialist in these tools because they can't be learn in a few days.

Meanwhile, micro-services are all at rage on the server and back-end developers deemed big frameworks like Rails,Spring,Symfony and co an anti-pattern because complexity is bad (Go)? But stupidly complex tools and frameworks on the client are OK?

sergiotapia 2 days ago 1 reply      
Whatever you do learn ES6. It's the Javascript used today by most startups. Try to learn how to manipulate the DOM without jQuery. Learn React. Learn how to setup a project using Webpack.
PascLeRasc 2 days ago 3 replies      
I'm also looking to brush up on front-end; can anyone comment on if Bootstrap is still important?
Ask HN: What can you do in one language that can't be done as well in others?
19 points by anthony_james  1 day ago   21 comments top 7
Jtsummers 1 day ago 1 reply      
Erlang - Actor-based software design and its inherit benefits are trivial to implement compared to (most) other languages. By design, almost trivial distribution across many nodes without resorting to specialized APIs (that aren't common across all platforms) or separate coordination languages.

Ada - The type system and the manner in which it can be used to constrain your software (in a positive way) makes ensuring certain safety/reliability much easier. Compare in C, an int is an int. If I make a "temperature_t" it's just a double or something that's aliased. Where as "kelvin_t" in Ada can be made to be only the positive real numbers.

Lisps - I'll include Common Lisp, Emacs Lisp, Scheme, Racket, clojure, etc. The meta programming (ruby has this too, actually) makes it much easier to develop large programs almost automatically. The meta programming nature allows you to, within the same language as the primary program you're aiming for, extend your language and program. This reduces the friction of the meta programming tasks, consider C. You can use meta programming, but it requires at least one other language.

Plenty of others, three (languages and families) off the top of my head.

tluyben2 19 hours ago 0 replies      
Idris and Coq which have more advanced type systems allowing you to create proofs for you software. There are not many languages that allow this.

And Shen which has a Turing complete type system meaning it is very flexible but type checking may never halt in certain conditions. I do not know of another language with these properties.

Haxe allows you to target absolutely anything and if you miss some exotic it is trivial to allow generation for it. It is also quite mature language with a macro system. Again, maybe MonkeyX compares somewhat but has far less backends and making a backend is not so straightforward.

K and Q and their parent APL which allow you to write the most terse code you will ever see (some make a sport of it).

Forth you can implement in a few hours on any platform and yet is a very powerful language which makes it easy, once you get used to it, to write terse but easy to understand code. This one I would say is, compared to other languages including Lisp, easier to implement naively while still keeping solid perf. There are also lists of minimal instruction Forths which show you how powerful and easy the basic constructs are and how rapidly you can make a toy language.

rdnetto 1 day ago 0 replies      
Haskell and Scala are pretty awesome at embedded DSLs, because of do-blocks. You can use them to bind some value to a symbol (i.e. assign a variable) inside the eDSL, which isn't possible in most languages. (Contrast this to, say, eDSLs in Java, which are limited to fancy builder patterns).
arms 1 day ago 1 reply      
Elixir's concurrency primitives & actor system make some concurrent and parallel jobs much easier than I'm used to in other languages.
astrodev 1 day ago 0 replies      
You can easily create domain specific languages in Scala using operator overloading and implicits.
dClauzel 1 day ago 2 replies      
Bash shell script: using pipes cat MonFichier | while read LaLigne ; do echo $LaLigne ; done
imaginenore 1 day ago 4 replies      
I know PHP isn't very popular here, but it's awesome for string manipulation, parsing files.

One-line that reads the file, splits multiple lines into an array:

 <?php $l = explode("\n", file_get_contents("in.txt"));
Want to sort them alphabetically? Add

Trim them?

 $trimmed = array_map(trim, $l);
Remove duplicates?

 $unique = array_unique($trimmed);

Ask HN: What skills a company expects to have a self-taught web dev?
6 points by alinalex  17 hours ago   3 comments top 2
itamarst 14 hours ago 1 reply      
I've never seen a company that has different assessment based on education, if it's for same role. Especially since most of what you learn in CS degree is irrelevant to web development.
taiwoayanleye 14 hours ago 0 replies      
Simple, get SHIT done. If you can get SHIT done, you are in. That's what matter
Ask HN: What do you do with outdated smartphones/mp4s?
11 points by toxiclance  1 day ago   6 comments top 5
sidcool 23 hours ago 1 reply      
Some of them are very good for pet projects and hacking and rooting and doing stuff you would not dare to do on your new phones. I would love to tinker with them a bit.
simon_acca 14 hours ago 0 replies      
Donate them to save the rainforest!

Also, the project is an interesting technical solution in and of itself.


zhte415 21 hours ago 0 replies      
I only have one outdated smartphone, bought about 2010, and discarded late 2015 simply because the USB charging mechanism was too worn out (could have got that fixed, but wanted Android 4.x which it couldn't do); was on its second battery. It now sits peacefully in my desk draw at work.
herbst 20 hours ago 0 replies      
I scratch my phones badly so i cant resell them. But if i or a friend need a temporary phone i happily give them out.
tarun_anand 1 day ago 0 replies      
Usually trading them in for a new phone or resell on a classifieds site. What country are you based in?
Ask HN: What a 2nd tier college student must do to be at par with the best?
89 points by amandavinci  3 days ago   64 comments top 31
praneshp 2 days ago 2 replies      
Possibly unpopular opinion here on HN. I almost went to VIT in 2007 (shockingly got into NIT Trichy instead).

1. Focus on becoming a good programmer (ie, SPOJ/Topcoder/Directi). That'll help you clear interviews, and get good at thinking about algos and data structures. I'd even prioritize this over other CS fundamentals.

2. Keep your GPA up and get into a good grad school. I disliked both the interview process and the classism (ie, recruit from top schools) of Indian companies when I interviewed there.

3. If you don't want to go to grad school, make sure you don't touch TCS/CTS/Wipro/<insert mass VIT employer here> with a 100-foot-long- pole. Given your passion, and assuming you use the next two years to become a strong programmer, you will find a good place to work in Bangalore. You might have to pay your dues, but please don't pay them at the above mentioned places.

And people who look at you as second class undergrads can fuck off (esp the professors at IIT Madras :) ). I know several friends at IITs that preferred to pot-smoke-away their time there. If you're near Chennai I'm happy to chat with you.

whitenoice 2 days ago 1 reply      
You are doing great! Don't let institution name bother you, it does not matter much, it helps in getting interviews etc, but if you work smartly you will get that anyway. Few things I would focus on:

1. Build a strong CS and Math background, especially since you are interested in AI, ML. Academia is the best place to do this. Look at the curriculum of top engineering schools like mit, cmu for your sophomore year and see how you can complement it with the courses you are taking. This will pay you dividends in future. You are already doing that, which is great! Try to add more structure to your execution.

2. Take advanced courses on the topics you are interested as you get to your senior year. A lot of MOOCs have entry level courses but lack on advanced topics. You will find these scattered across university lecture videos, you already mentioned OCW.

3. For prototype projects try building things from the ground up. For e.g. Taking an Operating systems course great, build a simple filesystem from scratch. It will help you in understanding the complexity involved in production grade software and why certain design choices are made.

4. For the projects that you are passionate about deep dive into it, its great to see people talk about their projects with deep technical insight, pros and cons of design choices made etc.

5. Personally I would avoid learning every new language that comes up, focus more on programming language concepts (there is a course of Coursera on this) and learn few languages well.

6. For internships look for startups that are working on interesting ideas.

7. More than the certificates the projects what you did in those courses are more valuable.

8. Enjoy, make good friends, stay healthy and active.

segmondy 2 days ago 0 replies      
You are aiming too low. Why do you want to be on par with the best? Why not exceed them? My advice to you is to learn more than computing. We tend to obsess over languages, frameworks, algorithms & tooling.

Learn "software engineering", this has nothing to do with language, framework, algorithm or tooling. This is about code organization, managing complexity in code, deciding how to structure/architect an application. This is where you are going to read what some will consider "boring" books, these books will hold very strong opinions and are not exact science. You will have to take that knowledge, apply your experience and come up with your own reasonable opinions too. Here are sample of such books in my library, "Business Process Management", "Ship It", "Architecture Principles", "domain driven design", "Enterprise integration pattern", "Clean code".

The real world doesn't care what language, framework, algorithm or tool you use. They just care that you solved the problem. This means you must understand some other domains outside of tech. If your domain is only tech then you will be building tools for programmers/IT folks. If you understanding banking, insurance, health care, automotive, shipping, etc, you could apply your knowledge towards the difficult or poorly solved problems in those areas.

If you become well rounded, you will have the skills to implement, the domain knowledge to solve pressing problems, but more importantly the wisdom to know when to and when not to break rules.

liquidise 2 days ago 2 replies      
You have already mentioned the top one for me: passion.

Colleges rarely teach you what you need to know professionally - they can't, tech moves too fast. Instead, they teach you how to learn what you need to know. This is an important distinction because it should inform your approach to your professional growth.

1. Stay passionate both about software and your own growth/education in it.

2. Start some personal projects and, important, work on them until they reach a place where you can talk about what you learned, the techs you used and be able to at least show a page or two of it working.

3. Be forthcoming in interviews about your desire to create. The longer i am in software the more importance i put on hiring creative people.

Finally, think of software development as modern day blacksmithing. Those who do well have a few things in common: passion, persistence and a great set of artisans (mentors) to learn under. Prioritize finding some people who have compelling opinions on software development and work with them. It will change how you build software and the value you will bring to teams in the future.

ageis 2 days ago 1 reply      
Having come from a similar background, I can offer you these suggestions -

1. The level of programming taught in Indian universities is not enough. Writing a sort program is quite different from writing good, maintainable OOP code. Apart from working in a good company, one way to develop this skill (which I feel is critical) is to look and contribute to good open source projects - elasticsearch, spark, etc. Unfortunately I don't know of any good books which teach this overall, apart from specific aspects like Effective Java.

2. Another aspect that I feel is missing in Indian universities is challenging assignments. I would have liked to write my own toy OS to learn systems, or toy kafka to learn distributed systems. The more core computer science fundamentals you master now (preferably through writing code along with learning theory), the better an engineer you will be later.

3. Another aspect that is lacking is the way to reason through things. Indian universities have a third-person approach on the lines of "the experts do things this way so we will just do it this way", on the contrary in a US university the reasoning is more on the lines of "we use to do X, that had Y limitations. So we moved on to Z, now your assignment is to design an extension to Z (say Z+) which solves YY limitation". Unfortunately, I don't know what can be done to improve the way we reason about things.

4. Don't forget to explore different areas. I started with computer graphics, moved on to compilers, then app development, then data engineering, then infrastructure development, then back to data engineering.

mbrodersen 5 hours ago 1 reply      
Study after study has shown that going to a "2nd grade" university makes no difference to your skill level and lifetime earnings. They basically compared people who were accepted to "top grade" universities and chose to go somewhere else with people who did go. So don't stress about it. Simply learn as much as you can on/off university.
captn3m0 2 days ago 1 reply      
Few tips:

1. Apply to startups. If you are looking to apply to the big four, make sure you do your diligence and work hard at coding contests.2. Practice peer-teaching. VIT is a huge college. There are more people like you, and you can easily help each other by doing projects together.3. The industry, in general, rewards freshers who have worked in large teams and projects before. 4. Make sure you get a good internship. Shouldn't be hard for you, but if you are interested, drop me a mail (Razorpay, Bangalore)5. Go for depth first and then pick your specialization within software. For me it was Web Development and Software Security. Could be anything for you, but make sure you have tested the waters in other fields before picking one. The one benefit of College Life is that you have time to experiment and fail. You can try out projects in all these different fields, and then decide what you are really passionate about.6. GSoC is a great option. I'd recommend trying for a experienced org over a new one. 7. Avoid freelancing, unless absolutely necessary. It rewards short term gains, over long time learning. You can make much more money cloning WordPress themes and reusing them across projects then learning a new programming language. The latter would help you much more.

I'm very interested in Software Education in India, and if would like to talk more, drop me a mail (email in profile).

m0llusk 1 day ago 1 reply      
Real work is always more impressive than academics. The sooner your schoolwork fades into the background of your career the better.

Many posts here emphasize direct skills, but it is important to understand that the modern workplace requires a broad range of skills in particular related to communication. One specific communication methodology which is worth learning is Nonviolent Communication which can enable people with different contexts and points of view to have useful conversations that resolve significant conflicts.

nickbauman 2 days ago 0 replies      
Code that solves a real problem or runs a real (viable) business is more important than any degree certificate you will ever get. 93% top most successful corporations in America are managed by people who come from 2nd and 3rd tier grads. Steve Jobs was a college dropout.
onion2k 2 days ago 1 reply      
Everyone in our country, from academia to industry, looks at us as second class undergrads

Go and work somewhere where your university's reputation is unknown, then people will rate you on your work rather than the university you went to.

bernardino 2 days ago 1 reply      
I am glad to see a question asked from college student. I am always interested to hear from others in college. I am twenty-one-years-old, attending a community college in the states and studying a bit of computer science.

I am going to go off on sort of a tangent and offer you some general advice:

1. Do not worry about what other people think. You mentioned in the beginning of your question about being looked as "second class undergrads", and that is completely false. As Rainer Maria Rilke once noted: "Your life is so inexpressibly your own..."

2. Build things you are passionate about, and not because they'll help you land a job but just for the sake of building things. If you are interested in artificial intelligence or machine learning, learn about them and build something. Better yet, keep a blog and write about the process of learning about AI, ML, etc. Don't be afraid to email some people you look up in the industry for guidance.

3. Keep learning, learn about anything that sparks your interest. Nothing is boring in its deepest essence. There's always something to learn. And if you know a lot, teach it or write about i.e. set up a repository for other people to learn more about it in an easier way.

Above all: Just be you. Don't label or attach yourself with certain identities. Build great things just for the enjoyment of building things. Love the process of building things. Collaborate with friends and colleagues. Go boldly.

Learning, building, etc. is all a joy. Don't try to be the best _____, just build stuff that matters to you.

shubhamjain 2 days ago 0 replies      
Having completed graduation in India with a college much less in glamor than VIT, I would advice you to give yourself some slack and continue working earnestly on interesting stuff. When I graduated, I was deep-down with anxiety to get proficient in frameworks like Rails / AngularJs. Apparently, what were web frameworks in my time are AI / Big Data these days the skills insinuated as requisite to be taken seriously.

But things are much simpler than that. Programmers solve problems and even the most revered programmers are just solving other programmers' problems. If you are building stuff, irrespective of size, scale or complexity, you're on the right track. Snub the anxiousness of not studying in the top-tier college; it won't matter few years down the line. I certainly can relate to zealousness of solving complex problems, but in my view, it's certainly not a prerequisite for personal fulfilment, or success, for that matter.

In day-to-day work, I am yet to use anything related to AI but every now and then, I find immensely time-saving project that just solved an insignificant problem.

gh1 2 days ago 1 reply      
I checked out the game you developed...looks awesome.

Look - since you are passionate about solving problems and making things, why don't you just create sources of passive income or build some business from the ground up? This way you will be able to bypass any reputation issues that your university has and focus on your creativity instead.

ravirajx7 2 days ago 0 replies      
You're doing great. Don't stop your learning curve fall down. I feel that there are really very very less people like us in our country who have similar likes and views though they share almost same story like ours.I can understand the situation of student like me. I too am sophomore student at an Institute ranking way below yours but i feel it doesn't matter a lot specially in our field. I read so many things over internet like how i can develop myself up and so and so though i start everything i don't do anything good which i can show or prove to the world Trust me bro you can't match my level of procrastination. I haven't done anything except reading things over internet and i don't know why the heck i came here to suggest or advice you. But one thing i would like to tell you: don't let yourself feel down and fuck the negativities around you instead try utilizing and learning as much as you can in forthcoming years. There are hell lot of people who are there to help us out and internet is our best friend. I'm studying really hard to learn things around me and i feel you should do the same and make each second count for your better future. Good luck.
akarambir 2 days ago 0 replies      

You are already on right track. Just complete the Graduation as it is required by many companies(and visas if you need any in future). Go for fundamental courses more on MIT OCW and others. I also studied in a private engineering college from India(2010-2014). My rant at the time here: https://nainomics.blogspot.in/2011/11/welcome-to-indias-high...

I just focused on my learning. Some professors were encouraging. That helped.

One anecdote: I made a heroku style PaaS for my final year project(like dokku). My professors couldn't understand what it does and why is it even necessary. Their main point was we have "shared-hosting" services to do these(I had to go from php to java/python example then :P). Now after two years they have their industry peers saying docker all over and have called me several times regarding that.

I am now Backend Dev building APIs with Python(Django) and Elixir at a small company. I also have small Open source contributions under my belt. Contact me if you need someone to talk to

AnimalMuppet 2 days ago 0 replies      
I'm in the US; if you're going to stay in India, my advice may be less helpful.

But I would say that you're in an environment where everyone cares greatly about credentials, because that's all anyone has so far. Once you graduate and have worked for a few years, people don't care so much about the credential. It may matter some, but it matters more that you can actually do things.

So you need to get a credential that is good enough to get you a job. But it matters more that you actually know what you're talking about, rather than just being able to repeat what the professor said. You need to understand, not just memorize. You need to be able to write software that actually helps people do things, not just classroom exercises. If you can, then you will surpass many who have better credentials than you. It may take a few years, but you will pass them.

seesomesense 2 days ago 1 reply      
If you are at Vellore (VIT appears to be Vellore Institute of Technology ), there is a world class medical institution in your town (CMC Vellore )that sends many of their graduates around the world to places like the Mayo Clinic and MGH.

They have a well regarded neurophysiology lab that was run by Marcus Devanandan. Perhaps you could do research / collaborate with them.

tallanvor 2 days ago 1 reply      
I can't really speak for anyone else, but speaking as someone who has been involved in interviewing and making hiring decisions, I don't care what school you went to. I care that you graduated, and I care to a slightly lesser extent what your degree is and what your GPA was.

What I really care about when I interview you is how you answer my questions (this doesn't mean that I expect you to be able to answer every question fully), how well I can gauge the depth of your knowledge, and whether or not I think you will listen to senior engineers, learn what you need to do quickly and with an appropriate level of mentorship, and be a team member rather than someone trying to do his/her own thing.

Ok, I'll admit that someone who went to a for-profit school is going to have a higher bar to pass, but I haven't had to worry about that yet.

eachro 2 days ago 0 replies      
Focus on learning and self improvement. Everything else will naturally fall into place.
glangdale 2 days ago 1 reply      
Do you want to be a game developer or an AI expert? I would suspect that the things you should do are going to be quite different.

Also, what do you mean by "at par"? Status? Money? Knowledge? Expertise in a given area, and if so, what?

amandavinci 1 day ago 0 replies      
I have compiled all the valuable advice and suggestions here into a blog post for other students like me:


tps5 2 days ago 0 replies      
No one you want to work for is going to look down on you based on where you went to school.

I hesitate to give you advice since it sounds to me like you're pretty busy already.

RangerScience 2 days ago 0 replies      
I've been watching a friend follow their passion (food); what they do, and what I do/think in response. At this point - anything and everything to do with food, my first thought it - What's Veronica's opinion on this?

You want the people you know (and who know you) to have their idea of you intertwined with what you want to be doing; now, everything they encounter that has to do with that will get funneled your way.

sch00lb0y 2 days ago 0 replies      
keep on learning new stuff. make use of time. vit university has a good startup culture so try to find a startup and work on it. here is the some of the vit open source project where you can contribute 1)https://github.com/karthikb351/CaptchaParser2)https://github.com/princebansal/MyVIT3)https://github.com/shubhodeep9/go-MyVIT4)https://github.com/aneesh-neelam/VITacademics5)https://github.com/sch00lb0y/Vit-Photo
greenmoon55 2 days ago 1 reply      
First, you need to think about what you want to do after graduation, such as becoming an Android game developer or a graduate student focusing on AI. Then figure out what you need to do to achieve your goals (such as work on projects or do research) and keep working on it. Everything will be fine and you can be at par with the best.
kc10 2 days ago 0 replies      
No one really cares where you graduated from. I have worked with developers from IITs, BITS and much smaller colleges. Some of them are smart, some of them are mediocre and some are bad, irrespective of the college they are from.

All that matters is your passion and how much you put into the work you do.

asafira 3 days ago 1 reply      
At the risk of sounding cliche', just do work at something you enjoy. If you think there will be valuable knowledge in the degree certificates, go for them. If you have a cool idea you want to explore, go for it.
grigjd3 2 days ago 0 replies      
Don't let yourself be entrenched in the things you already know. Take on tasks well outside of your comfort zone and peel away at those problems so you are always getting better.
rhizome 2 days ago 0 replies      
There is no "best," but you mention AI in two of your three questions, which I think answers the third.
cvigoe 2 days ago 0 replies      
I think I am in quite a similar position to you: after secondary school here in Ireland, I didn't consider any universities outside of my home town (pretty much because I didn't know a single person who was considering bigger and better options, so it genuinely didn't cross my mind to apply to Stanford, CMU, MIT etc.) so I ended up going to a fairly average and not very well known university to study electronic engineering for my undergrad.

I went on an exchange for a year to UCLA and this was when I started to feel something similar to the sentiment you're expressing here.

I'm now in my 3rd year of undergrad EE and for the last year I've been trying to fast track myself into the AI / ML field as I've been increasingly regretting my EE major and becoming more and more interested and passionate about ML (particularly the intersection of ML, altruism and design): I got Norvig & Russell's textbook and read it in outside of my engineering classes, read less technical books like Nick Bostrom's Superintelligence for motivation / food for thought, made a simple collaborative filtering recommender system using the movielens open source dataset, moved away from the web dev stuff I'd been doing in 1st and 2nd year and tried to hone in on improving my algorithm and pure CS skills, watched a load of AI / ML videos to try and get a better sense of who's who, where's where and what's going on etc. in the field. The "dream" (I use that word loosely) is to do the google brain residency program instead of a PhD, or the U Chicago data science for social good fellowship, so I've been trying to figure out how to get myself into good shape for either of them.

It's been overwhelming at times, largely because I feel like 1) I'm not in the "right" major, 2) I've had a taste of but no longer "go to" UCLA (or an equivalent high ranking university) and won't be graduating from there so will need to work hard to stand out against the competition for placements / fellowships / internships 3) I don't have mentors or peers who can help me navigate the field (I have a great relationship with a lot of my engineering professors but again, it's not ML). So I'm sort of trying to make sense of it all myself. It's reassuring to hear there are others feeling similarly and it's great to hear all that you're doing!

On a positive note, I suspect you may be overestimating the educational superiority of the top tier schools (I know I certainly did before I went to UCLA) but at the same time I don't think it's fair to completely disregard the big unis and just say "circuit theory is circuit theory" and forget about it. While I was there, I really didn't notice all that much of a difference in terms of course content or even teaching quality - the biggest difference was there were an awful lot more high achiever students in my EE classes compared to in my home uni in Ireland, and there was a much more impressive "career fair" and internship opportunity scene than at home (think Irish Cement vs Hyperloop One).

You seem to be doing everything right. I think I was edging down a "burnout" path a couple of months ago with fretting over what you're saying and over my own EE vs CS major "challenge". I've tried to take a step back and remember that there's no one enforcing a particular pace or path for me, hopefully you won't let the fretting get in the way of your passion which almost happened to me.

Just wanted to comment this to warn you about the burnout thing, reassure you somewhat about top schools and throw in a few links you might find interesting for good measure!

You mightn't find any of these links below helpful, you very well may be much more well read than myself but I thought I'd link these here anyway. The first is a reassuring AMA on reddit from the google brain team (particularly the comments where the team talk about all the different backgrounds everyone has at google brain). The second is a list of programmes, fellowships, resources and random AI / ML related pages I've encountered in the last year (amongst a lot of other stuff ). The third is a playlist I made for a friend on interesting AI / ML videos which you most likely will have seen before but you might just enjoy anyway. The quick interviews are cool if you haven't seen them already.

Anyway - best of luck!




Ologn 2 days ago 0 replies      
I spent years working in IT before going back to school at night to get a CS degree.

One thing is to just learn the subjects and get as good a grade as possible. Even if a class is subpar, just learn the subject. I had to submit an assignment once about process scheduling in Linux etc. After ten minutes study, I knew I had an A+ on the assignment already. But I had always wanted to look into that topic any how, so I spent several more hours reading about it for myself. I always wanted to learn about scheduling, and if I punted on it then, when would I ever study it? If I did that all the time my skill level would be high.

If you study and get good grades and have a good relationship with professors (go to office hours and schmooze a little, pay attention and participate in class and be prepared and listen), you can always apply for a Masters at IIT or elsewhere. So you can still get that name if you want it.

If the subject is theory of computation and the teacher is sub-par, just go above and beyond. Learn about big-O and the squeeze theorem and pushdown automata for the class, but for yourself as well. Read (some of, all of) a non-assigned book on automata theory if necessary.

Insofar as projects, one thing I suggest is doing projects related to coursework. Toward the end, or right after a class on C++ - write your own C++ program, or fix an issue with a Github hosted C++ program and send a pull request. If it is a graphics class on OpenGL, write your own program in OpenGL towards the end or right after the class - maybe explore iOS/Android OpenGL ES. Or look at scikit-learn after an AI class. Ground some of the theory you learn in class with application.

Your classes covering concurrency and threading and critical sections and mutual exclusion may seem boring in school, but if you're a programmer you will run into these things and you will be happy you learned how to deal with it properly a few years back, even if you haveto go back and read up on it. The AI stuff may sound exciting, but getting all these details right together is what will get you to be a good programmer.

From what you wrote, my main advice is don't be too all over the place. If you have a class in databases and a class in Java, that semester, spend a lot of time learning about the theory, and maybe a little time in application setting up MySQL on your desktop and writing a Java program to populate kt. It's OK to have one other side project going at a time of something that interests you, but you should be spending a lot of time learning about databases and Java.

If you have time on your hands, just dive more into it. For example, in the USA, a drink may be 2.5 liters. In some countries that is 2,5 liters (comma, not period). I once submitted a patch to a Java project doing a switch/case by country. The upstream told me the Java had a DecimalFormat class that already did that. My method was a waste of time, and also less complete. It was something about Java I nad not learned. You're just scratching the surface in class, there's a lot of ground to these subjects.

So get a good grasp of each subject you study. Meanwhile, if you have an interest or specialty you'd like to pursue, do that as well.

Ask HN: How do you develop a userbase for your side projects?
61 points by rfitz  4 days ago   31 comments top 13
djmill 3 days ago 2 replies      

As an experiment I posted my side project in subreddits related to what the project's about. I went from ~15 registered users to 45 registered users in a couple of days. Google Analytics showed ~300 new users in 1 day and ~3000k page views within a couple of days.

Just by posting there and using Google Analytics for the most basic metrics, it boosted my site's ranking in google searches which helped. The numbers I got back are tiny, but it's fun to see new users still signing up and adding data to my project.

oldmancoyote 2 days ago 0 replies      
I've launched multiple side projects since the early 1970s. Nothing in the way of marketing has worked for me, but I think I have finally found an approach that works.

I know it's counter-intuitive, but, trying to find customers is actually a mistake! It's too much work for too little return.

The right approach is to devise a method to find someone who will find customers for you. This might be deeper than it first appears. Consider this example.

My current budding project (call it E) is a tool for students who are having academic problems. Before, I would have tried to convince students that E would help them. Instead, my current approach is to find people whose problem is not to improve their own academic work but to improve the work of others. My value proposition is directed at them not at students. It is their problem I am trying to solve. E solves their problem by giving them something they can offer to students needing help.

Now my effort is to approach academic advisors, tutors, remedial educators, learning disability psychologists, and the like via professional associations and activities. In a sense, these people have become my market NOT the students. They will work for years for free and share their success stories to fellow workers. This sustained compounding effort is the sort that can lead to exponential growth.

Devising a method to find such people can be difficult. Deep thought is needed.

Who really are your customers?

soneca 3 days ago 1 reply      
There are a lot of advice out there for this, only that it is always for full-time endeavors, ambitious startups with a team of co-founders and even hire marketers.

These advice can give insights but are rarely directly appliable to side-projects. What you want is a constant, predictable source of people genuinely interested in your project, rather than growth hacking your way to the exponential explosion.

The best way to do it for a side-project is to have access to and trust from an audience.

There are two ways to do it. Write a blog and be part of an online community where your target audience hang out. That is why the advice of having experience at the industry you are focusing is even more a sine qua non than with startups.

Both actions are actually very complementary. Regularly write interesting posts on your blog and create an audience with time. Regularly contribute at HN or subreddits or Twitter or whatever and gain trust.

In both strategies be sure to be useful and deliver value not necessarily related to your side-project. If people sense you are only doing that artificially as pure content marketing, you will lose their trust.And for one-man side-projects, this kind of trust it is even more important than to startups.

garysieling 3 days ago 1 reply      
I've been building https://www.findlectures.com, and have ~400 people on an email list and a few hundred people a day use the site, primarily from having articles written about the project on TNW / Lifehacker.

Some observations:

* I work directly with a couple end users who really like the project, which gives much better feedback than posting on reddit, etc

* Build features that help more technical users (in my case, facets for programming languages)- people who come from HN / twitter give better feedback, write better tickets, and are more able to tell others if they like the app

* As far as promotion, I've had success with HN comments, guest posts on dev.to, and the startups reddit. All three have exposed the app to people with much larger audiences.

* The email lists Cooper Press manages are good to write for, because they pick up a lot of their content from niche subreddits.

* People who write articles about you rely heavily on material you've posted about yourself / your project (either on your own site, or in comments here).

* Some Simple UI features communicate what your project does better than verbal explanations (e.g. for a search engine, help text that shows example searches for different features)

* Any articles you write you can re-purpose in emails you send out, or vice-versa, so the time you spent doesn't get wasted if one approach doesn't work

* There is a compelling psychological benefit to posting a project on reddit (etc) in comments - every time I do, I think of some minor way I could improve the project. This is a bit like code reviews, where the pressure of showing someone your work makes you do a better job.

* Broadening the scope of what you can do gives you a lot more to talk about publicly. E.g. you might not be an expert in AI, but if you do a couple experiments on a dataset you have, you can participate in all those forum threads.

See also: https://www.findlectures.com/articles/2016/12/19/FindLecture...

panorama 3 days ago 1 reply      
In my experience, it's really, really tough. To get our first customers we had to send thousands of emails, talk on the phone with dozens of prospective customers (for both customer development and actual selling). There's a reason why SDRs/Lead Gen marketers are full-time positions and it's ambitious to try and replicate a legitimate sales funnel without being able to dedicate time to it.

This isn't something I would have been able to do if I were still employed, which I assume is your situation since you refer to it as "something on the side." For instance, even getting on the phone with people can be tough, since the hours they're more likely to chat with you are the hours you're at work.

I know this isn't something you want to hear. The good news is that I'm sure it depends on the industry - we had zero connections and background in our industry when we started - and I'm sure our experience doesn't reflect _all_ companies. But I admittedly underestimated how much time/effort needed to go into selling a b2b product when I was a comfortably employed developer.

Edit: re-reading your post, I think you might be describing a consumer-facing product. In which case user acquisition is different, but I would say the challenges are the same (having built many consumer-facing side projects in the past).

pryelluw 3 days ago 1 reply      
Its hard to provide actionable advice without knowing more about you. However, in general terms, you focus on developing and audience through a marketing plan that has a clear content strategy.

Your marketing plan might simply be:

Produce content in various formats for $market. Put call to action on content to urge $market to buy/subscribe/whatever. Then post the content in $community.

The content strategy might be something like:

I will focus on $subject. Will produce blog posts, vlogs, podcasts, whatever. The main subject revolves around it. I will do this three times a week for twelve weeks and measure which content got the most attention.

Its hard to say $advice will work for you because there are many variables. Feel free to ping me (email on profile) if you have more questions.

philippz 3 days ago 1 reply      
Just should actually do community building from the first second on. The easiest way is to share your idea and getting feedback on it. We developed a product for this. It is called STOMT. For example the game "Empires of the Undergrowth" (not on the market yet) intensively uses STOMT to collect feedback in form of short wishes (you can label them as a page owner). We also have integrations for a lot of platforms so people don't have to leave your product: https://www.stomt.com/empires-of-the-undergrowth

Also works well for ourselves: https://www.stomt.com/stomt

You can think of STOMT as consumer-friendly GitHub Issues.

MrPolymatth 3 days ago 1 reply      
I have side project where we charge 60/month to our customers (mostly small businesses but also individuals).

What we did to build a userbase is to pay a small fee (1,5) to freelancers of our trust who would find possible clients (not random but selected people) and write a personalised message for them that we would send. Whenever someone becomes a client, they get extra money (7).

If you run the numbers, it's just a matter of probability the fact that we make more money from paying them to find people (and knowing that a lot will fail) than from staying with our userbase without growing.

So far, it's been a good method.

tmaly 3 days ago 1 reply      
try doing customer development to figure out if your on the right path. There is a short book Running Lean that has a great script template you can start with.

another great book Traction: How Any Startup Can Achieve Explosive Customer Growth co-authored by the founder of Duck Duck Go gives some really great advice on exploring channels through experiments in parallel to your development effort.

You could also try something like betalist to get some initial users.

NumberCruncher 3 days ago 1 reply      
Meet people having the pain point your side project solves in person and tell them about your solution. Have you ever tried attending meetups?
webmaven 3 days ago 0 replies      
I suggest a title change from "How do you develop a userbase for your side projects?" to something like "How have you developed a userbase for your side projects?" or "How did you develop the userbase for your side projects?".
npankaj 3 days ago 0 replies      
Much depends on what platform you are on. If you are an app - you need a marketing boost - can be done in multiple ways i.e. paid marketing, blog coverage, event launches, etc.
siquick 3 days ago 1 reply      
There's a thousand different answers to this.

A simple answer is to keep doing what you did to get your initial users, until that thing doesn't work anymore.

Ask HN: What online CS degrees would you recommend?
25 points by amorphid  3 days ago   9 comments top 6
huehehue 2 days ago 1 reply      
You mention you're self taught -- do you have an undergraduate degree?

The OMSCS FAQ[1] is vague about whether such a degree is required:

> "significant professional or other work experience with supporting recommendations may qualify as an adequate substitute for the appropriate academic credentials, however work experience will not take the place of an undergraduate degree."

gigatexal 3 days ago 1 reply      
I couldn't afford this one but it's one of the strongest universities in Oregon for such a thing: take a look at the online CS degrees offered from Oregon State University (http://ecampus.oregonstate.edu/online-degrees/undergraduate/...). They also operate osuosl -- a popular mirror for linux and oss projects:http://osuosl.org
NonEUCitizen 3 days ago 1 reply      
UIUC has this:


mlwarren 2 days ago 0 replies      
NCSU has something similar to the OMSCS. I took a few courses and had a positive experience: https://engineeringonline.ncsu.edu/grad_degrees.html

For those that need some background in Computer Science (say you have a B.S. in something else but want to learn Comp Sci fundamentals) there's also the programming certificate course: https://engineeringonline.ncsu.edu/PS/CPC.html

RUG3Y 3 days ago 0 replies      
Oregon State has a post bacc program that I've heard good things about, I'm considering that myself.
urahara 2 days ago 0 replies      
What about nanodegrees from Udacity, does anyone have experience?
Ask HN: What software do you use to run your small business?
10 points by Nezteb  2 days ago   2 comments top 2
ezekg 1 day ago 0 replies      

 - Hosting: Heroku - Language: Ruby - Framework: Rails - Database: Postgres - Background jobs: Redis/Sidekiq - Transactional email: SendGrid - Logging: Papertrail - Monitoring: Raygun - Subscriptions: Stripe - Mailing list: MailChimp - Blog: Medium/GitHub pages - Project management: GitHub

jjoe 1 day ago 0 replies      
Sendinblue is my go to platform for transactional and campaign emails. It's got a free tier too. You should also add a source control option like Git{hub,lab}.
Ask HN: What xkcd issues are a must read?
8 points by b01t  1 day ago   5 comments top 2
anonfunction 4 hours ago 0 replies      
Here's some data on which ones are shared most on reddit: https://xkcdref.info/statistics/
bostand 1 day ago 1 reply      
Why would an xkcd issue be a must read?
Ask HN: Have you launched your project this year? How are things so far?
11 points by jjoe  2 days ago   15 comments top 5
ruairidhwm 17 hours ago 1 reply      
I've soft-launched my service which allows Instagrammers to sell their photos to brands as authentic marketing material.

It's done ok so far, and I'm planning a more formal launch very shortly pending feedback from beta users!


jetti 2 days ago 0 replies      
I launched my OSS project Plsm (formerly Plasm)[0] and have 27 stars and 14 hex downloads. It is the most successful (in terms of stars and usage) project I've worked on. Show HN helped that as well as /r/elixir


Emc2fma 1 day ago 1 reply      
Launched my new productivity web app at https://60secondseveryday.com

Things are going okay so far...got about 30 beta signups and now moving into open for public use. Working on getting my first 10 customers.

achariam 1 day ago 1 reply      
I've been working on https://elyxel.com since last May and launched a private beta this week. The biggest takeaway for me so far is that even if it doesn't get much traction I actually finished a long standing side project before jumping to something else. Plus I got the benefit of learning elixir and Phoenix.
ezekg 2 days ago 1 reply      
This week I launched a closed beta of https://keygen.sh, a SaaS product I've been building for ~8 months. Looking to gather feedback and launch the full product next month.
Ask HN: Is it possible to make $200K/year base salary?
32 points by bsvalley  5 hours ago   66 comments top 22
gizmo 4 hours ago 2 replies      
I'm not sure why you wouldn't care about stocks or bonuses, but 200k base salary is entirely possible at Google, Microsoft, Facebook, Amazon, Apple, Oracle, most hedge funds, and so on. 200k per year doesn't even put you in the 1%. 200k per year isn't even an infinite amount of money -- larger house and nicer car and poof it's gone.

Right now software engineers with AI and Deep Learning experience or Big Data experience are in demand and they can easily clear 200k.

Outside of the US a base salary of 200k less common, but still possible for senior software engineer type roles, or more commonly for CTO or Director of Engineering level roles.


itamarst 4 hours ago 0 replies      
There are some industries, probably (hedge funds, as the other comment says). But a lot of variation is regional: you'll get paid way more in Silicon Valley or San Francisco than anywhere else.

The problem is that housing so much expensive there that it's not clear it's actually worth it.

To put it another way, salary isn't the important thing. It's salary minus expenses, adjusted for local cost of living (really just another form of expenses). While maximizing income is good, cutting your expenses is far more useful (and easier) once your income is high enough: https://codewithoutrules.com/2016/08/08/living-below-your-me...

danial 4 hours ago 1 reply      
AmaGooFaceSoftApple will pay senior developers in excess of 200k per year.

You can't ignore stocks because they will often cap your base salary and pay the rest in stocks. For example, a VP at one of these may have their annual compensation at $X,XXX,XXX per year but only receive $1XX,XXX in base salary. This is true for developers as well, but the ratio of base to total compensation is skewed more towards base compared to a VP.

Also note that there are some very distinguished engineers at these companies whose role isn't people or business manager who would receive as much as, and sometimes more than, a highly compensated VP.

jandrewrogers 4 hours ago 1 reply      
I know many people that are paid like this, most outside of Silicon Valley even, and the common factor is that they are exceptionally skilled and proven domain experts in their field. The specific field of software is less important.

Obviously market demand does influence the salary, but there are many fields in software development where top skill will command this wage. Generally though, you have to really love what you specialize in to develop the kind of skill and expertise that will earn you this salary, it is not something you do by rote.

techjuice 4 hours ago 1 reply      
Yes, big federal government contractors offer this if you meet the requirements for the job as a base salary, actually have the required work experience and are in the top 25% of the talent pool.

Though, at that level it is extremely competitive, and you will be working on solving some extremely challenging problems that you would never encounter outside the government contracting industry.

You can also work for high end service agencies, or startups, or if you want to make way more then that financial institutions would be a good start. Though note, the pace is very fast in many of those companies and the hours may not be worth the large sums of money you will get paid for putting them in if you cannot handle stress very well.

truftruf 3 hours ago 2 replies      
Make $140k/yr, be happy, and make a side project that brings in passive income. Build it up over 5 years until it makes $200k/yr reliably..now you're doing better than anyone who has to have a real job.
raincom 1 hour ago 0 replies      
Yes, it is possible. When you are offered $200K base at FB, Apple, google, etc, expect that your bonus and RSU gonna add another $200K a year on top of your base.

Experience is necessary for that base, but not sufficient though. Have you built a good product? Are you a top notch engineer? Can you pass a facebook/google type interview? If yes, you can demand. In the worst case, you can get a fat RSU package, and a fat sign on bonus, even if you are offered $170K base.

crorella 4 hours ago 2 replies      
At fb I earn slightly more than that before bonuses
late2part 4 hours ago 0 replies      
Yes. Start broadly, then become broadly competent, then become specifically talented in a particular area. You want a niche that is big enough to be interesting (cassandra, biology machine learning) while not being so large that Universities are churning out thousands of specialists (java, oracle, mysql).
giancarlostoro 4 hours ago 0 replies      
As some have said possibly government contracting, or maybe even the medical fields. There is definitely a lot of money to go around if you know where to look and what you're willing to do for it (I'm speaking legally of course). Government contracting may not be for everyone, it depends on the company and what they do if you'd like it or not. Before I got my current job I saw some companies that made things I had 0 interest being involved in. Bear in mind that you must be a US Citizen to do government contracting in the US. This gives you an advantage over others who don't have this privilege.
oppositelock 3 hours ago 0 replies      
My base salary was about 200k before I left Google a couple years ago. I was a Senior SWE, and have about 20 years of work experience.
zump 3 hours ago 0 replies      
Great, another size comparison thread.
throwaway782 3 hours ago 0 replies      
I'm on ~$192K USD in the UK, but I mostly do WFH.. If I was willing to commute every day, it could be more.

10 years experience.Cloud / Security background.Finance Infra job.

memmove33 3 hours ago 1 reply      
I make that much: Senior Software Engineer at a startup (joined among the first 3 hires), Bay Area. About 6 years of experience.

200k$ base salary

50k$ performance bonus

1% ISOs (after considering dilutions. Company is ~1y post Series B)

spoiledtechie 4 hours ago 0 replies      
You can hit 165k as a tech lead or software lead in DC area for the private companies.
dustingetz 3 hours ago 2 replies      
freelancing 125/hr * 36 hr/wk * 44wk = 198k
harry8 4 hours ago 0 replies      
Snowden was on this, iirc.
mbesto 3 hours ago 0 replies      
Management Consulting focused in technology.
throwaway_fruit 3 hours ago 0 replies      
Throwaway account; work at a fruit stand in Cupertino. Base $200k, not including RSUs and bonuses.

$200k RSUs on signing, with the expectation of yearly top-ups. Not sure what the cash bonus will be, haven't been here long enough to find out.

x0ner 3 hours ago 0 replies      
Information security.
rgovind 4 hours ago 1 reply      
Principal engineer in Linkedin, Google, FB etc?
ckluis 5 hours ago 0 replies      
Ask HN: Become a PHP expert
5 points by RUG3Y  2 days ago   12 comments top 7
babyrainbow 22 hours ago 0 replies      
The most important aspect of becoming a PHP expert is navigating through a safe path in a land of a million pitfalls.

This means, you should not try to push the language yourself in anyway. Do the most straightforward, traditional things. Use a well tested framework (if you are doing web). Something like Symfony would do. Don't make your own 'deep' abstractions. The language is not strong enough to support them without a million unit tests to go with it.

Then you should have awareness of the most prominent of the Php pitfalls. /r/lolphp is a good resource for that. Go through the posts and read anything with more than a dozen upvotes.

Then, regarding security and other general topics, don't count on the Php community to answer your questions. I mean, don't take your questions to /r/php but /r/askprogramming or some general forums.

Trust only extreamly popular libraries that have in in use for long time. For example, Symfony components.

Two things you might want to take a look into is specifically Dependency Injection and the Composer dependency manager and how autoloading classes based on their fully qualified name (\Vendor\Package\Classname)

esamy 2 days ago 1 reply      
This is an excellent resource for modern PHP development: http://www.phptherightway.com
alanmackenzie 16 hours ago 0 replies      
There's a number of excellent resources suggested in this post by others already so I wont repeat them.

One unique thing about becoming a PHP expert is the contempt you'll occasionally run into from others in the technology world.

Remember engineers get paid to solve problems for the business and success has very little to do with what the current flavour of "cool" is.

clishem 2 days ago 2 replies      
"Learning PHP", fresh off the press, is quite useful as a first PHP overview in my opinion. It's aimed at PHP beginners with some prior programming experience.
mohsinr 1 day ago 1 reply      
I would recommend laracasts[1]. I have learned tons of solid PHP principles, code structuring techniques...

1. https://laracasts.com

brak1 1 day ago 0 replies      
xxphenomxx 2 days ago 1 reply      
Learn Python...
Ask HN: What tools are there for rapid mobile app development?
9 points by hues  3 days ago   4 comments top 4
brock_obama 2 days ago 0 replies      
Fastest in terms of bootstrapping/dev would probably be using Ionic or Cordova (https://ionicframework.com/) but in my experience it is not super performant (as it is hybrid) and allows for little customization. Learning curve isn't super steep, esp if you already know Angular/Angular 2.

Coding knowledge: html/css/es6/typescript/angular

If you want good performance & a huge support base, React Native is probably the way to go. Learning curve is probably a bit higher than Ionic/Cordova (you will deal with platform specific syntax for components), but its what many top companies (AirBnB, Instagram, FB) use for their mobile apps. It is really performant. You may need to write platform specific code and it may take slightly more time, but I still would prefer this route over the hybrid app route.

Coding knowledge: need to know html/css/es6 & have experience with frontend frameworks. Redux/Flux has a bit of a learning curve.

TL;DR: Try doing tutorials for both, and see which one you prefer. IMO it's probably not as fast to develop for React Native as it is Ionic/Cordova, but its still the far better option. It's worth the effort to go down the React Native route.

hackermailman 2 days ago 0 replies      
Lambda-Native uses Scheme (Guile)http://www.lambdanative.org/

There's an example program on the front page to judge for yourself how much knowledge is required which is basically just an understanding of the scheme r5 spec. https://www.gnu.org/software/guile/learn/

zn44 2 days ago 0 replies      
i'd recommend react-native, iteration is very fast and you'd be able to reuse some of your web experience
LarryMade2 3 days ago 0 replies      
If you keep it simple then just some good responsive CSS, and keeping in in mind how mobile inputs works vs. desktop.
Ask HN: Would you still move to the Bay Area?
11 points by baccheion  3 days ago   17 comments top 10
hacknat 1 day ago 0 replies      
It really depends on your life stage. If you're single and plan on staying that way for a couple of years then you can come up with alternative arrangements (i.e. Shared housing, etc) that make those Bay Area salaries actually worth more than the rest of the country. And the commections that you make will be worth it.

If you're older and/or have a family then no freaking way. Adjusted for cost of living the Bay Area salries are lower than many places. Apparently Minneapolis and Atlanta pay Software Engineers the most money if you adjust for cost of living. I just moved away to the Midwest and I kept my salary (the company hiring me considered it a "raise" and they weren't wrong). Adjusted for cost of living I would be making over 250k in the Bay Area (according to Pay Scale's COLA calculator).

I often hear folks from the Bay Area say the rest of the country doesn't pay well, but from conversations I've had with other professionals I have had in my town and a perusal of Glassdoor tells a different story it's not hard to make 140k+ where I live.

Companies in the Midwest and Southeast know they are competing for talent with the Coastal centers and they have started to pony up.

You can't look at absolute dollars. If you make ~120k in the Bay you have to realize that's like making 75k every where else.

aphextron 3 days ago 1 reply      
Forget about the rent prices. It's really not that big of a deal. Being black is not an issue. I've never had a problem here. There are very few places in the country more diverse and inclusive than the bay area. After all your expenses you will still be making 10-20% more than anywhere else and the job market is on fire. Any decent engineer can come and go to jobs as they please around here. I can't imagine a better place to be.
Eridrus 3 days ago 1 reply      
I moved from the bay to NYC last year and thought that there is enough tech here for it to not hurt my career. I wasn't wrong, but as I decided to make a career change to become an ML engineer, I found that there was noticeably less opportunity here than in the bay. I still found a good job in the end, but there were just so many more interesting jobs back there.

I don't know if it's worthwhile to go to the bay for purely financial reasons, but it definitely still seems like a good place to go for career reasons.

I'm sort of expecting to move back to the bay eventually, I'm just hoping that they get their head out of their ass and build some more housing.

rayj 3 days ago 0 replies      
Seattle median home value is $612,000. San Francisco median home value is $1,132,300 (zillow).

Assuming all other factors are equal that means you need to save almost twice as much for a down payment in these areas. If you are making >100k/year CA income tax will further complicate matters.

Seattle home prices are about 1/2 SF. There is no state income tax, so add on 8% to your income. Salaries are slightly lower, but not by much.

If you don't care about culture and just want to make/save lots of money, this is the place to be.

runT1ME 3 days ago 0 replies      
The Bay Area is about the only place I'd relocate to. I'm picky about what teams I'd want to work for, so the only way I'm going to upend my life, sell my house, buy a house (or find a place to rent) is if I know that I won't have to do it again if things don't work out.

I'd throw LA into the mix too, as it has a growing tech scene and a lot of things going for it. Seattle, Austin, and maybe Boulder if you can survive the cold.

efrafa 2 days ago 0 replies      
I moved to SF from Europe and Im glad I did it.I will probably not stay here my whole life but its a great experience.

I found a very nice studio in Marina (pacific heights) for 2.5k, and it was pretty much first place I applied to, so finding place at least for me was super easy.

prostoalex 3 days ago 1 reply      
After taxes, rent and food, what is the net savings in your bank account today?

Then evaluate your offer and calculate net savings in Bay Area.

For many (especially those currently located in low-paying areas such as Eastern Europe or some Asian countries) the net savings are greater with all things considered, therefore a move makes sense. For others the increase is marginal or non-existent, as high salaries exist elsewhere in the world, so they won't bother.

mud_dauber 3 days ago 1 reply      
I travel between Sunnyvale (company HQ) and Austin (home) fairly often. It all depends on your priorities of course - but the quality of life in the Bay Area doesn't hold a candle to Austin.
xchip 3 days ago 0 replies      
Nevermind being black. I was there for 3 years, I am Spanish, my English was far from perfect and people were really nice to me.

I used to pay $500 for a huge room in a flat shared with 2 other people :)

thrwythrwy 3 days ago 0 replies      
go for it, you won't be disappointed.
Ask HN: Laid off today for the first time, anything to be wary of? Advice?
110 points by layoffthrowaway  2 days ago   93 comments top 34
greenspot 2 days ago 6 replies      
1. You must reframe the situation as quick as possible. Don't think, 'shit, why me, what happened, am I not good enough?' Such thoughts bring you a vicious cycle. You must treat this situation as the best thing ever happened, you must be happy about it. And I promise you, heck I bet $10,000 that you'll tell us in one year that this lay-off was the best thing ever happened and led you to x, y and z. So, basically it's not reframing or lying to yourselfno, what happened was really the BEST what could have happened (so, I just did the reframing for you). Change is always good and rarely gets triggered by oneself.

2. Reach out to as many people as possible, preferably people outside the company. Most people from the company won't help you and even if they did, they just remind you of the company again, what happened and this brings you again to a bad state and you need to start at zero and reframe again. Just let them go, all of them, really. So, look for prior peers, old friends. Further, write applications or just plain emails to many CEOs and tell them that you are out. You don't have to write that you look for a job. Just get into conversations with as many people as possible. It's more about staying connected and keeping a social context (after you lost the one of the company) than finding the next job.

3. Work on a pet project with a technology you always wanted to work with, get into flow and put it online. This will be the most fun and will give you tons of self-confidence in a very short time.

You should spend 30% of your day on 2 and 70% on 3 and 0% on thinking about the past.

Sounds good?

snarfy 2 days ago 4 replies      
Since you were laid off and didn't quit or were fired, you should head down to the unemployment office so you can start collecting. You don't know how long it will be before you find a new job, and the bills will keep coming in. You may have savings, but there is no need to blow through it when you've been paying into the safety net.
jzwinck 2 days ago 3 replies      
If you are not hard up for money you should immediately look for a nice trip somewhere. Be flexible with location instead of time to get a good price. Take three weeks off. Nice places this time of year might be Cuba, Thailand, Costa Rica, Florida, or Big Sky.

Polish your resume on the plane.

tyingq 2 days ago 2 replies      
>if there's anything I should be wary of

Don't cave to the temptation of making an ass of yourself. You never know when you might run into someone in a future job.

They'll likely make you sign some papers for the 1 month severance. Pay attention. Sometimes there are unsavory clauses, like non-competes, non-disclosure, etc. It would be helpful to know where you are located. If you're in California, for example, you can sign a non-compete without reservation, as they are largely unenforceable.

>any advice from people

Was it a really large layoff? Sometimes, there's opportunity there. Often, some of the key people already smell blood in the water, and are thinking of either jumping ship to a competitor, or even starting up their own competitor. If you know any of the key folks that might b e planning this sort of thing, invite them out to lunch a week or two after the layoff and probe around a bit...you might find a place to land.

vesak 2 days ago 0 replies      
Do something with your free time. Shut down Netflix, HBO, Reddit, Hacker News and all such distractions. It doesn't have to be profitable or even remotedly useful, just as long it's something that you know that you should be doing.

Examples: create things (write, program, compose); exercise; meditate; start learning something.

Sleep 8 hours every day. Or whatever is your optimum. But no more and no less.

https://www.amazon.com/War-Art-Through-Creative-Battles/dp/1... -- this book might resonate especially well now.

byoung2 2 days ago 2 replies      
I had a similar situation back in 2009. I gave my resignation to my boss on a Friday and he said I should hold off until Monday. Monday came around and they laid off most the the dev staff. Instead of having to work for 2 more weeks I got 6 weeks severance and got to leave that day. I already had a job lined up to start 2 weeks later so I booked a week in Cancun in the interim.

They make you sign a paper that says you resigned, so you can't claim unemployment, but the severance sounds better than unemployment since you were leaving anyway. Negotiate that severance, too...they offered me 4 weeks at first but I asked for 2 more and got it.

youdontknowtho 2 days ago 1 reply      
Your friends will want to take you drinking. Be careful.

Be sure to get lots of exercise and sunlight. I'm serious you have be very careful about slipping into depression.

lucozade 2 days ago 2 replies      
As your being made redundant, there's nothing untoward about their reason.

1 month for each year served is fairly normal so again, nothing untoward.

Signing a release is also fairly standard. Under these circumstances I would always recommend showing the release to an employment lawyer. For me, peace of mind is worth a couple of hundred dollars but YMMV.

Also, in the UK at least, there are tax breaks on some of the redundancy package so it's worth looking into.

Otherwise, what you do next depends a lot on what your financial situation is. I was made redundant a number of years ago and it worked out great. I was married and had a child at the time but we had enough money for me not to work for a few months. I had a bit of a break, in hindsight I was quite burned out, then got a job at a startup, refreshed and raring to go.

Obviously, it's not always a positive experience but it's not always negative either.

Good luck. Hope things work out.

scarface74 2 days ago 0 replies      
In 2011, I was "laid off" from my job along with almost everyone else when the scraps of my company was acquired. It wasn't a surprise to anyone that this day was coming, management was completely open with us about the dire situation of the company and most of us stuck around until the bitter end hoping that our options might be worth something (they weren't) or that we would get a severance.

From looking at people's LinkedIn profile, everyone from developers, to managers, to the L1, and L2 tech support staff had better jobs within a month. Once recruiters got a whiff of the company being in trouble, they started contacting people. Don't ignore recruiters. I have 15 recruiting contacts from different companies in my contact list.

I put "laid off" in quotes above because immediately after I was laid off, I did contracting work for one of my company's clients (based on a written agreement they had with the acquiring company). After that contract was over, I spent a day contacting every recruiting company I knew. Three days later, I had a phone screen with a Fortune 10 company, one day after that I had an in person interview. By that evening I had an offer letter. At the time, I was a an experienced developer but a middling .Net developer trying to get into full stack development.

Moral of the story, aggressively reach out to people, recruiters aren't evil, study up on interview prep, and don't be afraid to take chances on going after jobs that you might feel that you are not 100% qualified for. I've conducted about a dozen interviews over the past four years. I don't care if you meet all of the bullet points. I care if you are "smart and gets stuff done." And if you are an aggressive learner.

Kushan 2 days ago 2 replies      
Looking for a job is a full time job in itself. Start looking immediately, get up early as if you were going to work and keep looking until it's time to "go home".

The release you've signed is pretty normal, nothing to really worry about (Unless they've done anything illegal, in which case you're not obliged to adhere to the release but I don't think that's the case).

Just get back on the horse. This happens to the best of us.

arethuza 2 days ago 1 reply      
If you are in the UK you may qualify for legal advice where you get a lawyer and your employer has to pay for it.

A couple of years back I resigned from a job in the UK and although I was on good terms with the people I worked with the HR department (inevitably) did their best to try and screw me and having a good lawyer on my side made the process fairly painless as they actually did the negotiation with my former employer and I got 3 months salary and various other benefits.

LordKano 2 days ago 1 reply      
First thing's first. Sign up for unemployment benefits.

I was laid off last April and my employer gave me a severance package in exchange for a similar confidentiality agreement.

It took me several months but I was able to secure a new job with better benefits but with a lower salary.

Update your profile on LinkedIn. Update your rsum.

Talk to lots of recruiters. If you have friends in the industry, ask them if their companies are hiring.

Just keep pounding away at it and you'll find the right spot.

yoctonaut 2 days ago 2 replies      
A lot of good advice here. Whenever I was laid off, I tried to send out a minimum of ten new contact emails a day. (Longest layoff, two months. Shortest was 14 days.)

Make sure that you sign up for unemployment compensation immediately--sign up before you need it. If you're in the US, there's (often?) a waiting-week period you won't be compensated for; if you sign up immediately, you can get that out of the way first thing. Good luck!

tbendixson 2 days ago 1 reply      
Hey hey. I was in the same boat last year. Loved the company but there just weren't enough contracts coming through the door to keep me fully employed.

One thing that really helps to keep me sane during tough times is to catalog every teeny tiny expense I've made over the past year. When you know exactly where your money is going, it will help alleviate lots of stress.

Before I did this, I felt a vague sense of panic. After I did it, I realized that I had already earned two times more than what I typically spend in a year. It gave me a sense of calm, knowing that I had plenty of "runway" before having to dip into my investments.

If you have any egregious expenses (I know I did), now is the time to systematically eliminate them. You might be money poor, but you are time rich now. If you treat your life like a business, now is the time to make some big cuts to ensure your longterm survival.

Just last month, I cut my phone bill in half, figured out how to cut food expenses by a few thousand a year, and reversed a bunch of b.s. charges for services I no longer use.

Make this your new job & you will thrive.

southphillyman 2 days ago 0 replies      
That sucks. Luckily in this environment you have a good chance of actually making "extra money" due to the layoff (severance + new job pay overlap)I echo the suggestion to take some time off and travel if your state's unemployment situation allows it (some states now require you to physically check in to receive unemployment benefits)
JanneVee 2 days ago 0 replies      
My advice is don't burn any bridges on your way out.
stevenmays 2 days ago 0 replies      
I got laid off a year ago. I got severance + unemployment, making more cash then I did at work. Within a month I found a new job making 40% more. This could be a blessing. Treat it as such, and enjoy the paid search for better employment.
rajacombinator 1 day ago 0 replies      
File for unemployment, use the safety cushion to work on your own startup! When I was laid off years ago I believe you could get 99 weeks which is totally absurd!
codemogul 2 days ago 0 replies      
1. Incorporate - Create a name and make yourself a company. In the US, do your state incorporation papers (most are on-line) and get a TIN/EIN from the IRS, and open and fund a bank account in the company name. This allows you to do consulting work or even be called back by your former employer as a contractor, and it puts you in the right frame of mind for maintaining accounting and expenses while you are off work.2. Meet people - Get out for networking events in your industry and visit a BNI chapter. Look for professional associations and groups in your area. Make networking your new job, even if you don't think you are good at it. Time to practice! The way to find better job opportunities is to be actively exploring the market. Sitting behind a screen mining the job boards is not a motivating exercise and does not make you visible.3. Keep your schedule - There are work hours, and non-work hours, and don't let your typical work patterns fall out of sync. It's better for your brain and your emotional state.4. Cut your expenses - Your revenues just went to 0, so time to get rid of subscriptions and habits that are costing you money. Cook at home and stop eating out, and make those rare times that you do eat out or grab a coffee be as an expense for your business.5. Get fit - Join a gym, buy some running shoes, get out and restore your body. Fitness sharpens the mind, and a fit and trim individual finds work faster. Sad but true.6. Keep a journal - Dump your thoughts. Capture your ideas. Get that stuff out of your head and make it real. You will find great catharsis in doing so, and some day you will re-read it from a very different perspective.

Welcome to the next chapter of your life, cheers!

edw519 2 days ago 0 replies      
Truth be told I was planning on quitting at 3pm during my bi-weekly one-on-one with the CTO, so I'm taking it in stride/happy.

Happy? You should be ecstatic. You just won the lottery!

What you would have received if you had quit at 3pm: nothing.

What you will receive because they beat you to it: 4 weeks pay, 5 weeks benefits, 26 weeks (potentially) unemployment. I dunno, something like $10,000 to $20,000.

Count you lucky stars and enjoy your lottery winnings. I wish I could figure out how to do that.

oldmancoyote 1 day ago 0 replies      
I'm seventy. It has happened to me three or four times. My own experience and the experience of those I know has been: I always find a substantially better job. It was good for me. I know it HURTS. Boy do I know it hurts! But it will be good for you.

Buck up!

joss82 2 days ago 0 replies      
I would recommend this article which is exactly about the situation you're in:


It was written by a fellow HNer a few years ago, but still relevant today, IMHO.

Edit: shortened overlong sentence.

ajeet_dhaliwal 2 days ago 0 replies      
Did the internal re-org involve only you getting terminated? If not it sounds like it's a time to celebrate. You were going to resign later the same day and now you get the same result along with a month of pay. Re-orgs happen and some good staff are let go (Sony even called the staff they let go yesterday 'high caliber' http://www.gamesindustry.biz/articles/2017-01-12-guerrila-ca...).

That said, I like the question, I have never been laid off or terminated, I've resigned from all 4 jobs I've had (employed at the 5th) and so I'm reading other answers to see if there are real issues to be aware of should it happen to me.

lr4444lr 2 days ago 1 reply      
Sounds a little more than coincidental that were you planning on quitting anyway. Can you explain further?
foxylad 2 days ago 0 replies      
Don't take it personally. Any energy you use being bitter and making yourself a victim is worse than wasted - it makes things worse.

It's great that you were thinking of leaving anyway. Rejoice that you get the benefits for slightly longer than you would anyway, and move on.

z5h 2 days ago 0 replies      
Send an email to your peers explaining that although you might not agree with reasons, you understand management needs to do what they think makes sense. And that you enjoyed your time together, wish them success, etc.
icedchai 2 days ago 0 replies      
Since you were planning on leaving anyway, what's the concern? Enjoy your severance, relax, and sign up for that government money (unemployment.)
anonu 2 days ago 1 reply      
Don't disparage your former employer - regardless of how the breakup went. I feel that in retrospect these things are for the better. You didn't want to be there anyway - they just made their move first.
kapauldo 2 days ago 0 replies      
You may want to buy some time by contracting with a staffing agency. You'll earn a nice premium in salary and can take your time contemplating your next chapter.
mrmondo 2 days ago 0 replies      
Clear your mind of feelings of self doubt, clarify with yourself what you learnt from your role and the work you did. Find value in this and use it to move forward.
codingdave 2 days ago 0 replies      
You have 4 paid weeks not to think about what to do next, but to think about where you want to be in the future, and plan your first steps for getting there.
nolite 2 days ago 0 replies      
Don't get down on yourself. It happens to the best of us (and probably more often to the best of us because we cost more)
mxuribe 2 days ago 0 replies      
I feel for you. I just recently went through a similar situation. I had never before been laid off. A re-org took place in my business unit, and a few people in my department were laid off including me; the company stated very clearly it was due to re-org and NOT for performance reasons. Further, it happened immediately before the holidays.

I was very lucky in that another division in the same company was having a different re-org. and a few jobs opened up, so I applied for, and got another job. Same company, different business unit. Less than ideal, but I count myself lucky. (Although jobs are posted out there, its extremely rare that companies hire or conduct interviews during the holidays!) But the feeling of having been laid off was quite devastating; again especially since I had never gone through something like that.

I think the advice that others have been offering seems pretty good. While my lay off period was extremely short, I myself woke up every morning - as if at any other regular job - and kept searching/applying for jobs. I think that "routine" helped me deal with the whole thing at least emotionally. I also like some advice throughout the comments here about working on a side project. That could help in several ways:

* Keep your mind off the challenges (physical, social, emotional, etc.) associated with finding new employment.

* Maybe it could turn into a little revenue on the side to supplement unemployment, etc.

* Possibly, it could turn into an opportunity to go into business for yourself. Even if it doesn't make you a millionaire, or is short-lived, its still work. Maybe it might pay bills, and you can feel good about putting it on your resume/linkedIn, etc. (In the state of NJ, you are allowed to collect unemployment and still have a part-time side business [1]...But there are caveats and of course I'll disclaimer that I am not a lawyer. So you'll want to seek out professional legal advice if you're considering this.)

* Even if the side project results in no new business, you will have picked up some new skills, or perhaps improved any existing skills. And, if it involves other people - like a meetup - maybe you can get some future business/opportunity contacts - i.e. networking!

The only other advice I can give you: stay positive, and keep yourself busy so as to avoid getting into a negative groove. Good luck!!!

[1] See "Part-Time Corporate Officer/Owner" section on http://lwd.dol.state.nj.us/labor/ui/aftrfile/corporate.html

xchip 2 days ago 1 reply      
It also depends on what the labor law in your country says. Are you in the US?
Ask HN: Does Anyone Know What Text Editor Digital Ocean Use?
9 points by bwhites  3 days ago   8 comments top
dtnewman 3 days ago 1 reply      
Seems very similar to this: http://iphands.github.io/Meltdown/
Ask: why some neighbourhoods feel more lively/alive than the others
8 points by PixelMath  3 days ago   2 comments top 2
personlurking 1 day ago 0 replies      
Unfortunately I haven't seen the video but it sounds interesting.

Last night I was reading a Brazilian article, based on a study, about how (what the author called) "centrality" plays a large part in the success of a neighborhood. "The concept applies to places with high concentration of economic activity, intense circulation of people and a large diversity of services." In short, it seems living where you work makes for a nice neighborhood.

itamarst 2 days ago 0 replies      
Ask HN: Projects Made in HTML5, CSS3 AND JS
4 points by theshire  2 days ago   3 comments top
n2dasun 1 day ago 1 reply      
I personally don't have familiarity with these, but have you seen this?


Ask HN: Why do futurists skip the near future?
5 points by RichardHeart  2 days ago   4 comments top 4
notahacker 1 day ago 0 replies      
> It's like corporations focus on the quarter. Futurists focus on the century. What group of people focuses on the decade?

Entrepreneurs, VCs, governments

qwrusz 1 day ago 0 replies      
> It's like corporations focus on the quarter. Futurists focus on the century. What group of people focuses on the decade?

Corporations focus on the decade. But the focus on the quarter part is what is made public.

Disclaimers abound: Obviously not all corporations. Some are good, some suck. Some are very public with their long term plans/thoughts, some are very secretive about R&D and their thinking beyond the fiscal year. There are groups within corporations (some with billion dollar budgets) focused on the 5-15 years out period. There are many corporate consulting firms specializing in exactly this 5-15 years out period too.

Right or wrong, this ~10 year secular horizon is also sweet spot where secrecy about it does have value if you want a return on investing in it.

ankurdhama 1 day ago 0 replies      
It is easy to talk (just talk) radical things about future, write few books, give talks, become famous. All things leading to easy money.
miguelrochefort 1 day ago 0 replies      
It's always the same Idealism vs Realism dichotomy. Thinkers and Doers. Design and Implementation.

In order to achieve anything non-trivial, you need to aim a step above. You need a direction, a vision that's bigger than what can be achieved in the short/medium term.

My skill as an idealist/thinker/designer is to come up with pure, abstract, and consistent models. I try not to consider reality (the present) in order to keep my models pure. I try not to consider implementation details as this will introduce exceptions and inconsistencies that will weaken the model and dilute the vision. I come up with the what, not the how. Anyone who doesn't strictly adhere to these methods will ultimately produce mediocre and short-sighted models. Sadly, it seems like those people are often the ones whose models are adopted.

We don't really care about living to see those visions become reality. We are selfless and do this out of moral duty. Even if things improve, we will inevitably remain unsatisfied with reality as we discover additional problems. We care about the process, not the result.

The one thing we feel an urge to fix, is your ignorance. There is nothing worse than witnessing people being content with the way things are.

Ask HN: How do you deal with cold fingertips when you code?
33 points by Filthy_casual  1 day ago   59 comments top 39
puddintane 1 day ago 1 reply      
Generally cold fingers are from poor circulation. Living in Colorado where a few months of the year we get very cold weather so I have learned a few tricks about cold hands (from Snowboarding to Programming I've experienced cold hands almost everywhere).

One awesome thing my work did for me was brought in a hand massage specialist who taught me several stretching techniques for the hand that help increase blood flow which in turn helps keep them much warmer.

Check out the the following page [1], it has pictures and descriptions that teach great stretches. Not only is it good for circulation it's good to just do this in general to prevent other common problems that stem from lack of stretching.

side note stretching has been a real game changer for my programming. Not only does it make me feel more energized, the stretching seems to have increased my work ethics by a lot because I feel more energized to be that team player.

[1] http://www.toc.md/exercises_wristhand.htm

If this doesn't help just grab a desk USB hand warmer and that should be able to help when your hands aren't feeling so nice (as mentioned by other users in this).

edit Also wanted to mention after thinking a bit more and the hands, feet, and head are the places you lose the most amount of body heat from. I wear a hat while programming so possibly having one at your desk may also help keep in more heat? Just a thought, doubtful this is the root of the issue for ya though.

Normal_gaussian 1 day ago 0 replies      

Obviously I am not a doctor.

Reading through that suggests either you are a normal case and just need to take your fitness seriously (including keeping stress under control) to improve circulation. You could be an abnormal case and need to look at medication - but as you have already seen a doctor I am going to guess that isn't the case.

For fitness I wholeheartedly recommend https://www.reddit.com/r/bodyweightfitness/wiki/kb/recommend... (vid: https://www.youtube.com/watch?v=AB3HhP2GYk0&feature=youtu.be ).

The heater suggestions seem like good ideas to treat the symptoms while you work on the cause.

Reporting it to your manager is an interesting question. Personally I wouldn't do anything formal, but I work quite closely with my manager so he would informally know, I also don't have to get permission to use any personal equipment at work - which isn't the case for everyone.

But again, I am not a doctor.

It sounds like a PITA of a condition. I hope it is benign and treatable for you.

piercebot 1 day ago 3 replies      
Perhaps counter-intuitively, I have found that applying more layers to my core rather than to my fingers/hands tends to keep my fingers warmer.

Of course, this only works if blood can circulate heat from your core to your extremities. Try throwing on a vest and, when coding, make sure your elbows are not bent and your writs are not resting on a pad in such a way as to obstruct blood flow.

Good luck!

informatimago 1 day ago 2 replies      
When I programmed by -30 C outside, (10 C inside), I used a big bowl (2 liters) of tea to heat my fingers. Hands on the bowl, slurp tea, hands on keyboard, repeat. When the bowl, is empty refill it.

But this was before USB, you know, when you had to go uphill in the snow both to and from school.Nowadays you can get something like:


And of course, you should be careful in your choice of computing hardware and software. Nowadays, hardware and software are optimised to spare energy usage, processors go to sleep or reduce frequency while you're working, etc. All this doesn't produce much heat, in top-notch computing hardware. Instead, choose cheaper, less "green" hardware, some laptop that heats a lot, and run some background tasks (eg. you may compile the linux kernel in a loop, or have some 3D rendering game running in background), so that the processor is used close to 100% full frequency, and produce more heath. Then you can put your fingers on the hot surfaces or on the air vent exits.

RandomOpinion 1 day ago 0 replies      
I have a milder form of the same phenomenon and find that workman's style fingerless gloves (I use DeWalt Technician Fingerless Gloves[0] and can vouch for them.) are enough to reduce it to a tolerable level. They are thick enough to retain warmth and highly durable but leave the fingertips unimpeded for mousing / typing.

In your circumstance, I'd look into USB-powered heated gloves as an option as well, e.g. [1]. If that alone isn't sufficient, some have removable heating elements that you could probably transfer over to the heavier fingerless gloves mentioned above.

[0] https://www.amazon.com/DPG230L-Technicians-Fingerless-Synthe...

[1] https://www.amazon.com/GoodBZ-Fingerless-Mittens-Computer-St...

csydas 1 day ago 0 replies      
If it's Raynaud's you might want to ask if treatment is appropriate for your case. You're not just getting cold, you have arterial spasms with Raynaud's if I remember correctly, and mayo clinic suggests I do.


Check the lifestyle and home remedy part for some advice, but it sounds like you just need to plan more breaks and relax your extremities more.

So I'd continue to be checked. There is likely a more specific underlying cause that can be treated. Cold is a factor but it seems based on the condition that you could be coding in a volcano and still have this happen

Edit cause I bumped submit on tablet too soon.

twistedanimator 1 day ago 4 replies      
I too have struggled with painfully cold fingers and feet while I code. My hypothesis of what is happening is that when you're resting your arms on the table, you are preventing the free flow of blood in your forearms to your hands. Without warm blood reaching your hands, they get very cold. The same thing applies to your feet as the seat you're sitting in constrains blood flow in your legs.

A good short term solution is to fill a paper cup with hot water and wrap your hands around that. This provides temporary relief but only treats the symptom. The effect wears off quickly.

I have also tried fingerless gloves, but those are completely worthless.

The only real solution is to do some light exercise. Most days after I eat lunch, I will walk around for 30 minutes. This light exercise creates heat in my muscles and thereby heats up my blood. The warm blood can also freely circulate to my hands and feet as nothing is constraining the flow of blood. After about 15 minutes of walking I can feel an internal warmth returning to my hands. The skin is still cold but I know soon enough my hands will be warm again. And the effect lasts the rest of the day.

achariam 1 day ago 0 replies      
Maybe, a small space heater for your desk with the airflow pointed towards your keyboard.

I have the small rooms one described here. And it is pretty manageable. http://thesweethome.com/reviews/best-space-heaters/

micro_cam 1 day ago 0 replies      
I have a mild case of this...fingerless gloves and keeping the room warm work for me. Notably the circulation shutting down is a response to your body being cold as much as your hands...is the ac blowing on your body?

The US Army has done some research suggesting you can train away the response by (IIRC) keeping your hands in warm water while cooling your body:


I've tried this with good results but it may not work aswell if you have the issue in warm temperatures.

There are also heated keyboards and mice you could try.

ceratopisan 1 day ago 0 replies      
Hello, fellow Reynaud Syndrome sufferer!

Lots of unhelpful advice in other posts: gloves don't work, because heat is brought to your hands by blood flow. Blood flow is cut off, which is why they are cold in the first place. Exercise doesn't really help, because it elevates your core temperature which your body dissipates by circulating to your limbs... which isn't happening. People won't understand what it's like to be painfully cold in a perfectly normal room.

For immediate fixes: if your skin goes dead white and you lose feeling, immediately do something to warm it up.


Finding a bathroom and running warm water over my hands often fixes it, and certainly feels better - though it can be painful as the numbness wears off. You need an external heat source because your body can't do it on its own.

If your flesh goes blueish-purple, warm it IMMEDIATELY. Extended periods without blood will kill cells and you'll get the equivalent of frostbite and gangrene.

In the long term: It's a spasmodic overreaction to cold, so avoid cold sources. i.e. it can be triggered by air conditioning blowing on you, holding food from the freezer, and so on. I wear a hat into our server room at work for just this reason.

Stress level is related, so exercise may help ... indirectly. I've lost 40 pounds over the past year and a half and walk several miles a day. It has been good for my physical condition and stress, but it doesn't seem to have helped Reynaud's.

It can help to have significantly warm clothing to keep it from triggering; I wear Minus33 undershirts and they help. My wife found a woman who had Reynaud Syndrome who makes her own wool mittens to help, and bought me a pair. (I feel like I have giant fuzzy flippers, but they work.)

I have not tried medication for it; can't tell you if it's worth it.

On the plus side, if you don't like feeling too warm... it may never happen to you again. I felt overheated exactly once this past summer, and my house did not have air conditioning.

DearVolt 1 day ago 0 replies      
A close relative of mine suffers from Lupus and with that she has developed Raynauds. She uses blood circulation medication to help get warm blood flowing in her hands and feet. Open fingered gloves are also great for coding because they aren't as restrictive as full gloves. As many others have suggested, a cup of tea or coffee is wonderful too!

I'm sure if you talk to your manager and explain that you have a legitimate medical concern that they will help reach a solution.

germinalphrase 1 day ago 0 replies      
I friend of mine had the same condition, which made winter activities (skiing, snowshoeing, etc.).

She found the rechargeable electric gloves from Columbia to be very useful. Many outdoor equipment/apparel companies are manufacturing similar items now. Perhaps a fingerless pair of gloves would help?

edit: perhaps, something like this:www.heatedmouse.com/Heated-Gloves.html

UnpossibleJim 1 day ago 0 replies      
Well, I'm unfamiliar with Raynaud's phenomenon, but from the larger picture you've painted, this doesn't seem to be a temperature issue and quick fixes, while comforting, don't seem to be hitting the core of the issue. I hate to be "that guy" who gets on the gymkata preaching pulpit (and, yes, that's a very old movie reference), but I work in a computer lab and am generally cold, until I work out. Short, quick cardio in the morning (nothing too strenuous) and either more intense cardio with light weight lifting in the afternoon, or heavy weights and light cardio. I know this sounds like the meatheadiest of meathead posts, but it has really helped me out.... also helps me to keep focus a little better and work of a little frustration. Not all of it, but the sharp, acidic edges seem to fade a bit.
burkemw3 1 day ago 0 replies      
I have built a tent for my hands and laptop keyboard that works well for me in cooler rooms.

It sounds like room temperature doesn't impact you you, Filthy_casual, much, so I'm not sure how much this will help you. I am posting mainly for others that may be curious.

I've built these tents out of a number of things, but most commonly it's a t-shirt with 2 coffee mugs on either side to prop it a little. Janky? yes. Effective for me? yes.

I dislike typing with gloves, as my accuracy drops quite a bit. Fingerless gloves don't keep my hands warm. I dislike heating the air in a large room to heat my hands, and I have annoying preference for symmetry on my body that is hard to achieve without two heaters.

coldtea 1 day ago 0 replies      
>Of course it's less noticeable in the hot days, but in general when I go out for long walks my fingers will feel bloated and red-ish. So far I tried some gloves that I had in my house but even with those my fingers get cold while they are inside the gloves.

Err, maybe I'm missing something, but how about investing in a BETTER pair of gloves?

Doing something with your fingers while walking (keeping them occupied, e.g. with small stretching, etc) will help the blood flow better.

Also, maybe don't go out for "long walks" when it's too cold outside?

ishbits 1 day ago 1 reply      
I've suffered called hands, fingers and wrists which in turn has made them sore, right up my forearms. I tried gloves and stuff - part of it might be that my home office is in the basement and I live in a climate that sees -30C.

Anyways, my fix is to get the heart rate up. I jump on the treadmill at an incline and do some push-ups. 10 minutes is all I need. And no, I'm not a fitness freak.

Fjolsvith 1 day ago 0 replies      
When I first started my shed business and was building my products personally, I worked through two winters in the cold, and to prevent frostbite, I removed my boots, rolled up my pants, and dipped my feet into our hot-tub to restore circulation. (My business was home-based.) By warming them in this manner, the cold didn't bother them for about 4 hours.
jason_slack 1 day ago 0 replies      
My hands and fingers get cold everyday. We keep our house pretty warm (heat with wood) and we also live in a cold climate.

I wear a hat.

I wear enough clothes to keep my core warm.

When I get up to use the bathroom I also go sit in front of the wood stove for a few minutes and warm my hands up.

codecamper 1 day ago 0 replies      
I helped start Prague's first internet cafe in the mid-90s. The digs were basic. Basement floor & in the winter that was COLD.

The founder's strategy was to hang french fry heating lamps from the ceiling, just a little over our hands. It worked great!

michaelbuckbee 1 day ago 0 replies      
I switched from a mouse to a magic trackpad and it really helped. Similarly using an ergonomic keyboard that let my arms be less clenched. YMMV but I think these were particularly helpful to me as I'm fairly tall with large hands.
amelius 1 day ago 0 replies      
It seems you have a specific disease, so probably better to ask a doctor than HN. Also, Google can be your friend.

Anyway, I'd personally try niacin (also known as vitamin B3), which is also used in heat-rub creams.

loeg 1 day ago 1 reply      
I only experience cold fingers when the room temperature is below ~68F. In a warm room I don't have such problems. I am young and get plenty of exercise, though.
j_s 1 day ago 0 replies      

Probably not as good as fingertip-less gloves but close enough for me.

burgie 1 day ago 0 replies      
Sweden here. Put on a hat if your hands or feet go cold.
m0llusk 1 day ago 0 replies      
Perceived temperature is most closely related to movement, so get up and move around.
reagle 1 day ago 0 replies      
I have it too. Relaxation and biofeedback training help.
womitt 1 day ago 0 replies      
Really regular workout is the only longterm solution. It's hard to start but be strong and go for team workout classes 3-4 times a week for three months. After you feel the positive changes you won't give up. I'm doing it for three years by now, no cold fingers/feets anymore
jjm 1 day ago 0 replies      
Standup frequently and wear USB warming gloves. Seriously!
koolba 1 day ago 1 reply      
Start an exercise routine. It'll get your blood moving and the problem completely goes away. It's relatively quick too. You'll notice a change in a week.
Clubber 1 day ago 0 replies      
Type faster, more compression and friction produces heat!

All joking aside, I have the opposite problem. I'm always hot.

WhatIsThisIm12 1 day ago 0 replies      
Take less adderall.
snowpanda 1 day ago 0 replies      
Depending on how bad it is, you might have Raynaud syndrome[0]. Ask your doctor if you need calcium blockers.


ant6n 1 day ago 1 reply      
Some laptops can get really hot...
zython 1 day ago 0 replies      
stand up, walk around for a bit, make some tea
imjustsaying 1 day ago 1 reply      
live in the tropics
johanvts 1 day ago 0 replies      
Regular exercise at the gym.
Fnoord 1 day ago 0 replies      
> Absurdly enough, the room temperature doesn't have much to do with it, because the air condition is working at full throttle and my room is close to 80-82 Fahrenheit most of the time.

Airconditioning, open windows, or bad isolation can cause an un undesired airflow.

> The doctor told me that it's called Raynaud's phenomenon and that I'll have to figure out ways to deal with it.

Wait, your doctor did not tell you how to deal with this? You're not paying anyone here for medical advice.

For people who work behind a desk for 8 hours a day, 5 days a week I recommend the following:

First of all, regular physical exercise. Its obvious but it has to be stated, and its even more so important if you don't do physical labour.

Second, for office work the following advice (in no particular order: based on own experience, pomodoro techninque, plus local laws concerning this type of work): put an alarm on your smartphone or watch or equivalent device, set it to one hour. Every time the alarm goes off, you take a walk and do some stretches, total of min 3 up to 5 min (more will cause drama with coworkers and/or boss). If someone complains, you tell them that smokers get to smoke in the bosses time (thereby having a walk, good for their blood circulation; smoking itself obviously isn't good for blood circulation and if you do quit ASAP; consult your M.D. for aid) and you need a small walk to keep your blood circulation going. (Of course, you could also try to plan meetings or grabbing a coffee together with your walk & stretch, tho I don't recommend 6+ coffee during 8 hours of work.) During this downtime, you can think of whatever comes up in your mind. It is actually rather likely that more often than not you get inspiration during your downtime, but that is a useful byproduct not the main goal (this is called the diffused mode of thinking). Oh, and if someone laughs at you, know that when you're both elder you're the one who's laughing because you cared about your physical health throughout your working career. I mentioned this is partly based on pomodoro technique. Its a variation on it. If you're self employed, I actually recommend the pomodoro technique itself (ie. traditional pomodoro is 25 minutes of focus, with a 5 min break, and after 2 hours, a longer break (there are variations, worth looking into this further)). But if you're working for a boss or in a team then a small break after 25 minutes of focus is frowned upon. I believe its a productivity loss, but this is the way the status quo of work force generally thinks, sadly. There's some excellent pomodoro apps available for macOS, Android, iOS and surely also for other OSes and platforms. Like I said, alarm apps also work.

Pica_soO 1 day ago 0 replies      
Have long hair, shove them into the hair, sit there in the thinker-pose.
Ask HN: Is OMEMO a good alternative to Signal for federated XMPP?
5 points by runn1ng  2 days ago   1 comment top
inputmice 1 day ago 0 replies      
Co-author of the OMEMO standard and lead developer of Conversations here. To answer your question one after the other.

> What do we think about this protocol?

It's the first encryption protocol that allowed me to actually use it on a daily basis. I regularly use my desktop client and my mobile client in parallel and switch between them constantly. OMEMO allows me to do that.

> Is it a good idea?

Yes. Compared to OTR the entire stack (that includes the XMPP layer) is properly standardized. This also kinda answers your questions regarding the OTR implementations. OTR had the problem that it couldn't do multiple devices and the behavior regarding multiple devices and when to start and end sessions wasn't defined at all.All OMEMO developers are also in regular contact to coordinate behavior between the apps.

> Why are there three encryption choicesI would really like to get rid of OTR (and we will eventually) but we currently still need it for backwards compatibility with older clients (primarily Pidgin)PGP servers a bit of a different use case. It doesn't provide forward secrecy and authentication but it turn allows for a server-side re-retrievable archive. If you get a new client it can automatically retrieve old messages. (In OMEMO the receiving must exist at the time of writing. It doesn't have to be online but it has to exist and announced the device specific key material)

In reality the choice isn't too much of a problem. You select it once per contact and that's it. It's not like you are getting new contacts every day.

> How is the server support.

The server requirements for OMEMO aren't too bad. However it is recommended that you do pick a modern XMPP server for other reasons (battery-friendliness, reliability). Have a look at this comparison list to see if your server supports all modern extensions: https://gultsch.de/compliance_ranked.html

> How is the support of group chat

Support for group chat exists and works fine once it is setup. However it has some limitations that make setup harder. Everyone has to be in everyone elses contact list. And the group needs to be setup with special parameters. (Conversations automatically sets it up this way, but you couldn't for example create the group with Pidgin and then expect OMEMO to work.)The readme on the Conversations github page explains this in a little more detail: https://github.com/siacs/Conversations/blob/master/README.md...

       cached 16 January 2017 05:05:01 GMT