It's good that you're starting to think about your applications early. Applying to college is a lot of work and one way you can help yourself is by starting early. Do not procrastinate on this. Starting early, gives you more time to prepare and ensure that you have the strongest possible application.
In my experience, Top schools look at your application holistically as a package so there isn't just a single particular thing that will guarantee admission. For example, it is possible to for a candidate with perfect SATs to fail to get into Harvard. That's not to say SATs/test scores are not important - a high SAT score does, all things being equal, improve you chances. But rather, it is to show you that it alone is not sufficient.
So how do you get in ? You make sure each aspect of your application is as strong as possible. This includes things like your SATs test scores, letters of recommendation, application essay and the like. For SATs, one way to get high scores is to just take many practice exams. This is hard work (the exam is 3hrs+) but most of the question there follow a certain style and after doing it a few times you will naturally get good at answering those questions.
On recommendation letters, my suggestion is to get letters from people who know you really well and can speak candidly and accurately on your current intellect as well as your potential for college-studies. The contents of the letter matter much more than who writes it. For example, you say you lead your high school computer club. I'd imagine that you have had a lot of interactions with the computer instructors at your school in that capacity and so he/she is really familiar with you and your skills at an intimate level. Such a recommender is more likely to write a strong letter since they've seen and know your work first hand.
One strategy that may help you determine if a recommender is a good fit is to ask them: Can you write me a strong recommendation letter ? Most would be up front if that's not the case and politely decline if they cannot write you such a letter. So if you can get strong recommendation letter from someone at Google/NASA, go for it. Otherwise, I'd get one from people who know you well.
The other part of this is your application essay. Do spend time crafting that. Unlike most of the pieces of the application, this is one part where you have total control and you should use this to your advantage. Most top schools give you freedom as to what you can write about, so put some real thought as to what you'd like to focus on. Suggested topics to touch on include, why are you passionate about CS and how did that happen. It's a good idea to have a close-friend or instructor to review your essay. It helps to get a second pair of eyes give you feedback. Make sure though that your voice and personality still shines through in your essay after incorporating any feedback and making adjustments.
I realized that Adblock plus was a performance hog a long time ago and it is good to see that information being shared widely. The issue especially impacts those who have many many tabs open all at once.
Interestingly, there is a uBlock alternative which I had not heard about[1]. If the more efficient claims are true, it would definitely be worthwhile to switch over to that instead.
> It's broken because many people correctly calculate that the impact of their individual vote has less value than the cost of physically voting, and even less so than the cost of educating themselves about the candidates and issues.
Agreed but that becomes an issue if everyone thinks and behaves like that. That is, if individually everyone goes through the same thought process concluding that voting is not worthwhile for them on an individual basis what happens is that no one votes. There is an inflection point below which votes do actually matter.
> democracy in general is a bad way to aggregate the preferences of a large and diverse group of people.
That may be true. The question then becomes what is a better way to "aggregate the preferences of a large and diverse group of people" ? Perhaps, such an aggregation is not practically possible.
I was curious too about my own code, so I looked at the last publicly available C code I wrote with fork in it[1], and yep I checked for the error case too :)
I think this just came from being drilled in school on the importance of checking error return values. No matter how unlikely never assume that something can't happen. If it really can't you should at the very least assert on it.
>This newer 2013 MacBook Air is holding up much better than the 2012 model, and I'm consistently still getting 6-8 hours of life out of the battery at least.
It may be just my usage patterns but I never seem to get more than 4 hours on the 2013 Air. I mostly have a fair number of Chrome tabs along with a terminal window open and that seems to be enough to drain the batter rather quickly.
Here's a (naive) question: In the US, is a Supreme Court ruling completely final ? What options, if any, are available to the losing party ? Is change through congress the only way to try to appeal rulings?
If there are no practical ways to repeal Supreme Court rulings, what happens when the Supreme Court makes a mistaken ruling?
There are certainly areas that github could use some improvement. One of the basic features that I see as currently missing is actual side-by-side Diffs like those available in Chromium Code Reviews[1]. This makes it so much easier to review code changes and thus improves the experience of collaboratively working on a project. The Github folks are smart people, so I'm sure they know this and yet years after launch this is still not available in Github while they continue adding things like improved map diffs [2] which while nice features on their own, it only serves to show that a good code diff experience is not as important to them now.
Secondly, I find Github search to be lacking in terms of fulfilling its potential. It seems we all agree that Github is the number one place most people put their public code on. This is great, we have one central public repository. And yet searching for, finding and discovering good code on Github is not as easy as it should be. I argue that it should be easy to find solutions to programming problems that others have already tackled. Imagine being able to type "compute sha256, c++" and seeing relevant code snippets right there. I am not saying this is an easy problem to solve, but I think it's definitely worthwhile one to try. Who knows, may be someone will build an awesome code search engine on top of github.
> Certificate revocation does not work. [...] OCSP is susceptible to a MitM attack (exactly the scenario in which you want it to work!).
with
> The only way to effectively revoke certificates in the numbers necessary after heartbleed is for the CAs to revoke their intermediary certs.
That is, how are the intermediate certificates supposed to be revoked if certificate revocation does not work relibably ?
Also, I'd note that certification revocation can be made to work by the browser simply refusing to continue if it's unable to check certification revocation status (either due to an active MITM or other genuine network errors). Granted this comes at the cost of great user inconvenience, but that's almost always the tradeoff with increased security.
Performance is pretty good -- AFAICK no worse than just running all the apps in one desktop. Here is an article[1] that talks about doing kind of thing on the mac.
If you are on mac or linux, you should check out virtual desktops / workspaces. IIRC you can do the same thing on windows, but you would have to use a third party utility.
Agreed. But in the mean time, I encourage everyone to inquire if their bank supports virtual Credit Cards. Sometimes they do but may not widely advertise it.
Using virtual cards provides you a fine level of control over various features of the credit card and also protects your real credit card number. One can set up time limits (expiry date), set a monetary limit or make it a one time use card.
Virtual credit cards are also useful for dealing with service providers who make it hard to cancel their subscriptions (e.g. you have to call in and talk to a person to unsubscribe). With virtual credit cards, one can sign up freely and not have to worry about being continuously surreptitiously charged each month. Once the card expires or the transaction limit is exceeded, the service provider will be forced to close/suspend the account on their own.
My sense is that one should make the unit tests to be as resilient as possible to refactoring and changes. This means that for so long as the public behavior of the class does not change, one should not need to do much if any updates to the tests.
Thus any test that is written in such a way that it would be present an issue in refactoring code should be avoided if at all possible. A simple example is directly constructing the class under test in the test method:
@Test
public void tryToAvoidDoingThis() {
MyClass = new MyClass(param1, param2);
// do stuff to my class
}
If this is done for each test method, when the constructor parameters change, e.g. a new one is added, then each of the constructors calls in the test method(s) will have to be updated.
Instead, have a level of indirection and have a single method that can create a sample MyClass. Now when the parameters change, only one construction site has to be updated.
In general, unit tests should not be testing specific / internal implementation details of the class. Rather, the tests should verify the documented public behavior of the class.
Does that "build-upon" clause also apply for the case where a provider is mixing OSM data with other third-party licensed map data ? For example, it is mentioned/known that Apple makes some use of OSM data[1] to improve their maps in some places. Are they then legally obliged to release the full data behind their maps for those regions?
If so, that's very nice but I am not sure that's what is actually happening: the third-party source whom they are licensing data from is unlikely to be happy with a scenario where their data ends up in the public domain as this considerably reduces the commercial value of their map data.
This is a pretty cool research project. I do not use Visual Studio but being able to search for and use code-snippets inline can be quite the productivity booster. Lord knows how many times I use google.
Have you considered perhaps including more data sources ? I'd imagine for example a public code repository like Github or Codeplex will extend the range of possible "How Do I" questions that can be answered.
On an unrelated note, I have almost always been disappointed by the search-quality of Github. I know they have a lot of public code but they don't do a good job of surfacing relevant code results. Imagine for example, how cool it will be being able to type into Github, "How to compute MD5, C++" and seeing the relevant code.
Actually, thinking about it, there is nothing preventing Microsoft Research from taking this tech, and turning it into a natural language web code search service. Now that would be awesome !
For an overview of Java, the book resource you cited (Deitel Java - How to Program), is an excellent source. I would suggest that you use it to familiarize yourself with the very basics of Java.
You don't have to go through the entire book cover to cover, but enough of it that you are at least familiar with basic java concepts and syntax. With that, proceed immediately to Android specific programming.