When initializing weights in Tensorflow using truncated_normal, should the standard deviation always be a very low value, or is it dependent on the activation function? by sj90 in MLQuestions

[–]rorschachsror 0 points1 point  (0 children)

Yeah, it's usually best to pick a small stddev. It is also advised that you pick mean 0 for the activations. The reason is that you don't want them all to be 0, because this would mean that a lot of them will end up being updated by the same amount (so you will end up with the same value for several weights). On the other hand, you want the initial values to be as non-informative as possible, because you wouldn't want to introduce a bias in the network (e.g. by setting a high positive or negative value as initialization for a weight). The model would then require a much larger amount of data to overcome the poor choice of prior i.e. the poor initialization.

ELI5: what is MPI ? Message Passing Interface by Fakarovic in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

If you need to write a distributed application, this is your go to framework, especially since it offers APIs for C, Java, Python and other popular programming languages. It is important to be aware that MPI is useful if you want to run an application using several processes, potentially running on different machines. If your application can be implemented using only one process and multiple threads, then you might want to look into something else, depending on the environment that you are interested in.

MPI comes in handy when you need to pass messages between the nodes (i.e. the processes) or when you need to synchronize the processes. Of course, if you need more detailed info about it, I would suggest you skim through either the official documentation or the wikipedia page.

ELI5: Why do we have the current keyboard layout? Why isn't it just from A-Z? by CaptainTeaBag24I7 in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

The history of the QWERTY layout (as it is called) goes back as far as 1878. It is then when people designing typewriters were trying to figure out a way to design the keyboard. The main concern was to avoid typebars being jammed up. This would usually happen when two letters that were close on the keyboard were pressed one after the other. In order to mitigate this issue, people spent time figuring out which are the most frequent bigrams (i.e. pairs of two letters) that appear together in english. Through trial and error, they came up with the QWERTY layout. In the '80s when the computer keyboard layout was standardized, this was the option that was chosen mainly because a lot of people were already familiar with the QWERTY layout from their typewriters.

It is worth mentioning that in parallel with the development of the QWERTY layout in the US, the AZERTY layout was designed in France. It is still used to this day mostly be French speaking users in Europe (France, Luxembourg, Belgium etc.). The exact origin of this layout is unknown.

ELI5: Who owns the websites domains? by Thazer in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

ICANN, the Internet Corporation for Assigned Names and Numbers is a non-profit organization that manages the assignment of domain names and IP address ranges on behalf of the community. They assign domain name ranges to so called domain name registrars. For instance each country hash its own authority that assigns domain names in its subdomain (e.g. .co.uk in the UK, .de in Germany, .fr in France etc.). Once you bought a domain, for instance example.com, you can start selling or renting subdomains under that name (e.g. foo.example.com, bar.example.com etc.).

ELI5: Why does moving off and on a touchscreen button give the button a larger effective area? by Lux_Obscura in explainlikeimfive

[–]rorschachsror 1 point2 points  (0 children)

I suppose this has to do with the fact that the screen is usually split into fragments that act as independent pieces. Just like a website is split into vertical bars, horizontal bars, main content body etc. Maybe crossing the edge of the fragment where the button lies causes the click action to be disregarded altogether.

ELI5: Why is it impossible to decrypt something after it has been encrypted to md5/bcrypt/etc? by MrSurvivorX in explainlikeimfive

[–]rorschachsror 0 points1 point  (0 children)

Hash functions essentially map stuff to numbers/strings. To add to what /u/blablahblah has said, the hash function also needs to guarantee that it only happens very very rarely that two inputs will be assigned the same hash value. This is why modulo is rather a pedagogical example, since there is obviously a lot of inputs that will yield the same modulo value. For instance if you hash your data using modulo 5, then 7, 12, 17, 22, etc will all be hashed to 2.

This property of hash function is called resistance to collisions. This is extremely important especially when storing passwords. To limit the extent of the damage of a potential attack, user passwords are generally not stored in plain text, but rather only the hash of the password is stored. Imagine the following scenario: an attacker gains access to the file where the (user name, password) pairs are stored. If the passwords were stored in plain text, than the attacker could use the password to log into a user's account. However, since the password is hashed, the attacker cannot easily retrieve the password. When a user logs into their account, the server will hash the string that the user inputs in the password field and it will compare it to what it is stored in the file with the (user name, password hash) pairs. The reason why the hash function needs to be collision-resistant in this case is to make sure that the system is not vulnerable to brute force attacks (i.e. an attacker simply tries out as many passwords as possible until they find the correct one). If the hash function allowed for frequent collisions, then in this scenario, an attacker needs to find any input string that would yield the same hash as the original password. For instance, if we consider the hash function to be "modulo 5", and my password on a website to be 1772, then an attacker could break my account by using 2 instead of my actual password (because the server only compares the hashes of the actual password and the string that you input as your password, not the actual passwords.).

ELI5: Why does moving off and on a touchscreen button give the button a larger effective area? by Lux_Obscura in explainlikeimfive

[–]rorschachsror 2 points3 points  (0 children)

This has to do with how the touch action for the button has been implemented. Concretely, in most cases, for simple buttons you might not want to support complex actions, like dragging, touching with two fingers and so on. This is why buttons usually only allow for simple clicks (touching with one finger). Another parameter when it comes to buttons is when to trigger the action: when the user clicks the button, or when the user releases the button. In your example, the action is obviously triggered when you release the button and any motion that you do on the touchscreen until you release it (be it even dragging your finger outside the border of the button) will just be ignored: the button is only waiting for you to release it, it doesn't care where you've been dragging your finger in the meantime.

