@mockingbirdy, do you have an email contact ? Would be curious to learn more about your experiences in this area.
HN user
jervisfm
An aspiring developer currently studying CS at columbia.
Have you tried Google Takeout [1]? I understand that will let you download all your data.
Hi,
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 hope some of this is helpful.
Good luck!
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.
[1] https://github.com/gorhill/uBlock/wiki/%C2%B5Block-vs.-ABP:-...
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.
[1] https://github.com/jervisfm/W4118_HW1/blob/master/shell/shel...
Wait a minute, if that's true won't it imply that traffic violations/infractions convictions get you a criminal record ?
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?
b) how to disrupt github?
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.
[1] https://codereview.chromium.org/261573002/diff/60001/google_...
[2] https://github.com/blog/1772-diffable-more-customizable-maps
I'm wondering how do you reconcile:
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.
[1] http://www.maclife.com/article/howtos/how_use_spaces_mac_os_...
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 !
Neat, thanks for the tip.
How did you get the Proxy Settings screen ? Is that a separate app that you need to install ?
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.
I had suggested some resources for starting out with Android development which you may want to look at: https://news.ycombinator.com/item?id=7016067
Not the OP, but for some start-up resources on Android check out the following:
The Android Training Guide is not a bad place to start at: http://developer.android.com/training/index.html
That should give you a bit of idea of what android development entails.
More resources:
* Android Bootcamp Videos: http://www.youtube.com/watch?v=Mf7z_mrce00&list=SPE953C0B85B...
If you'd like a guided video walkthrough through android, this is an excellent source.
* Android Cookbook Book: http://androidcookbook.com/home.seam Has solutions to common problems. Also check out their code on Github: https://github.com/AndroidCook/Android-Cookbook-Examples
* BigNerd Ranch Android Book: A detailed reference on all about Android Development. http://www.bignerdranch.com/book/android_the_big_nerd_ranch_...
As always despite all these resource, I find that the best way to learn is to just get your hands dirty. Use the resource to get a sense of the Android development world and solidify that understanding by doing a small project like the one you described here.
Hope this helps a bit.
Any tips on how you accomplished your first goal ?
Yeah, I did not hear about pwdhash and it sounds like a nice idea.
One thing I have noticed though is that when one enters the same site password, you get the same "Hashed" password back to use. Yes, there is an extra step involved here so that buys you some security but I will be cautious in reusing site passwords.
Imagine an attack where for the top 100 sites in the world, all of the most commonly used passwords are used to generate the "Hashed" (pwdhash) passwords for each site and compile that info into a big list. This can then be added to the candidate list of password that can be tried in cracking leaked hashes.
The take way here is that even though pwdhash gives you domain-specific generated passwords, you will make to sure that you use a different site password as input to pwdhash for each site.
The only thing missing is a way to edit the JS and see the result.
If you look on at the right edge of the grey-ish tab bar, you will see an "edit" link. This opens up a link to CodePen which lets you fork the snippet and mark changes to it. Here is one such link: http://codepen.io/kangax/pen/wDuxl
There will be an eventual cap at 21 million bitcoins.
At the increasingly slow rate that coins are produced, this won't happen for some. But assuming that bitcoins are still around and in use at the point in time in the future when this happens, what will be the effect of this?
The supply is fixed and no more can be produced; and since it's still around, chances are there is demand / usage that would likely grow. The likely result seems to be that from that point onwards, bitcoin's value would only grow to due an increase in its scarcity. Perhaps, this is a possible justification or rationalization for bitcoins as a (very) long term investment.
Also, not too familiar with the internal bitcoin protocol but what will happen to the network of miners who help with verifying / maintaining the transaction ledger? I think the reason they participate is that they are (proportionally) rewarded for their services in new bitcoins. When this is no longer the case, who will agree to do this work then?
This is a neat idea. Does anyone know if it's possible to achieve a similar effect natively on Linux ? i.e. make the linux network stack load-balance all outgoing connections to all available interfaces ?
So I am wondering: as a startup founder / cofounder are you obligated to return investors' money/funds if it comes to the point that you have to shutdown your startup? Or was the raising of the money done with the understanding that investors may never get it back ?
Obviously, the answer here depends on the exact agreement(s) between the investor(s) and the founders but I am curious about the typical case.
If indeed, as I suspect, you are not "in-debt" by the amount of money that you had raised, this makes the shut down a bit less painful and also gives you room to try and do another startup in the future (due to not been burdened with paying back huge sums of borrowed money).
Does anyone have any experience using hi-res screens with linux? If so, what are the issues, if any ? Is there a distro that has really good support for these kinds of displays?
I know the laptop comes with Win 8.1 which supposedly has decent hi-res screen support but if you wanted to wipe windows and put a Linux distro, which one would be best?
Not to dismiss the problems you have encountered, but I too use dropbox heavily with 100k+ files. Not as much as you do but still quite a bit more than the average user.
I had tried out other common services (Google Drive, Skydrive) and they all choked with that large of a file collection. Skydrive would just crash and exit whereas Google drive had issues with file uploads. And both of these had terrible CPU usage (it was basically at 100%) which is not good for a laptop. This was a couple of months ago, so may be their syncing client have improved since then to deal with large file collections.
Dropbox on the other hand was the only one able to handle my humongous file collection with no sweat. But as you point out it too has its limits. It's good to know that once one gets past/at 300k+ files, there are likely to be issues. I agree with you it will be good for Dropbox to publicly acknowledge the true limits they have in their service.
The US equivalent is ACH, which has the major downside that using only the bank ID (routing number) and account number you can effectively wipe out the target's account
Interesting. I had come to a similar conclusion myself. I noticed that in paying my school fees all I needed was those two numbers (banking routing #, bank acct #) for payment with no further verification. As you have observed all of these details are readily available on paper checks.
One way to mitigate the issue of someone potentially wiping your account is to have two accounts. One public and one private. The private one would contain (most of) your actual funds whilst the public account, which you would share freely as needed would contain just enough funds to complete whatever transactions that you need to do. Sure, it is not as convenient because you have to manage two accounts but at least that way you reduce your exposure to your funds being completely depleted.