This article describes how variations in intelligence has to do with parasite load and nutrition. May explain a lot of the lack of intellectuals and educated individuals in some countries.
William Deresiewicz "Solitude and Leadership"
The Last Psychiatrist: "How to Create: Motivation for 2010"
Alex Smith Gives Commencement Speech at Utah
Best article, which led me to action, is this http://www.mensjournal.com/magazine/everything-you-know-abou... together with the book The Power of Full Engagement https://www.amazon.com/gp/product/0743226755/ref=as_li_tl?ie...
And here are the guys I read regularly (on and off, actually):
Scott Sonnon: http://www.rmaxinternational.com/flowcoach/
Pavel Tsatsouline: http://www.strongfirst.com
Phil Maffetone: https://philmaffetone.com
the guys at GMB: https://gmb.io
and Leo Babauta: http://zenhabits.net
Importantly, the information is written and vetted by qualified medical professionals.
There's a lot of opinions, some based on facts and research, some based on empirical studies and some based on pure misinterpretation of actual science. You are better of paying a visit to a good nutritionist who can provide you with a tailored diet to suit your body and lifestyle.
Really though, you have to find what works for you personally. Take any idea - let's say you decide that you want to know if eating less red meat is good for you. You can read a hundred studies that have conflicting results. Or you can try eating less or none of it yourself and see how you feel. You feel great? Awesome. Now you know! You don't feel any different? Again, that's awesome. Now you know you need to eat a little more red meat.
One example for me was pull-ups (the exercise). I always assumed you had to do them overhand with a medium-wide grip. They never "clicked" with me and I could never feel good doing them. After 10+ years of doing them the same way, I finally saw a video where a guy explained how different people might need to use different grip styles to feel it best. I tried several of the different grips and found what works for me. No study or book would be able to tell me which grip style I should use. It was just something I had to learn for myself.
For something more science-based, check out examine.com. Anytime I read about a supplement or chemical that's supposed to be amazing, I go read examine.com and find out what the studies say.
Lots of good stuff on nutrition and training without BS.
- Some form of exercise that you do regularly
- Don't drink much
- Don't smoke
- Have meaningful relationships
This will get you most of the way towards good health.
They base their recommendations on real scientific articles.
Anyway following his advice has really helped me.
youtube for workout: athlean-x
joe rogan youtube channel <powerfuljre>, had on Rhonda Patrick (phd in biomedical science) for a few eps (3-4 hr each) talking about vitamins
if you buy vitamins you have to research the specific ingredient (cheap forms of magnesium, calcium, etc that don't get absorbed).
As for learning about health issues like diseases etc, I usually read reputable sources like mayo clinic or www.ncbi.nlm.nih.gov or www.nhs.uk. One of these is bound to answer my queries.
I am not an ultra runner or even a marathoner, I'm a wannabe alpinist. But the podcast is incredibly informative for anyone who is going to be under movement for more than 4 hours. I have learned more that has helped me in training and on hikes and climbs from this podcast than any other single resource.
If you're just starting out, getting a book on working out and eating healthy will get you 80% of the result for 20% the effort.
If you're already experienced, again it depends. Some people have already been mentioned like Tim Ferriss, Dr. Rhonda Patrick, Peter Attia, Dom D'Angostino and many more.
However you need to have the critical thinking to weed out what and how you could safely try some new theory. (say Intermittent Fasting or whatever new theory)
And I think after some time/experience you can go and pick up papers and judge them for yourself.
Care to be a little more specific? I enjoy frequenting /r/fitness and /r/running for their FAQ information which is helpful as well.
Getting into a routine is a big thing (and a thing I struggle with sometimes) with improving health and well-being (imo).
Diet is all about focusing on nutrient density and hitting all your micronutrient targets (tracked with sites like Cronometer.com). (Rhonda Patrick is a useful resource in this realm, as is Examine.com)
You want all of these to be a habit. It's a journey.
Well being is the job moral philosophy: https://www.amazon.com/Fundamentals-Ethics-Russ-Shafer-Landa...
Grains and fermented food for breakfast. Snack throughout the day on high fat veggies/lean meats/nuts. Dark leafy greens and protein for dinner. Eat at least two servings of fruit a day. Above all, if you have a craving, eat it, but reduce the quantity.
Well written, thorough, and most of all... actually evidence based!
For fields outside of computing, the best knowledge is still mostly stuck in book form.
Is there more to it?
(If you were hoping for links to sites so you can see it yourself, perhaps you should say that.)
Power of Now - Eckhart Tolle
7 Habits of Highly Effective People - Stephen R. Covey
More importantly, every Sunday morning I attend Mass at my local Roman Catholic church. The body and spirit both require regular attention.
Outdoors, yes, and especially the closeness to the sea and ocean. If you like boating or kayaking this is a huge plus, and you can also rent boats if you don't want to own one.
Housing market is crazy, you definitely have to buy an apartment and be willing to make a big investment in this, renting is basically not an option. The city also gets suburban and quiet very quickly as you move away from the inner parts, so if you want to live in a lively neighbourhood it's going to cost a lot.
Lifestyle is quite wholesome, punctuated and routine, and suits sporty people very well. On the social side swedes are reserved and private and the financial and social pressure to start a family is quite high.
Nightlife is a bit on the snobby and expensive side, with fancy restaurants and champagne.
The winter is dreadfully long and dark, and the summer is gorgeous. Many people go to Thailand in the winter and enjoy the beautiful archipelago outside Stockholm in the summer.
If you are a sporty person who enjoys boating, and/or wants to start a family, go for it. If you are looking for a fun place to stay for a shorter time and want to have a spontaneous social life, I wouldn't recommend it.
You won't make any friends among the natives. We'll have a beer with you after work but don't expect anything serious. None of my friends have foreign friends. Can't really say why this happens though. We are pretty reserved.
Nightlife is not snobbish as somebody else said. There is the whole range from dive bars to upscale to any kind of nightclub you can think of. It's similar to most bigger western cities. Also, I've noticed the variety and quality of restaurants are outstanding in Stockholm when comparing to most places I've been.
Stockholm is quite dynamic in terms of its start up culture. There are a number of ways to network within the industry, most prevalent way to do so is Sthlm Tech Meetup.
Salaries are relatively low for engineering jobs (compared to ex Germany), but should be ok in the software space. Ok in this case would be ~4000-4500k/month for a relatively experienced software engineer. Do note that tax levels are rather high once you reach higher levels of income (50%-55% marginal tax rate). The tax is a pain until you have kids and you pay almost nothing for daycare and schools.
The main thing to be aware of is that the housing market in Stockholm is completely crazy. It is very difficult to find somewhere to live. If you manage to get relocation support this should not become an issue for a while. Be ready to pay ridiculous money for second hand rentals (compared to salary)
I found it difficult to rent a flat, and I got the impression that this was fairly common. Be prepared to hunt through adverts, and respond as soon as you can after its published. If you leave it much more than a day, you'll probably get ignored. My Swedish colleagues told me that even if there's a phone number on the advert, don't ring it, email instead. And reply in Swedish - have someone translate your reply for you. But be prepared for lots of frustration when house-hunting.
In general, language wasn't an issue - although I knew no Swedish, everyone spoke excellent English. Not just work colleagues, but coffee-shop waiters, supermarket clerks, bar staff, pretty much everyone I met.
Financially, there were few surprises. Housing was expensive, just like any other major city. Alcohol's a little pricier (taxes), and you can only buy it in a chain of government-run shops, which have limited opening hoursyou can't just pop to the supermarket for a bottle of wine. As for the rest: coffee, eating out, groceries, were all on a par with western Europe prices.
Speaking of coffee, the culture of Fika is a great Swedish institution, and should be spread worldwide :-)
I love extremes of weather, so a very snowy winter and a gloriously hot summer were great for me, YMMV.
I ended up coming back to the UK, but some of my contracting colleagues from other parts of Europe decided to stay. They've since settled down in Stockholm, and easily found another project at the end of the contract.
Ericsson's taken a fairly hefty hit this year, and are planning another round of significant layoffs, which may have a short-term impact on the tech market around Stockholm.
I moved here four years ago from Australia. The worst part about relocating here is finding housing. We ended up just buying our own apartment and that ended up being much cheaper and less stressful than continuing to rent. Other than that for me personally there hasn't been much to complain about. People tend to regard Stockholm as an expensive city. Coming from Western Australia I didn't feel that much of a difference. My salary isn't huge, but make enough after the hefty taxes to have spending money left over. Public infrastructure seems great, it is safe, bike paths everywhere. People _are_ reserved yes, but there are many Meetup groups where you can socialize. The nature is beautiful, and how close it is to more urban areas is a big plus. Very pet-friendly - pets are allowed on subways, in many stores, etc (although the level of veterinary care and approach here varies, but I could write an entire separate novel on that).
I would ask your potential employer if they can help line up housing for you for some time after you move - larger companies often help with that and have their own contacts.
Also the games industry is booming here. I don't know what it's like compared to your current EU country, maybe quite similar. But after having lived in Ukraine, the U.S., and Australia Sweden is definitely my favorite.
If you enjoy the outdoors Stockholm has a lot of accessible nature just around the corner with large parks in central city as well as accessible and clean water ways as large parts of the city is located on islands. Within weekend trip range you have alpine skiing and wilderness in the northern parts of the country.
When it comes to job hunting there are a number of larger incumbents such as Ericsson that currently is struggling a bit. But there is also a number of larger "start-ups" such as Spotify, Klarna, King, iZettle, etc. These companies are very used to relocate new employees and have a structured process for everything from housing, to tax admin, even initial social activities.
Pretty much gives you roughly the things you asked above.
You can also post a question on their "Ask A Local" board, if you are up for more specifics...https://teleport.org/community/c/ask-a-local/stockholm/
https://www.privacyrights.org and https://www.epic.org you'll find many informations in both sites.
Two blogs I follow are https://paulbernal.wordpress.com and http://theprivacyblog.com
La quadrature du Net are amazing, it's a non profit fighting for net neutrality. They're pretty huge and very active
EDIT : I actually just discovered that the website is also translated in english :
There are a few links to his articles (Right side of the 3-column thing + bottom of the 3-column thing).
- If i want to do something, do not make me click more than once - If I clicked wrong, let me undo it
If not that, we need a "Flagged Articles/Comments" in our user profiles so we can go back and review what we flagged and correct our errors. At least then it'd be a two-step fix instead of a look and hope "unflag" is on the front page or two.
I wanted to implement a generic MUC protocol bridge. Kinda like https://sameroom.io/ is doing, but open source.
My initial approach was to look at Matterbridge (a mattermost<->irc bridge) and go from there. But I simply don't have time to do it anymore. The author is interested by the approach though so ... have at it:
I'm also the author of https://github.com/jleclanche/django-push-notifications and I don't use it anymore, but it's a very popular django app. If someone around here is using it and wants to maintain it (or part of it), please reach out - I tried handing it off to Jazzband but that doesn't seem to be happening.
Some examples of such boards:
It'd be willing to hand it to someone (on partnership basis) who could maintain it and grow it.
Stack is Linode/Ubuntu/Python/Django/Sass.
If someone wants to take this over, I'd be happy to entertain any offer. The app itself is exceedingly simple (a database-less Node.js app), so hosting costs practically nothing.
- Really Funny Fish Aquarium is a game where kids click on moving fish, who make funny noises and movements 
- Fun Kids Activities is an app where me and my wife used to post one activity you can do with kids every day with a notification but it turned out it to be quite time consuming for us so we just listed all activities and removed the notifications. 
I won't have very much time to continue the development.
It needs a lot of work done, I only got a few clients. I really don't know what to do with it... suggestions?
hit me up at firstname.lastname@example.org
Web IDE for GNU Octave (open source Matlab alternative). Originally built it because Octave had no UI and installation was a pain. It was heavily used by Machine Learning Coursera students and currently just pays for its hosting.
I'm sure it could be useful in niche academia market, but don't have time/connections to pivot. NodeJS/React/PostgreSQL/websockets. Email address on the home page.
If anyone interested to buy, please contact me. Email is in my profile.
The main reason I plan to sell is because marketing it is too hard (I am developer).
I dont have time to continue with this:
Cool thing is that I've made an API to take on orders.
If anyone's interested (even in the domain name) I can sell it to you at a minimal cost.
[GlowSo Web App](http://gcdc2013-glowso.appspot.com/#/home)
[A talk I'd done for GDG Tunisia about how I developed it](https://www.youtube.com/watch?v=CBwOuK9x5VQ)
The problem is, I don't use Firefox anymore, so I'm looking for a new maintainer.
I may not be able to keep going on it though because of constraints on time and resources. Would be happy to talk to anyone who'd like to partner on this (or ideas about how I can at least handle hosting bills for such a large DB!). firasd at gmail.
We hosted one conference i.e Apple's WWDC.
After an initial successful post on the indieheads subreddit, it's slowed down to about 15 users per day.
I also had people writing album reviews and they kinda got bored by it so it's been a while since the last review.
If this is a project people would be interested in (built in python / flask), I'll throw it up on github.
Unfortunately time doesn't permit me to move them forward.
epynonymous at outlook dot com for more details.
Nowadays I'm too busy to keep up with development so if anyone wants to help out that would be great.
Just abandoned it. I couldn't come up with a good way to monetize it, so I opened it up to be free.
i think its ready to get adopted :)
The system needs changes (in frontend, backend, sysadmin). It is pretty much the same as in 2002.
every now and then i do some maintenence but... you know.
Built it a couple of years ago but lost interest. Still used by 100+ users per day. Ping me at Contact@phrase.it
As my focus shifted, I plan sell it.
Note, this is a commercial product, customers include Airbus, and everyone else.
Mostly pirated, you'll have to figure that one out.
Asking $125K or $500K for everything.
If it meets the guidelines, this might make a good 'Show HN'. Guidelines: https://news.ycombinator.com/showhn.html
FWIW it's a common symptom of too busy a manager. Most managers are too busy, btw.
What's happening is that the CEO is probably thinking something "I need to take some time to itemize this task so he can work faster" but doing so is lower priority than that day's urgent fire.
> How can I make the most of this experience and provide as much value to the company as possible?
The best way to provide value to the company in your situation also happens to be the one where you'll make the very most of the experience: manage yourself to the point of being nearly or entirely autonomous. Examples:
The task itself is vague or unclear? Expand a bit on what you feel the task is, what it's for, etc. in writing, and submit that for review.
Next steps are vague or unclear? Expand on the DoD (Definition of Done), itemize the way forward, and submit those for review.
Does the usefulness of this/that new feature sound fishy? Ask about it. Not satisfied with the answer? Ask if they don't mind you getting in a Hangout with a few end-users to validate the idea's merit? Assuming they accept, then do so and report on your findings.
Every little step where they don't need to think for you is a step where you'll learn more and where you'll make yourself more useful. Have the company's end-goals in mind at all stages, take initiative, put things in writing (this is crucial for remote work), and you'll do fine.
1) The biggest one that jumps out is having an intern working remotely. First, I am surprised your school would even allow this to happen. To be honest, this almost sounds like a favor from an alumni CEO to the school and he/she could really care less about having an intern. Internships are supposed to be learning experiences. You should be immersed in an environment to give you experience. In another post, you said something about the company is in Silicon Valley and you are in the midwest and that you can't spend any time with them. To be blunt, that is a lame excuse. You should ask them to fly you out, or even cover your own travel expenses if they won't, to even spend a day with the team. Meet them, work with them in person.
2) Most startups themselves don't always have a clear path and they still may be working on defining the tasks that need to be done. Are you the only one working remotely? If not, you should see if you can be involved in their meetings. See what they are working on, how their tasks are defined, and what their deliverables are. Find ways to work with them or emulate their delivery process. If you are the only one working remotely, the company probably could care less about you as an intern. I don't mean that rudely, just that they look at it as they will give you a project, if you get some done great, if not oh well nothing lost.
Having worked remotely for a number of years, and having run a startup, I think this is the root cause of your issue. You're not going to get well defined requirements because the definition of "well defined" varies from person to person, and because startups generally don't plan features in great detail (tbh, as a rule established businesses don't either).
If you want to make a bigger impact, start being more proactive in asking what features need to do in order to be accepted. If you don't know something, think about it, then write a clear document that sets out what you think you need to do and points to specific things that you need clarification about. That's what I'd expect any developer to do, regardless of whether they're an intern or an experienced lead developer. The key thing no one in a business is simply there to execute instructions. You have to think for yourself.
tl;dr If you don't know what you're supposed to be building there's no way you can build a thing that works, so think through the problem and ask good questions.
Turning vaguely defined task into something tangible is usually the most difficult, and most important part of the task, but it requires some experience.
In the beginning you need to learn the internal know-how, and this requires regular prompt answers. Otherwise, you will stay blocked and frustrated most of the time.
Remote work is fine when you already know the domain, but that's not really what intern programs are for.
That said, you can try to write design docs where you put your questions. Note that it's not really about writing a specification, but about writing down what you know and what you don't. You can speculate about answers to your questions, and this way make your manager understand what you're missing.
So the question of how to be successful should be whether or not you can do something positive, showcase your skills and learn about industry at the same time. If you even get a hint that it's about you producing value to the team, I would consider moving on (given what else you have said). There is no point in being set up for failure.
Most of the time with interns, I have to scramble to try to find some vague connection with what we are doing. The intern will feel bad if they realise that they are doing a make work project. In reality, though, it's all about the intern. Especially with talented interns, we just want to make the experience really positive and don't care at all what they do.
Self direction is the key here. All you really need is the outcome desired and the 'why?' - these should enable you to start and hopefully feel you are making an impact. Take it as an unbelievable opportunity, you're basically being given a project to go wild with, manage yourself and make your own decisions. Things might fail, it might take longer than they thought - but as many others have mentioned communication is the key!!! Write out YOUR plan, tell them what you're gonna do, give them an idea of time of the first few parts - and be realistic and transparent. This is pretty much all they can ask of you. Have fun and learn :)
Communicate more frequently. If youre not sure what to do, ask someone. If they dont know, ask someone else. You certainly dont want to bother people every 5 minutes, but if youre stuck for hours each day thats not good for anyone.
If possible, get them to tell you the most basic subset of functionality you can build at first. Build that. Take it to them and see what they think. That will probably give them a far better idea of what they want.
As a junior, remote employee you're not in a position to significantly effect the outcome of the business.
Many companies also don't know how to communicate with remote employees well. Not replying to emails.
So... try your best to engage with company and observe how the company works. Learn the warning signs, learn what issues they face. These should all be hugely useful lessons.
But don't expect the company not to be a train wreak or to be massively successful. Those things are quite rare.
i) Write down exactly what you think the task might entail and email the CEO / manager. If you're off the mark, you'll get corrected. If you're on the right track, you'll get the go-ahead. Either way, you'll have a clear path forward.
ii) YMMV vary with this because of the different job roles, but I'll often just figure out a good solution to the problem, implement it, and see what happens. In my experience, tasks are ill-defined and vague because the manager has only an ill-defined and vague idea of what they need. In solving the problem, you do the thinking and clarification so the manager doesn't have to.
Hopefully, you're at least getting paid.
Anyway, the big lessons here are that most people ignore remote workers because managing them is significantly more work than when co-located and perhaps more importantly, the most important aspect of developing a career is meeting people and getting to know them.
You might also consider getting a mentor within the company. This is how we do it at $employer; you report to a manager, but your tasks and assistance come from a single mentor whose purpose during your tenure is to guide you towards completing your assigned project.
Have you been given a large but attainable project, or are they expecting you to just fix bugs and the like?
Imagine yourself as a part time employee rather than an intern. Imagine if you don't figure out how to impress, you'll be fired. (As an intern you're basically fire-proof.) This means that you need to become more autonomous and take the initiative. If something is unclear, creatively interpret it into something that is clear, and work on that. Make some progress, or write up the more concrete version, and get feedback. While waiting for feedback make more progress. If you are blocked, ping other people on the team to see if you can help them out with anything, or if nothing else find bugs, fix bugs, and/or write test code. There is always stuff to do.
You mentioned an example task "tell whether a picture is of a bird", if that's all I had to go on then I'd search for a few online image classification service providers and write a shell script or whatever to send the picture to them and report back. Done. When showing the implementation or the write-up in review, if there's something that the CEO doesn't like about the solution (he wanted you to do it by hand, or wanted you to use a particular machine learning or computer vision toolkit, or integrated with a web api, or wanted you to go out and take a bunch of reference pictures to train a neural net on...) then his complaints will make what he originally wanted more clear. Repeat.
For the remote aspect in particular, schedule a daily (or at the very least every other day) one-on-one meeting over Hangouts or Skype with the CEO. Time box it to 15 minutes though 30 might not be bad either. If the CEO can't make these, ask him to find someone who can and who will effectively become your new supervisor. You want these meetings to first be about any concerns you want to raise (like feeling directionless, or that some deadline is too hard for the vagueness of the task) and second about your general activities of the previous and coming day so people are in the loop with what you're up to. Also encourage the whole team to get on irc/hipchat/slack/matrix in an all-team channel. Assuming the company consists of more than just you and the CEO, it's crucial you have contact with some portion of the rest of the team, and be able to ping them in real time to ask "can we jump on a hangout meeting real quick to discuss x / share my screen and look at y?"
Something seems awry.
After 1.25 years, I realized that I was spending all my life in a lab with no windows, to the smell of toxic soldering fumes, fighting against extremely annoying software (altium & other proprietary overpriced pieces of technical debt). Also, I realized whatever I created needed a lot of work for an unsatisfying outcome (A sound amplifier is less satisfying than some webgl stuff that moves [but it requires a lot more work]). The nice feeling of being powerful when writing software & the instant compiler/interpreter feedback is what I missed the most.
At least, when you are a software engineer, you have more odds of finding a nice workplace, with windows and software you can choose.
The part I miss from electrical engineering is the physics part (But we were only skimming this part anyway).
Finally, circuits are a thousand times less satisfying to me than code. I've seen people for whom it was the opposite. They did not get programming at all, but they were designing circuits at the speed of light with an intuition that I did not have.
I made analog designs, digital designs, power supply designs... Then I started feeling more and more that I designed less and spent more time learning what the chip designers did, as chips incorporated more and more functions that once I did by myself.
So at the end I switched to FPGA design and today my typical workday is coding, debugging, simulating... 95% of the time on my computer. A good friend of mine coined a good phrase: FPGA engineers are SW engineers that disguise themselves as HW engineers. A good joke. But every joke has a bit of truth in it.
A design engineer tends to have a batch-oriented life. Typical workflow might be like CAD -> sim -> layout -> debug -> small scale production -> testing -> handoff to production. Of course all of this is as a member of a larger team. Somewhere in there you'll either work on software or firmware or both. I spend about half my time in the lab or field, the rest in my office or meetings.
One bad side of EE is that you can break stuff much differently from software. When the magic smoke comes out, there's no 'svn revert' - you have to figure out what you broke and fix it before you can move on. This always happens when you're in a rush and causes plenty of unplanned late nights. And for additional fun, it's not uncommon for problems to crop up where you just have no way to get at the underlying issue. Datasheets don't have all the info you need, and you can't always figure it out. Sometimes you hit a wall and just have to start over. I used an Atmel processor which had a weird bug in its I2C slave module which prevented it from working properly. Best solution ended up being to go to a different processor, which was incredibly painful.
It's really awesome to be able to hold on to a thing that you built and make it go. Seeing your thing go out in the field and work is very rewarding.
Generally, "embedded systems" implies some programming as well, but I do little to none of that. I think I'm the exception rather than the rule in that sense.
If you wanna get simplistic about it, I spend half my time playing "connect the dots" in overpriced software, and the other half arguing with people about where I decided to put the lines.
On the one hand, there's a lot more standardization in the components I string together to make a working system. On the other hand, it can be just as hard to track down the source of a problem. You happen to have caught me at a point where I'm stuck trying to figure out the proper answer to a mysterious boot issue, and let me tell you what - it's about as frustrating as frustrating gets. You have to push yourself to think hard about what you haven't done, even when you've done everything by the book. ("The book" in this context is documentation, design guides, processor reference manuals - things that tell you what to do to get your system working.)
Point I'm trying to illustrate - don't think that hardware is any easier than software. It's very, very gratifying to see something real, that you can hold in your hands, work. Doubly so when people actually use your stuff and tell you how much they love it. (Yay, consumer electronics!)
- Work on Schematics and layout for various different boards (usually only get time for one each day). - Go to meetings with multiple different engineering teams to make sure that cross-functional requirements are being met (usually the software and mechanical guys making demands of what they need which just means what they want to make their life easier by making the EE's suffer). - troubleshoot issues on the already built hardware and add the fixes to upcoming revisions. - Argue with purchasing department about the reason I need to get a certain type of testing equipment.
-A lot of component research and validation and meetings with vendors to determine if that components is right one.
and this is just the pure hardware tasks. There is always potential to have to deal with firmware issues as well.
I may spent half my day at my desk, at least an hour or two in a lab and the rest is for meetings.
The hardware job seemed more like "real" engineering -- it was more rigorous, there was less room for error or experimenting. But, I got bored with it eventually -- it was the same thing, just a bigger chip, more people working on it, and a longer design cycle from one thing to the next. Also, it seemed like upward mobility was hard -- I didn't want to be a middle manager anyway, and it felt hard to have a large influence in a company with thousands of engineers. In the end, I felt I didn't want to die at that desk, so I switched into working for internet startups.
The software end of things has felt more creative and has definitely been more fun. It's more laid-back, people are generally a little more interesting and well-rounded, and you typically work at a place 2-4 years and then move onto something new -- which I like. You're generally working in smaller teams and you get to work on a variety of different pieces of the system if that's what you like to do.
All in all, they were both rewarding experiences with good compensation -- the software thing might end up being more lucrative in the end and I just sorta have more fun doing it. At the time I made the switch, I took a pretty large pay cut going from a mid-level hardware engineer to a junior software engineer, but it's one of the best decisions I ever made looking back.
Why hasn't someone made good software for EEs to use? And if the have, why do no EEs use it?
But as others have said, EE jobs run the gamut. Depending on where you go to school and what emphasis you choose, you could be doing digital IC design (which contains multitudes within itself, e.g. high-level architecture, clock trees, verification, integration), analog IC design, RFIC design, board-level RF, chip package design, embedded systems, power electronics, antennas, FPGA, HDL/IP cores, test engineering, digital signal processing, control theory, communications systems -- the list goes on and on.
And when that is not the case, when hardware is going to be built, the decisions about circuitry and methods are increasingly determined in advance with software.
Here's an example -- in my career as an electrical engineer (30 years ago) I designed any number of phase locked loops in circuitry. Now I design them with a keyboard and a computer monitor, [using methods like this](http://arachnoid.com/phase_locked_loop/). The new PLLs work much, much better than the hardware-based ones, as well as requiring far less guesswork and effort.
So my advice is not to abandon a software-based approach, it increases your employability compared to someone who only knows hardware.
When I joined the company, the very first role I was put in was on the core bringup team for a complex ASIC -- that is to say, the team responsible for screening chips, and working on issues that affect all of the individual functional blocks. I joined about a month or two before silicon was to come back. So, I spent the first six or eight months or so at the company in the lab; the first month was spent familiarizing myself with the tools and boards that we'd be using, and then once silicon came back, I spent a bunch of long nights and weekends in the lab getting chips to various teams, and, in general, solving whatever system-wide problems showed up. Bringup was a lot of work but it was also a really good view into "how the sausage was made", so to speak.
After bringup, I moved to an IP team , where my title was "ASIC Engineer". At the phase in the project that we were in, most of the RTL  had already been written, and owners for each sub-block had already been assigned. So my job was to do a bunch of the "checklist" items for netlist quality. For instance, I spent a while reviewing test coverage, and waiving coverage for things that couldn't possibly ever be reached. Or I reviewed tool output that did "clock domain crossing verification" -- basically, the tool pattern-matched on various chunks of code to make sure that they were safe. And yes, I spent some time staring at waveforms, trying to debug our testbench, or any kinds of such things.
I spent a while on another couple bringups, which I volunteered for this time. I enjoyed them, and then gave myself some time off for each to compensate myself for my nights and weekends.
At some point, someone decided that I was a better architect than engineer, which is probably for the better, because I was very slow at checklist items. So at some point I switched to an architect role, which meant that I was responsible for doing the definitions of sub-units, rather than implementing the hardware for them or implementing the testbenches for them. And, in general, the whole specification process is part of the architecture team's job. So, one day, when there was an output quality problem with our block -- it worked as specified, but given that it did some image processing, the image quality had some defect, so the specification was wrong -- I was tasked with spending a few weeks to reproduce it on hardware, find register settings that made it better or worse, and finally, understand what the defect was in the specification, and how to avoid it in the future.
Another task I had as an architect was to do the definition for a sub-unit from the ground up. This was a year or two of work. My primary output, interestingly, was not code, but instead a 100-or-so page Word document that specified how the block was to work, and what registers should program it; the consumers of that document would be the hardware team that implemented it, and the software team that would build the software. And, subsequently, I was tasked with implementing a model of that block in C, which could be checked against the RTL that the design team wrote. Near the end of that project, I wrote validation tests for it, and yes, I then spent some time staring at waveforms helping the design team to understand why their RTL implementation diverged from my C model. (They were, often, right. I am very lucky to work with an extremely skilled RTL team.)
These days, I'm doing more algorithmic research, trying to figure out what should be next for the block that I'm working on. In parallel, I sometimes get on phone calls with, for instance, image sensor vendors, understanding on an electrical level what's going on inside of their next sensors, and how they will be transmitting data back to our processor. So even though I work in the digital domain a lot of the time, having a firm grounding in 'is it possible to wire this to this' has gone a long way to help out, and being handy with a soldering iron has made my life a lot better on more than one occasion.
My experience spans some gamut, but not all of it. I don't work on place-and-route, and I don't work on board design (at work, at least). There are a lot of things that electrical engineers do :-)
Hope this helps. (I can answer questions, I suppose, if you like.)
 For some reason, the semiconductor industry calls functional blocks IPs -- yes, as in 'intellectual property'. This particular IP was not something that we licensed to anyone, or that we licensed from anyone; the only 'customer' of this IP was our own chip team.
 Again, another acronym whose expansion ("Register Transfer Level") is not super descriptive. Essentially, source code. Usually in Verilog, or an even higher level language. EEs seem to love Perl and Tcl, so most places I've worked have had Perl or Tcl preprocessors before their Verilog. Ugh.
EEs also study computer architecture and OS internals in detail, depending on one's emphasis.
I'd say my EEs spend 50% in design and 50% in debugging customer problems when a board fails in manufacturing or fails in the field.
The answers can be easy (say, a resistor is out of tolerance or the wrong oscillator was placed on the board), or they can be really tough (a transient is killing a FET and locking things up).
Software engineers usually have to take quite a few courses in calculus, linear algebra, and stats. But that stuff very rarely comes up in practice, at least in most subfields.
I spend 25% of the time talking about requirements to other engineers, 50% comparing components to use with datasheets, 12% in Altium Designer and 12% buying components and PCBs.
Huge pain #1: the unbelievably slow process of manufacturing PCBs. Imagine that you were back in the old days of computing where you had to use punch cards with machine code and you had to give your stack of punch cards (your "program) to the punch card operator. He would run it overnight and you would get your results the next day. If your program failed, then you have to meticulously comb through it and debug in your head. This is modern-day PCBs. Holes in a board that take forever to make. Then you have to pay $80 shipping to get them next day or you can pay your engineers to sit around doing nothing. And the PCB might not even work. Learning feedback loop is very slow.
If you want to do anything remotely interesting like via-in-pad or four-layer boards, first you have to wait at least 24 hours for a custom quote. Half of PCB vendors dont just give you the formula to make your own quote. Then you have to pay either $1000 and 2 days or $200 and 2 weeks to have 5 copies of your design.
Huge pain #2: reinventing the wheel. When I open a datasheet, I have to read about the device. The pins, the maximum ratings, the application note gotchas like dont leave this pin floating or else the chip will be unpredictable! Then I have to make the schematic symbol and footprint by hand. That means manually entering IPC package dimensions into Altium like a braindead zombie. Every package is slightly different. I cannot tell you how many Texas Instruments DC-DC converters I have hooked up. I have no idea why device manufacturers don't just hire someone full-time to make open-source 2D and 3D footprints for the top six CAD tools. SnapEDA and Altium Vault are trying to do this, but the footprints are flawed and they are outright missing a lot of parts. I cannot tolerate mistakes when each board costs hundreds of dollars. The device manufacturers already make footprints to test their parts. Why dont they share them??
Huge pain #3: High barrier to entry. Very expensive software. In software engineering, professional tools like git, Visual Studio, Eclipse are all free. You can pull code at home from Git and start contributing immediately. The only barrier to entry is the time you need to understand the existing codebase. Even in firmware you can download Code Composer Studio or PSoC Creator for free.
In board design, you need to pay $300 for EAGLE or $5000+500/year for Altium if youre serious. Sometimes OrCAD goes on sale for $300. Lets say you want to simulate Bitcoin mining ICs frying themselves in their own heat. Or maybe you want to know the radiation pattern of your antenna. You can pay another four digit price tag for simulation software like CST or just copy a previous design like a zombie. Upverter is trying to solve the upfront cost problem with their $125/month SaaS subscription pricing, but I tried their editor 3 months ago and it was 15 FPS with the example board. Not cool. KiCAD is an open source alternative to Altium but as far as I know it is nowhere near comparable.
Huge pain #4: ordering components and PCBs. In my last project I had to order components from China. Ordering from China is not very easy with the language barrier, bad spec sheets, time difference. Alibaba is the place to go for ordering from China, but all the prices are Contact us, which means you have to give all your information blah blah blah until you get an email with the price and then pay with wire transfer. Sometimes you get lucky and you can find what you want on AliExpress and pay with credit card.
But the tradeoff to all of this is that if I do it correctly, I can hold something in my hand and give the software engineers a new API to play with. The APIs all stem from the hardware. The work is often more fundamental with equations and physics rather than purposeless corner cases I had to consider when I was in programming. And hardware often has the chance to be featured on the box of a product rather than software which is all just assumed to work. It feels more meaningful.
I'd imagine having real ARM hardware in a CI service would be a real pain in the ass compared to just getting CPU time from any cloud provider.
And ARM hardware is really diverse. There are a lot of variants of the CPU and most of the products are some kind of system-on-chips with a lot of device-specific software.
If you don't mind the manual maintenance, you can just get a Raspberry Pi or another ARM machine to run on. You can run a runner for a CI service on it to get the workflow automated.
I grew up in the C64/Apple II age when computers were cool and all, but still kinda toys. "Computer Programmer" was a job title, but not a very good one. Certainly not a well paid profession or one with any hope of advancement or prestige. The best you could hope for was a job in the basement at some Fortune 500 company or maybe scraping by at one of the little companies making video games or that "MicroSoft" place in Bellevue where they made "Mouse" and a few other things for PC clones.
So despite spending most of my youth getting really good at programming, it never occurred to me, even for a second, to study it at University or try to turn it into a career. The smart move for a smart guy was Engineering, so I'm officially a Mechanical Engineer by trade.
But then 1995 happened and suddenly Hello World + Angle Brackets was all the skill set you needed to name your price in the DotCom world. Suddenly all those years of building games where you pilot a little asterisk around the screen with a joystick shooting lower-case o's at things changed from being "waste of time" to "most valuable skill in the world", so I pivoted quick.
I never would have believed it had you told me. But I'm certainly glad it happened.
I've been writing code since I was a kid, got an economics degree, then went to law school and practiced law for a while. Identifying objectives and finding the data that suits it has always been fun for me. Not surprising (to me, anyway), my career moved back from law to managing data and analytics as products.
It seems to be the basis for the small degree of mechanical sympathy I have because it makes me stop and think, 'why does someone else think this is the right way of doing things?'.
On the other hand, the fact that I can write Windows applications, compile them using Microsoft's compiler, launch them, and follow their log files all within Emacs is wonderful.
So between the keybindings, 3rd party packages, and flexibility it not only makes me more productive but also helps me have more fun and stave off burnout.
Mostly it's to make life easier, particularly when 2 months down the line you need to make a subtle code change and reprocess huge volumes of data. Being able to start a script and go to bed, rather than continually change the inputs, is a godsend.
I think this is likely a side effect of the "smart but lazy" geek trope, except actually taking advantage of it rather than procrastinating.
When I started, all web development was server side preprocessing. This means debugging involved looking at thousands of lines of apache logs. After a while, you got good at picking out the lines you needed to see from the hundreds of lines of stuff you didn't care about.
This specific example isn't that relevant to today's web development processes, but being able to notice larger patterns in user behavior, in code use, etc is invaluable.
It is a willingness to see similarities instead of differences. This helps me write compact, clean code that is reliable.
Most surprising in terms of unexpected returns: learning to build my own PC (Pentium 120MHz) at age 14 or 15 with parts from a local computer fair.
Searching and selecting the components and assembling everything by hand gave me a very personal connection to the machine and turned a complex thing in to something I felt I understood from first principles and could master and not be afraid of. I've always hand assembled my main PC ever since and I credit this ritual with all sorts of stuff:
- Getting me confident early on to experiment and play around with the machine knowing I could fix almost anything
- Keeping semi current with hardware over the years and getting an early view at the future (shift to almost limitless RAM, shift to multi-core, shift to SSD) - and the implications for the software I write.
- Understanding subtle hardware trade offs and constraints. This has helped countless times when I'm speccing out servers or infrastructure for the code I write (helps too when picking laptops !)
- Making it obvious, fun and easy to indulge in things like Raspis, OpenWRT etc.
- Providing endless jumping off points to burnish my understanding of the universe that makes up computing (different architectures, graphics subsystems, disk controllers, network fabrics etc)
- Getting me interested in the hardware and software history of computing and what it looked like 20,30,40,50 years ago. This has helped me hugely in understanding why things today are the way they are (programming languages, operating systems, software abstractions etc)
That's just off the top of my head :)
Another skill is learning my way around a code base even in an unfamiliar language in a very short time, through a process of intense grepping, skimming, guessing, taking notes, and so on.
Also a polyglot attitude that frees me from worrying too much about which language is good and which is evil, and lets me work happily with all of them. That's related to how I use Emacs without language modes (except paredit in Lisp) so I never have to configure modes or colors or whatever.
Also, randomly surfacing new submissions to get a sampling of up or down votes seems essential. This would allow a greater spread/certainty when a submission does make it to the front page, and would also be fairer to promising submissions (they won't die prematurely due to lack of opportunity to be upvoted). It would also minimize gaming of the system and the relevance of "time of day."
Also, the gravity concept is good (so stories eventually die), but it's a bit too absolute/aggressive.
There should also be normalization by total number of impressions and up/down votes, such that raw volume doesn't overwhelm quality with lower volume. That is, even if confidence intervals are used (which I don't really like), then up/down votes are an estimate of overall up/down vote percentages, which is what's relevant (the submissions most likely to be upvoted (meaning "best") are what should be shown first). Also, maybe volume matters somewhat (many votes implying a lot of interest), but it's better to separate this out and factor it in independently.
For example, each signed in user that clicks on a link has a probability/likelihood they'll vote, so that could convert their impressions into an expectation which could then be compared to reality (how many upvotes are actually recorded). The higher the upvotes (compared to what was expected), the better the submission. This can then be combined with the other scoring methods (and slight personalization-- maybe a certain percentage of front page entries are personalized and the rest based on absolute rankings, rather than having everything be personalized, or breaking them up into separate sections) to stabilize, refine, and make more accurate submission ranking/sorting.
There isn't a problem with a downvote button. And there isn't even a problem with it being abused (it being abused negatively affecting rankings is a sign the ranking algorithm is poor). The problem is with downvotes not being properly factored in (and weighed up or down depending on the source of the vote, and the user viewing the resulting front page articles). In fact, adding a downvote button would make it easier to rank new submissions (and it's also straightforward to filter (or normalize) out abusers of upvotes or downvotes).
Also, maybe passive actions could be factored in (or things could be added that would serve as good "signals" for "front page worthiness") to increase the overall number of votes, such that a handful of users don't control what makes it to the front page and to allow each article score to be more reliable/accurate.
Apple was traditonally better at this sort of thing ("just works"), but a) it doesn't actually "just work", because their software quality is not up to par, and b) the lack of interoperability means this is only useful if you live in an Apple-only world.
In general, I'd say it will stay like this. Unfortunately.
Other similar examples: E-mail (yes, SMTP and E-mail clients, it all sucks badly, and we can't agree on how to improve it) and instant messaging.
However, these companies have financial incentives to do the opposite: they want users to do everything within tightly controlled platforms like Google Drive and iCloud, and they want to avoid commoditization at all costs. The last thing these companies want is for users to be able easily to transfer all their videos, music, photos, work files, contacts, calendar data, bookmarks, etc. from one platform to another.
The behavior of these companies is analogous to the behavor of AT&T at the beginning of the 20th century. AT&T had the largest telephone network with the most users, and smaller independent phone companies wanted to interconnect with it, but AT&T refused to do so, causing users to leave the smaller networks for AT&T's. Users of the smaller networks were unable to connect with users of the largest network. It wasn't until after the US federal government challenged AT&T for monopolistic behavior that this changed. In 1913, AT&T settled with the government in the "Kingsbury Committment," which required AT&T to allow non-competing independent telephone companies to interconnect with the AT&T network.
I suspect the only way we can get easy and cross-platform data portability (local and otherwise) is via government intervention -- that is, if the government forces companies to do it for society's benefit (for example, by legally requiring compatibility with open data-sharing and app-interconnection standards), at the expense of user lock-in and corporate profits.
Because every vendor and their dog wants to push their own proprietary toy solution to lock in users, instead of using any of the existing standards.
I think the marketing term is "WiFi Direct". But good luck getting Apple and Samsung devices to both discover and associate with each other.
If it feels like you're continually being corralled into sharing files with the person next to you via a third party's servers and an open, insecure, untrusted network ("the internet"), then maybe you are.
It is not necessary to use the internet and third parties to do something as simple as transfer files to the person sitting next to you (without using removable media), but it's easy for companies to convince users that this is the only way to do it.
And in most cases no convincing is even necessary because users fail to consider the alternatives.
Before that, the best thing for file sharing was Bump, which was kind of hacky, and required internet as a result, but did work. Sadly, Bump is no more.
As for sharing files with yourself, my answer is typically SFTP, which is excellent, provided it does what you want. It also works well for transferring files at conferences, providing your slides aren't to big to make the roundtrip in good time. A bit hacky, yes, but it works.
That's not a trivial ask. Security experts might wonder, "Wait, what new entry point are you mandating on my devices? To solve which problem?"
They'd caution that several subsets of this problem are already solved, lowering its urgency. You own both devices and have wifi? Dropbox. You have internet access? Email or other messaging services / file lockers. Both devices are the same ecosystem? Bluetooth / AirDrop / WifiDirect / Beam. You are near a gas station or in a house with a junk drawer? $1 USB stick. You didn't forget your cable? Cable. You are both developers? You may already have some arcane solution, depending on the platforms...
So, while it'd be nice to ensure two unacquainted technophobes who meet in the woods have the ability to move some file from one's mp3 player to the other's digital camera, despite never having installed any software or brought any drives or cables to help, we're slicing off thinner and thinner portions of salami here.
Also consider other approaches. More ubiquitous (functioning) internet solves all of the above, along with several other problems.
Absent that, foresight would have prevented a few of the test cases. Foresight isn't trivial, I know, but that opens up other approaches. Like maybe an alarm on a device that rings if the device gets too far away from some other little chip, which you can stick on a cable you want to never forget. A shim to friend and create a temporary shared Dropbox directory with strangers nearby would require advanced installation, but might be useful.
I don't mean to diminish the frustration of these situations. If you were talking about developing some software to help local area sharing, I'd say go for it. But putting the bar at mandatory interconnection in all devices... it's a high bar. The mere fact that legacy devices exist makes it impossible to meet those constraints.
If you relax your constraints just a little, though, I suspect a few opportunities for interesting work open up.
Then Apple killed Bluetooth by never supporting it well on the iPhone, and then implemented their proprietary AirDrop (which is actually LESS reliable for me, between Apple devices(!), than Bluetooth OPP was)
[It] synchronizes files across your/your team's computers. It's much better than uploading or email, because it's automatic, integrated into Windows, and fits into the way you already work. There's also a web interface, and the files are securely backed up to Amazon S3. [It] is kind of like taking the best elements of subversion, trac and rsync and making them "just work" for the average individual or team. Hackers have access to these tools, but normal people don't.
The problem has been attacked many times, but only centralized subscription services and hardware vendor walled gardens have succeeded as businesses.
Open source is the only way this could be fixed, and unfortunately that is mostly the kingdom of developers who already think this is a solved problem via ssh, virtual networks, etc. Developers tend not to care about end user problems unless... well... there is a business in it!
1). Agree with many that Bluetooth (or another open protocol) is really the way to solve, but the incentives are low to implement universally as the common operating systems in our devices have shifted dramatically in the last 10 years.
2) remember the brief peer-to-peer revolution? Bit torrent, kazaa and emule were (are) pretty effective but have a bad reputation from being used for file piracy.
3). Because of #2, it's been safer for businesses to conform to the SaaS models / garden walls. (Monetizing them is also better understood)
Maybe we should push a standard for local file-sharing so that all vendors will implement it in their mobile operating systems.
The problem I think is NAT, witch makes everything much harder. But it also works as a basic firewall ... I remember the age when you used to connect your PC directly to the Internet, and if you didn't have the latest patches you would get the sasser virus within seconds. It would be scary running even Linux not behind a firewall. And many devices (smart-TV's etc) now a days expect a LAN and will be completely open.
Raise your hand if you would be OK with exposing your whole LAN to the Internet.
Whatever you do, do not use e-mail to send files! Your e-mail will go though many servers on the way, and will take up server disk space. And the data will be encoded to base64 witch will make them about 30% larger. Small files <20 Mb will be fine, but don't send Gigabytes!
the problem with this (even though the basic capabilities are there!!!) is that netcat isn't super user-friendly so people don't use it. And it's not possible to do easily on a mobile device.
So why hasn't someone built a widely-used user-friendly application that lets you send files over local networks using TCP? I don't know. I don't think it's because it's too technically challenging though.
So I taka a photo via iOS, connect to Wifi so Dropbox uploads the photo, open the file on my laptop, highlight and tag the feature, and put it on Slack. It's way better than a USB cable but there's so much more technology involved in the chain.
I think for me it's difficult to imagine a better solution though. So what's the ideal experience? Does it fit into the existing computing paradigm or no?
Or, WiFi direct https://en.m.wikipedia.org/wiki/Wi-Fi_Direct for larger files.
Now there's a problem with discoverabillity and compatibility - but that's no different to trying to get CIFS devices talking to each other.
Disclaimer: I used to work for mimik.
They have a tiny loop, but I prefer to always keep it plugged in to my laptop.
Except with smartphones.
Maybe I can provide some advice. The most important thing is to type very quickly. Heated real-time chatroom activity (read: flamewars) are also helpful for honing this skill...
But chats might not be your thing. One other thing that might help is going to conferences and typing transcripts. Here's a few that I have done: http://diyhpl.us/wiki/transcripts/ For example, this recently included a Bitcoin event where my typing was originally meant to be a community resource for after the event... but during the event this "resource" became a supplement to and alternative to live translation into Chinese (someone decided to throw it up on a projector while I was typing- no pressure): http://diyhpl.us/wiki/transcripts/2016-july-bitcoin-develope...
A long time ago I thought of myself as a keyboard snob, but the truth was that I hadn't tried that many keyboards. After experimenting with some expensive keyboards, I have found that for me the actual keyboard doesn't make too much of a difference, unless it's an exceptionally bad keyboard. I would recommend looking for keyboards that support n-key rollover, which would allow you to experiment with plover if you ever wanted to go in that direction for typing.
I use the default qwerty keyboard layout. It might be more productive to experiment with building alternative keyboards rather than changing keyboard layouts. Chording might be an interesting direction to pursue. Skip to using lots of MEMS accelerometer sensors and gyroscope sensors on a glove and get real-time motion capture of tiny finger motions. Use a few accelerometers per finger. You could spend a few hours making weird (easy) motions with your fingers, and then those state transitions could then be mapped to different symbols. You could also use a 3d model of the human hand, forearm and shoulder to compute the exact range of feasible and repeatable motions based on muscle anatomy, then sample from that range and assign symbols to different transitions.
Typing quickly isn't everything. It doesn't help you figure out what to say.
I gave it two modes: 1) show a new phrase to type and time the wpm. 2) of all already timed phrases, show the slowest one to be typed and timed again.
My observations were that you could in fact increase typing speed for certain areas of input, weak fingers or weak letter combinations.
Just showing the slowest phrase is very simplistic, but it does a surprisingly good job. You will only get to see a different phrase if you improved on the current one significantly and learned a new 'skill'. It also automatically does a form of spaced repetition as you normally only increase speed in small steps and will see slow phrases again and again.
It didn't bother me much to type in lots of phrases I was already fast at to single out the slow ones. But: after some playing around with it I saw that for many inputs it's mostly a concentration problem, less a finger-mechanical one.
How much C code can you type at 100 wpm before running out of things to type?
How much C code written by others can you read/parse at > 100 wpm before making a concentration lapse?
I haven't used the script in a while and went on to try to single out the slow patterns in every-day typing (mostly the error rate being to high) and then try to figure out why my fingers don't know where to go reliably. I then make an effort to train these patterns a little, maybe correcting an actual mistakes or lazyness in placement.
You can teach yourself to use a stenography machine. You can build your own steno machine with some open-source software and a fancy gaming keyboard. See this video by Mirabai Knight and the Plover project: https://www.youtube.com/watch?v=Wpv-Qb-dB6g
I wanted to try this but I couldn't stick with it.
That said, have you thought about taking up the piano? I feel like the dexterity that I develop playing the piano, particularly the ability to very quickly play repeated and alternating notes, has helped me to type faster. It should also help with rhythm, since piano keys need to be correct in both location and time to sound correct. If you're only interested in the effect on typing, you can avoid music with lots of chords and focus mostly on songs that have a quick tempo.
If you got to 100 wpm by that route all you can do is keep practising, maybe with a metronome. (Although that's going to be a horrible noise at that speed).
If you ever look at the keys that's going to slow you down, so use a cloth over your hands to hide the keys.
The other problem is that typing tests require you to read. Try typing some spoken word - try typing a podcast or radio show. You may find you type that faster.
Unfortunately I don't know of any tools that go much further than that in providing useful feedback.
You type at 100WPM. Unless you're transcribing can you really think at 100WPM?
I haven't measured it, but I think I type around 40 wpm (although adjusted much slower, I have poor typing accuracy) and I certainly don't feel like my typing slows me down, my typing more than keeps up with the speed of thought.
Maybe I just think really slowly.
But honestly, "Oh no I only type at <ludicrously fast speed>, what can I do to improve?" sounds a bit silly.
It's the stopping and starting, people coming by, checking email, getting a text message.
I've been using the tab snooze chrome plugin to snooze gmail so it's only in my tabs every hour or so.
Blocking news and social sites in your hosts file, helps in case you wander over to a time waster of a URL. Mine redirect to Trello.com to remind me to focus.
Also listening to up tempo music with few lyrics helps, listening to a track on repeat can really focus my attention.
I also use the pomodoro method with the Tomato Ticker osx app.
That seems to help focusing on lots of small tasks, if a task is longer than 25 minutes and I'm plugged in I just keep going.
Also sometimes a goal is nice for larger chunks of work, get this knocked out and then get that game you've been wanting, lunch at your favorite restaurant, or take the afternoon off etc.
Most of these are handled by various apps but if you could integrate them together that would be a plus.
But I can tell you which application has helped my productivity the most - Slack. Communication is the biggest roadblock for my developer experience. Unclear specs, asymmetric expectations, etc. Slack has significantly improved the ease and speed I can get feedback from teammates / product owners.
Like others have said it's the content, not the presentation that can be improved over time.
If you're including code snippets it would make sense to take a look at using markdown . . . this article is a little dated but a good starting point: https://css-tricks.com/posting-code-blocks-wordpress-site/
Also think about making it easy to double click to select all of the code or use another method to make it super easy to cut and paste the code.
If you will run the blog in parallell with e.g. a product/service and need a consistent look and feel I would look at the _s stater theme . You get most of the "nuts and bolts" and you can quickly style it to match your overall design.
He started in 1979 building this:
Everything is handmade as in everything.One of the gears takes 400 years to rotate around it's own axis.
It's half size of this watch https://en.wikipedia.org/wiki/Jens_Olsen%27s_World_Clock
Besides that he managed to build a succesful security company, countless digital watches (big and small) and even a freaking small harbour and countless other things. He speaks assembler almost as well as he speaks his native language Danish which is why I feel ok posting about him in this thread :)
Claims that there are no modern day da Vinci does not apply to him.
GNU bash has been maintained by Chet Ramey for decades (although he isn't the original author.) Most of the GNU projects probably count, although some of them have changed maintainers much more often.
R was started by a couple of stats professors, and I'm sure it wasn't their main line of research (as opposed to Lua, Haskell, and OCaml, which are definitely labors of love, but they are somewhat funded, if you consider an academic salary funding).
Julia seems to be a labor of love, although it has had some amount of funding.
Clojure and D both have or had some commercial element, but you can tell it's mainly the love driving it, not the business.
And if you are really looking for single person projects, sqlite is probably one of the best examples. If I recall Richard Hipp has actually paid people to work on sqlite occasionally, but he's written almost all the code, and doesn't really accept patches.
Though I'm not really sure if "not accepting patches" like Knuth, Bellard, or Hipp is something to be admired... I have tend to want to control things too, which is probably a bad tendency.
It's pretty well-known around here, but I still find it amazing to think about every time that I see it come up.
1. The Perl Programming Language
2. TextMate, a Text Editor for OS X.
For what it's worth, some of the things that have decreased Perl's popularity have also made me use it less, usually in favor of Go; while similar factors with TextMate make me "test-drive" a new editor every six months of so, but (so far) I always come back to TM.
The two are, to my mind, different kinds of labors, though both clearly labors of love. TextMate was the Mac text editor that embraced the Unix underpinnings of OS X: BBEdit for programmers, if you will. Its balance of Mac and Unix feel is, as far as I can tell, still unique; and I think that's why it's still actively developed despite a rather troubled history.
Perl, on the other hand, is two things: Perl 5, which still powers a lot of software in the quieter realms of commerce and research; and Perl 6, which is absolutely an aspirational, striving new language.
My take is that Perl 5 is developed further because so much depends on it, and because so many people are attached to their software written in it. Perl 6 on the other hand is developed -- by many of the same people -- in the belief or at least hope that a highly expressive, hacker-friendly general-purpose language will find its audience over time, buzz & PR be damned.
Features include extremely fast, extensible via a C-like language, excellent docs, excellent support, tagging/bookmarking, formatting, etc.
I switched to it after first picking up emacs because I found ELisp frustrating to work with and Emacs itself was dog slow on a modern computer. Haven't looked back since.
Only down side is the somewhat steep cost of $250. That said, I firmly believe it is worth the cost.
"Years later, I was teaching a course on operating systems and using John Lions' book on UNIX Version 6. When AT&T decided to forbid the teaching of the UNIX internals, I decided to write my own version of UNIX, free of all AT&T code and restrictions, so I could teach from it." Source: http://www.cs.vu.nl/~ast/brown/
Not sure if it's inspiring or not, but it's my labor of love. I kept it going after grad school. I work on it a little bit every day, and slowly but surely it's becoming what I originally envisioned as my ultimate parallel programming system.
[Edit: What's with the downvotes? Surely Babel qualifies as an inspirational project of this type, and Sebastian himself is impressive for producing something that has arguably shaped an entire industry at such a young age and, for a considerable time, developing it pretty much all on his own.]
Total commander by Christian Ghisler (https://www.ghisler.com/) - it's still commercial/sharware, but existed for years and still doesn't have a proper competition.
For example, the SMW ROM hack Brutal Mario (whatever you may say about the level design quality) is an insane technical achievement.
The fact some random Japanese guy no one knows the identity of spent 10 years turning a single game into a strange crossover title with hundreds of technical gimmicks based on other games (including some uses of mode 7, 3D, etc) is nuts. A team of 20 or more people working full shifts might have trouble replicating a lot of the stuff in this game.
Or how about Project M? Before it was shut down, they basically turned Smash Bros Brawl into a clone of Melee with new mechanics, stages, characters, graphics and music, pretty much everything:
Or heck, Mushroom Kingdom Fusion in general. It may be an extremely buggy, often poorly balanced game, but damn it's a crazy ambitious premise with a level of variety not seen in pretty much the entire industry outside of it.
300 levels, around 10 or 20 characters with their own play style and mechanics, about a hundred power ups, thousands of enemies and bosses, even more random gimmicks and level mechanics and a massive amount of graphic and music from everything you can think of. All by what? Less than 20 people in their spare time?
Either way, the fact people can work on stuff like this purely in their free time and ending up dedicating years of their lives to a project that can be on par with a commercial one without any means of making money off of it... that's got to be pretty impressive.
And I haven't even mentioned that guy whose spent so long on his mod that Duke Nukem Forever actually started and finished production while it was still in development. With said project still being ongoing and unlikely to finish within the next few decades.
Solely developed by one guy for a while but they have since expanded. It's something that was really needed for the English go community.
If anyone wants to play, send me a challenge. I'm Mongorians on there :-)
Now, the last one, illumos, is the perfect example of a labor of love: the original company has been assimilated and subsequently destroyed, the world at large is overwhelmingly using a competing product, Linux, the competition has seemingly endless time and infinite resources, and yet the kernel engineers persist, even though they quit Oracle, and are working at different companies around the world! On top of that, they managed to come up with revolutionary products which now generate hundreds of millions of dollars in revenue (Delphix comes to mind).
What kind of love does a person feel to keep working and continue against all odds?
The default android emulator always ran kinda slow for me. There are some performance hacks online, but why bother!
1. Amount your pay is docked for health premium;
2. amount your employer pays for your share;
3. total family deductible before insurance pay; and
4. the percentage that your insurer will pay after hitting deductible.
Any thing short of that makes for poor comparative.
Last place (small startup) was 0%. For the PPO. Smaller startup. Also TriNet.
Maybe the employment market for engineers is tighter in NY than SF? Or the competition includes more traditional companies that are accustomed to fully covering insurance? Or more company founders/execs, instead of being fresh out of college, are older and have families and want their own insurance covered?
Or I'm a cheapskate and choose the cheap plan?
We would have a company plan, but we're small enough as to where it's more cost effective to reimburse everyone.
This is a the cheapest plan at the time that was offered by this provider (NIB) and I only did it so I didn't have to pay extra tax as part of the medicare levy surcharge.
EDIT: that's for health, vision, and dental.
Then you affiliate to the health society you want(many privates and a public one)
Also, the gravity concept is good (so stories eventually die), but it's a bit too absolute/aggressive.There should also be normalization by total number of impressions and up/down votes, such that raw volume doesn't overwhelm quality with lower volume. That is, even if confidence intervals are used (which I don't really like), then up/down votes are an estimate of overall up/down vote percentages, which is what's relevant (the submissions most likely to be upvoted (meaning "best") are what should be shown first). Also, maybe volume matters somewhat (many votes implying a lot of interest), but it's better to separate this out and factor it in independently.
It's more valuable to have unbridled enthusiasm from a few users, than a bunch of users who don't care, and would easily swap you out for an alternative. Those enthusiastic users will be your champion, your marketing, your calling card and perhaps your best sales presentation. I think that is straightforward.
Using your Google example, their focus, initially was very narrow - search. Anyone might need it, but if you do that one thing really well, they'll love it and other people will hear it and have to try it.
It sounds like you are twisting up model, focus, opportunity and value.
For instance, my mother in law is into Oprah Winfrey and might get that itch scratched by something a bit like Reddit but that is appealing to her. Maybe Pinterest is closer to that.
I was getting - more - overweight but since I quite the 9 to 5 I have lost 6kgs and it's only going down.
I'm not sleep deprived I sleep when I feel like it and wake up when it feels natural. I no longer get depressed on a Sunday night thinking about how I'm going to tolerate another week until I get a good chunk of time to myself again in the weekend.
I do what feels natural I work hard then take a nice quick shower, then lie down for a while, do more work whatever, I'm only accountable to myself. I can go take a walk around the park while thinking about how to solve a problem and that's a win win. I don't have to worry about the "perception" like you do when you are clocking in and out.
I was a bit afraid that I'm going to feel lonely however that hasn't happened at all. I'm saving my commute time and public transport cost.
I hope I can sustain this because I can really hardly imagine myself going back to an office 9 to 5.
And hell my job wasn't even a bad one by all standards.
I think my personality is deeply incompatible with the 9 to 5 life so I just with I never have to go back to it again.