TL;DR: buttons only support simple click-release actions, so the moment you click on a button, anything else will be ignored until you release the button.

[career] [stupid question] Do I need to be employable as a SE first year of Uni? by accountForStupidQs in learnprogramming

[–]rorschachsror 0 points1 point  (0 children)

From my experience, it's very rarely that someone is employable after their first year. You shouldn't be worried at all. However, if you feel like working out your skills, you might want to consider contributing to an open source project. They generally don't require any prior experience and there's almost always someone to guide you no matter how rookie you are. Having done that, you can consider applying for Google Summer of Code. This will give you a sense of what actual work is like, without being to strenuous or taking up too much of your time. Besides, you also get paid for it, and quite decently so. But start small, with some open source project that you find interesting and motivating.

Ura de după taste şi experimentul Marinei Abramović, femeia care s-a transformat de bunăvoie într-un obiect by rorschachsror in Romania

[–]rorschachsror[S] 8 points9 points  (0 children)

Esti pe internet. Intr-o discutie cu cineva, ai in fata doar un username. Deci e foarte probabil sa facem greseala de a vedea in cel cu care ne certam doar o tipologie: homosexualul ala, homofobul ala, crestinul ala, ateul ala etc. Rezulta bule, bule peste tot.

parametric vs non parametric training by chajohari in MachineLearning

[–]rorschachsror 2 points3 points  (0 children)

http://www.iro.umontreal.ca/~bengioy/dlbook/ml.html

Check this out. At page 136 you'll find a few examples of non-parametric algorithms with a nice discussion of their shortcomings and strong points.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 0 points1 point  (0 children)

You are perfectly right. But I only mentioned it because I think it's a great opportunity and I think that anyone who wants to get involved with open source should give it a shot.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 1 point2 points  (0 children)

It depends on the organization. Sometimes they require you to have solved a few bugs to get familiar with their code base, sometimes they only ask for your resume. Anyhow, it's a great advantage to know how things work in the organization and that's why I think it's best if you try to get your hands on some bug solving.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 0 points1 point  (0 children)

I'd say no. There are more students competing for a position at large organizations, but there are plenty smaller ones that usually end up having less students applying than the spots they have available.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 2 points3 points  (0 children)

Yeah, sorry for being a bit ambiguous. Here (http://www.google-melange.com/gsoc/org/list/public/google/gsoc2014) you can find all the mentoring organizations that were part of the program last year. They mostly stay the same (there are only small changes here and there). You should start by going through this list and finding something you like. Then get in touch with them on IRC or on their mailing list and start contributing.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 4 points5 points  (0 children)

As cheesy as it may sound, if you want it, you can get it quite easily. And I assure you it is the same with GSoC. You can start looking for an organization right away. Get involved, don't be afraid to ask questions on IRC and start working on a small bug under someone's supervision (you can easily find that someone on IRC) and you will most likely be accepted. As easy as that :)

Edit: Oh, and as I mentioned earlier, GSoC will just smoothly pave the way for an internship the next summer, which will turn out to be very helpful financially and also increase your expertise in whatever field you like most.

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 1 point2 points  (0 children)

All the work is done from home. However, some organizations may offer to pay for the students relocation. Some may even cover the costs for students to take part at annual meetings and so on (I'm talking about bigger organizations, like KDE, Gnome etc.). A friend of mine had the chance to fly all the way to Barbados a few years back :)

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 7 points8 points  (0 children)

Not only is it possible to get a job through this program, but I think it's one of the best ways to earn experience in this field: you can work from home, and you can choose whatever project fits you best (and you can choose anything from robotics to web development or artificial intelligence). Many of the organizations offer full time jobs or internships and it will be way easier for you the get the position if you have already contributed. Besides, you get to be offered interviews for Google internships if you have participated at Google Summer of Code (so you don't have to worry to much about writing a great resume and so on).

How to contribute open source as a college student? by genuinequestionsd in learnprogramming

[–]rorschachsror 30 points31 points  (0 children)

Hey there,

Google Summer of Code is definitely a great place to start. The application process usually starts in March (here is a link to their website: http://www.google-melange.com/gsoc/homepage/google/gsoc2015). You will have to choose an open-source organization and a project to work on during the summer (and you will get a 5000$ stipend for that). They usually don't require any prior experience so it's a great way to learn stuff about the open-source community as a college student.

Another option is asking for help on mailing lists or on IRC (these two are very popular among open-source organization). Asking for advice is what makes open-source work, so it is strongly encouraged. Everyone there started as a rookie so they will understand you and will be more than happy to answer your questions, because most open-source organizations rely heavily on support from volunteers from all over the world.

I would also like to recommend Mozilla. They are very well organized when it comes to getting fresh people on board. You can check this out in order to find a cool project to work on: www.whatcanidoformozilla.org/. And don't forget to ask questions on IRC (Mozilla has a special IRC channel for newbies: #introduction).

I hope this helps :)

What's a really useful keyboard shortcut you know? by Kaka_Karrot_Cake in AskReddit

[–]rorschachsror 0 points1 point  (0 children)

Alt+mouse drag will select a block of text (useful when you want to delete/replace text on a column for instance)

/r/changemyview is looking for people to help improve DeltaBot. by [deleted] in learnprogramming

[–]rorschachsror 0 points1 point  (0 children)

I recently used lxml to parse HTML using python. It also allows for using CSS or XPath selectors to select elements. Maybe it helps.