I want to emphasize the importance of developing the intuition behind the theory. It's vital, and the lack of intuition is why so many people find a complex, theoretical topic difficult. If they had spent time developing their intuition, then they would not struggle so much to understand and remember the theory.
Last, you have to build stuff (this also helps with the intuition). Decide that you are going to spend $300, and start buying parts. Don't go to Radio Shack, because you will (in my experience) pay an order of magnitude more for the same part. Shop on Aliexpress (or sometimes Amazon or Ebay). Who cares if you have to wait 6 weeks for the part to come in... do it today and it will be here about the time that you are ready for it. Never buy just one of anything. You can usually buy 10 or 20 for the same price that you can buy 2 or 3.
Most importantly: DO SOMETHING! Anything. Watch videos. Buy parts. Put things together, and then try to figure out why it's not working! Whatever you do, just don't stop. You will learn if you keep at it. At this stage for you, though, the most important thing is that you actually start.
there's no way to actually avoid epsilon delta arguments in real analysis, but it's helpful to know that there is a more "intuitive" way of thinking about continuity (although admittedly it's a little weird when you first encounter it), that requires a lot less algebraic magic.
Anyway, there's more to real analysis than the topology of the real numbers, but I think it's a great starting place.
By the way, as you aquire experience you'll gain confidence and get over the urge to always check your answers. Here's a good exercise with a built-in answer key: When reading a text, every time you get to a result (claim, theorem, etc) try to prove it on your own before you continue. You probably should be doing that more often than not.
In any case, don't stick to just one text/source. Shop around, read a few pages here and there before you settle on something. There's no way a stranger on the internet can make a good recommendation: Find what works for you. The most important thing is that you're fully engrossed!
I spent a decade with a terse text book on abstract algebra and went nowhere. It's for people who are either already enjoying concise math theorems or have the nack for it. I was missing a few bricks. A few years later some guy here or on reddit suggested a book that is vastly simpler, so simple it felt like HS but it cleared a few misunderstandings I had about notation and meaning. All of a sudden that 5$ ebay book had more value that my 100$ old paperbrick.
1. Nikola Tesla's autobiography:
http://www.mystacki.com/#!/binder/35/nikola-tesla%27s-autobi...
2. Swami Vivekananda's complete works: http://www.mystacki.com/#!/binder/45/swami-vivakananda
3. David Bohm on creativity: http://www.amazon.com/Creativity-Routledge-Classics-David-Bo...
I have been reading these three authors for many years, over and over again. In his autobiography, Tesla brings forth many exciting things about his creative process. He could prototype complete machines in his mind before building them. In his mind he could run tests, even see scars and blemishes on his machines. In my coding, I (feebly) try to emulate his method by trying to visualize my coding prototype in my mind. His short autobiography reads like that of a mystic. In there he describes how the idea of AC current came to him, while taking a walk and looking into the Sun. Philosophically, everything in life alternates: the pairs of opposites, ebb and flow-- its seems to be the code of life; and AC current does the same, it alternates. His writings on Electricity are against the established grain: for him electricity (his only love) is the current of life. There cannot be two electricities(positive and negative,) he says, these are only terms for the state of having more or less of the same thing.
David Bohm has important things to say about the creative process. He talks about completeness (wholeness) of thought. He talks about "mental models" that we create to understand reality and how we keep growing out of older models... newtonian physics gives way to relativity etc.
Swami Vivekananda was a contemporary of Tesla and they did actually meet. He was a scholar of the Indian philosophy system called Advaita and Sankhya. As Jung has said about archetypes -- same thoughts occur to people of all ages, the Sankhya philosophy system believed in the equivalence of matter and energy. Vivekananda introduced these ideas to Tesla and expected him to prove them. But the proof came ten years later with Einstein. I have written about this here: http://www.mystacki.com/#!/post/132/vivakanand's-meeting-wit...
I've actually had to tell some freelancers I use to RAISE their rates, because they were too busy and frazzled. The kind of advice in Brennan's book is something a lot of freelancers need.
The third is probably Patrick Mckenzie. He advice helped me create an email course that is very popular on my site. It's not spam if you write good stuff and people ask for it.
Everyone on my list explicitly signs up to get an email course, and I get tons of excited emails from happy users.
That stuff is popular on Hacker News because a big percent of the audience here genuinely needs help with those problems.
(I agree that the second one can be an issue, if they actually lack expertise. On the other hand, lots of startups are good even though I've never heard of them. It all depends at what level you're giving advice. If you're giving advice about a solo business, you don't need to have founded Facebook)
heartbleed bug what you need to know
Your post (http://jasonlefkowitz.net/2014/04/the-heartbleed-bug-what-no...) was buried. I gave up looking for it after the first 6 pages of google results.
I'm not sure why you're ranking so badly for this article. The only idea I have off the top of my head is that you have a very wide variety of content. Google tends to prefer sites focused on one topic, or perhaps just a few.
I never wrote about youth baseball on my blog until last year. The first 2 articles I wrote got virtually no traffic from Google for 8 months. A couple months ago I started writing more in depth articles about baseball. I'm now getting a significant amount of Google traffic for those same two articles - one of them is over 10 visits a day. That's still pretty small compared to my blockbuster posts (my top post on best browsers gets hundreds of visits per day). But baseball is growing, because Google is (algorithmically) beginning to believe that I'm some kind of authority on youth baseball, based on a growing concentration of quality content.
So - my guess is that you would get more traffic if you wrote about fewer topics - or perhaps split into several blogs, each with different topics. I should probably do that as my various tech topics have nothing to do with baseball.
All of these projects are MIT-licensed, and I'm pretty good about filing GitHub issues for things that need to happen.
Email/Twitter in profile.
- - -
Usercorn - https://github.com/lunixbochs/usercorn
Skills: Go, C, Syscall ABI
Usercorn is a sort of debugging tool, kernel API emulator, and CPU emulator (powered by Unicorn Engine) rolled into one. It's hard to simply explain the vision but it can do things like run a MIPS Linux binary on x86_64 OS X (kinda like a more powerful qemu-user).
Plenty of GitHub issues here, but the main work needed right now:
Fixing up bugs related to glibc, dyld, and other runtimes. x86_64 Linux is the best supported loader right now, so the rest could use some love. There's progress being made on OS X / iOS + dyld startup right now.
Support for issuing signals to the guest CPU (need a signal handler table on a process's kernel structure, a syscall handler for `signal` and `sigaction`, and code that can jump the guest CPU into a signal handler and do a `sigreturn`)
More syscall emulation (~50/350 syscalls are implemented for Linux and OS X), but it's pretty easy to add new ones.
Support for guest threading and fork/clone (these will likely need a virtual process/thread table, then each thread/process can run on a Goroutine and take advantage of Go's existing scheduler).
Virtual filesystem layer, so syscalls like open/read/write don't go directly to the host OS and can be intercepted/overlaid in a more general sense.
- - -
lib43 - https://github.com/lunixbochs/lib43
Skills: C, ASM, Syscall ABI
Yet another libc, created as a result of this blog post: http://ryanhileman.info/posts/lib43 - mostly just has string, memory, number, and basic IO functions right now.
Ways to contribute: Pick a man page for any missing libc function and implement it in a simple/readable manner, or dive into an architecture syscall ABI (like ARM/NetBSD) and write the assembly backend for it.
https://github.com/lunixbochs/lib43
- - -
glshim - https://github.com/lunixbochs/glshim
Skills: C, OpenGL
This provides desktop OpenGL ~1.5 sans shaders to any mobile device implementing OpenGL ES 1.0. It has been used to port dozens of open and closed-source games to the Pandora and other mobile platforms. It was also used for the Android real-Minecraft launcher (called Boardwalk I think).
Current goals include testing/improving the remote rendering (which allows software like emulators to easily serialize and remotely render OpenGL), increasing compatibility (testing games + filing/fixing issues on GitHub), adding WINE support (will be a trial/error process of running WINE, debugging/fixing the thing that prevents initialization, repeat), and writing more feature tests (which are actually pretty easy. You write a simple program to make OpenGL calls and assert which OpenGL ES calls should be emitted from the other end).
- - -
patchkit - https://github.com/lunixbochs/patchkit
Skills: Python, C, ASM
This project allows you to reproducibly patch compiled binaries with one or more short Python scripts. It includes an assembler (Keystone), disassembler (Capstone), basic linker, basic static recompilation/code transformation engine, control flow graph, and C compiler integrations... all in about 700 lines of Python. It was mostly created for use in attack-defense Capture The Flag competitions.
These are both working patches:
def patch(pt): pt.patch(0x800400a, asm='mov eax, 1')
def patch(pt): pt.patch(pt.entry, c='void f() { printf("hi\n"); }')
It mainly needs glue code written for more architectures, support for PE/MachO formats, and improvements to the C compiler/linker. The provided symbols are mostly specific to Darpa's DECREE environment, so support should be added for yanking/calling symbols from the binary itself as well as integrating something like lib43 to provide a basic libc and syscall support on many platforms.- - -
ActualVim - https://github.com/lunixbochs/actualvim
Skills: Python
This project is a massive hack to sneakily jam a Vim instance into a Sublime Text buffer. This gives you surprisingly good Vim keybinding support, and even works with your Vim plugins, but it totally breaks Sublime Text plugins and commands (as text changes won't be propagated back to Vim). As a result, the project is mostly a joke right now (just a pretty UI around Vim that breaks most interactive Vim plugins).
I do think NeoVim is mature enough to take this the rest of the way into being a serious project, and there's a fair bit of interest. The Sublime Text side of the interface works very well, so the main tasks here would be (1) swapping out Vim for NeoVim (which I seem to remember having a very simple remote control API), and a (2) handler to propagate text changes back from Sublime plugins into the NeoVim buffer.
Do you know how to find the actual article on the subject?
*edit:
Found it! Google is a much better way to search medium than medium's worthless navigation/search.
Here are the three articles:
https://medium.com/self-driving-cars/how-to-land-an-autonomo...
https://medium.com/self-driving-cars/how-to-land-an-autonomo...
https://medium.com/self-driving-cars/how-to-land-an-autonomo...
Do that and basically shift to whatever you feel like doing at the time (with the only caveat that it should be relatively productive stuff - ie. not "play WoW", more like "write a blog post" or "design a new homepage").
You probably will still get stuff done just before the deadline when it has a hard deadline, but the result is that you'll do a LOT of other stuff along the way.