Jump to content
Washington Football Team Logo
Extremeskins

The "Official" Computer Programming Thread


Thinking Skins

Recommended Posts

[...]

In the past I've dealt with PHP, Javascript and SQL (web development is a gigantic mess IMO that I"d prefer not deal with again)

[...]

 

It really is a mess.  And the sad part is, there is no hard-and-fast reason why web dev had to turn out like that.  Living through and then reflecting on the history of web tech to date, the result we now live with is understandable.  But it is not necessarily inevitable.

 

When the database layer is by far the most enjoyable part of your stack to work with, something is fundamentally wrong with the world.   :P

Link to comment
Share on other sites

 

I don't know where anyone said that.  You don't need IOS or Visual Studio for that matter to develop for IOS.  Visual Studio is just an IDE

 

Right, a windows IDE that lets you write and compile your code for testing. As opposed to Xcode, an Apple only IDE, which requires buying a mac or figuring out how to create a hackintosh.

 

Might be useful for balki1867 who's trying to figure out how to run OSX on his windows machine, right? 

 

I have an iPhone app idea I'd like to develop but I only have a PC at home.  Does anyone know the best way to be able to do this?  I keep reading about installing virtual machines with OSX on my PC but have no experience doing this.  Has anyone done this before?

 

Link to comment
Share on other sites

Right, a windows IDE that lets you write and compile your code for testing. As opposed to Xcode, an Apple only IDE, which requires buying a mac or figuring out how to create a hackintosh.

 

Might be useful for balki1867 who's trying to figure out how to run OSX on his windows machine, right?

I think the big thing, though, is it working with the emulator to test out your code, right?

As far as IDEs go, I like Netbeans' ease of use, but I'd like to learn more about using the advanced features of Eclipse.

Link to comment
Share on other sites

Right, a windows IDE that lets you write and compile your code for testing. As opposed to Xcode, an Apple only IDE, which requires buying a mac or figuring out how to create a hackintosh.

 

Might be useful for balki1867 who's trying to figure out how to run OSX on his windows machine, right? 

 

Well you are confusing 2 points.  With regards to running OSX in a VM, the only thing he is doing is running OSX in a VM.  It has nothing to do with app development.  With regards to IDE's, my point was you don't need an IDE to create an app.

 

From the way the question was posed, it didn't sound like he was a developer.

Installing OSX on a Windows VM isn't necessarily an easy task.  He probably needs an intel based machine to make it work, not all intel based machines will work.  He will also probably have to get it from bittorrent.  Let's hope his machine is powerful enough to run it too.

 

It might be useful for balki1867 to try and write an app using something readily available for his platform, then if he wants to move forward he can look into purchasing a Mac.  :P   Being a Mac user myself, I wouldn't have high expectations for performance of OSX running in VirtualBox on a PC, well you might get a lot of pinwheel time.

Link to comment
Share on other sites

When the database layer is by far the most enjoyable part of your stack to work with, something is fundamentally wrong with the world.   :P

 

Having spent most of my career as a consultant for 2 of the largest database companies in the world, I can't tell you the number of times I had to correct issues with "developers" code and how it interfaced/retrieved data from relational databases.  I wish more developers understood set theory.  It was/is probably the most neglected skill taught to computer scientists coming out of college.  I had many performance and tuning database gigs that turned into SQL 101 and teaching Java developers how not to retrieve 100's of thousands of rows from the database and do row processing in memory :lol:

 

Now with the likes of Hadoop and Accumulo maybe relational databases will take a back seat.  Who knows.

Link to comment
Share on other sites

I see a lot of scripting in the OP. Where are the fun languages like C, ASM, and VHDL?

Fun fact: I had an exam in a CS class some time ago, and we were allowed to use our computers, and we were allowed to do anything with our computers except go online during the exam. One enterprising student downloaded the entirety of StackOverflow to his computer before the exam.

 

C, C++, and Java are 3 of my favorite and more importnat languages right now (and in the case of C, historically). I guess when I wrote the OP, I was more in the frame of mind of what languages are easy for somebody who's coding by themselves without much supervision? I think C is learnable in this environment, but I think C is a lot more difficult to just get a running program than some of the scripting languages. Plus when your only gui is a console, it can limit the attractiveness of that language (even when people brag about the power you get when you can have direct access to memory). From what I know many companies love to see C/C++ on your resume, but not really because they actually use it, but because it shows that you can learn other languages like Java.

 

And another one that I didn't mention but that's becoming more and more important in this new era of Cloud Computing is Hadoop and MapReduce. I know of a few sites that offer tutorials, as well as books like Hadoop: The Definitive Guide and another by Jimmy Lin (I forget the title right now), but this road requires setting up a VM and possibly a single node cluster. If people are interested, I can dig through my notes and look up this stuff. Data Science (which is largely based on cloud computing and big data) was one of the top jobs in 2014 and those interested in getting into it will need to know some Hadoop.

Another good place is Youtube. Look for the ones with the most views. 

 

Youtube has a lot of very informative videos on many programming languages. 

 

I know YouTube is good for a lot of educational topics, but I've never used it for programming. Do you know any particular authors? Like, does Kahn Academy have videos for this?

 

The one thing I learned over the last 30+ years as a programmer.  The programmer that is building the current code base thinks his code is the best written code.  The programmer to succeed the previous programmer thinks the old code is the worst code ever written, the new programmer rewrites the old code.  When the next programmer comes in, rinse, repeat.

 

Now programmers call it refactoring instead of rewriting.  Sounds more elegant :)  And less costly.

 

 

As I see it, a large part of the problem comes from simple stuff like changes in environment. A lot of my peers were using code that they thought would be limited to their own workspace and that would never be a part of a coroparte solution. So when they wrote something like a sort function they used a naive method rather than spending time writing an efficient method. Then when their project was included as a part of a larger class, things like that sort method became a major slowdown, especially if it needed to be used again and again.

 

Then with cloud computing, it just changed the whole axises of programming. A lot of people who were doing file processing would make multiple reads of a single file, which is fine if you're dealing with a ~1MB file. but when that file grows to 1TB, you want to get as much as you can with 1 read, and it makes the need for efficient code a lot more important.

Link to comment
Share on other sites

From what I know many companies love to see C/C++ on your resume, but not really because they actually use it, but because it shows that you can learn other languages like Java.

 

I have customers who have reverted from Java to C++ due to performance issues on high speed computing applications.  Java will always be slow.

Link to comment
Share on other sites

I think the big thing, though, is it working with the emulator to test out your code, right?

As far as IDEs go, I like Netbeans' ease of use, but I'd like to learn more about using the advanced features of Eclipse.

 

NetBeans was always easy to use, but agreed. Eclipse allows for the advanced aspects as well.

Link to comment
Share on other sites

It really is a mess. And the sad part is, there is no hard-and-fast reason why web dev had to turn out like that. Living through and then reflecting on the history of web tech to date, the result we now live with is understandable. But it is not necessarily inevitable.

When the database layer is by far the most enjoyable part of your stack to work with, something is fundamentally wrong with the world. :P

An attempt to address this ... MIT research project

http://www.cio.com/article/2863673/mit-unifies-web-development-in-a-single-speedy-new-language.html?phint=newt%3Dcio_insider&phint=idg_eid%3Dc095891941d2d4dc5340bafc667d2ecf#tk.CIONLE_nlt_insider_2015-01-03

Link to comment
Share on other sites

I don't know if this question deserves it's own thread . . . 

 

what do you computer gurus think of apps like Dashlane? It's a password aggregator. I've never felt the need for one but my mother-in-law said she started using it. I can see how it could be useful but seems really dangerous to have ALL your passwords in one place. I'm sure Dashlane have tried every thing known to make it secure but everything is hack-able. 

 

For a family that lives out in the middle of nowhere (my in-laws) and have a small arsenal of weapons, it'd be safer to have those passwords locked in a drawer or safe. 

 

I guess it's different if you have concerns about forgetting the password as you get older and there's always that balance of convenience and security. 

Link to comment
Share on other sites

C, C++, and Java are 3 of my favorite and more importnat languages right now (and in the case of C, historically). I guess when I wrote the OP, I was more in the frame of mind of what languages are easy for somebody who's coding by themselves without much supervision? I think C is learnable in this environment, but I think C is a lot more difficult to just get a running program than some of the scripting languages. Plus when your only gui is a console, it can limit the attractiveness of that language (even when people brag about the power you get when you can have direct access to memory). From what I know many companies love to see C/C++ on your resume, but not really because they actually use it, but because it shows that you can learn other languages like Java.

 

And another one that I didn't mention but that's becoming more and more important in this new era of Cloud Computing is Hadoop and MapReduce. I know of a few sites that offer tutorials, as well as books like Hadoop: The Definitive Guide and another by Jimmy Lin (I forget the title right now), but this road requires setting up a VM and possibly a single node cluster. If people are interested, I can dig through my notes and look up this stuff. Data Science (which is largely based on cloud computing and big data) was one of the top jobs in 2014 and those interested in getting into it will need to know some Hadoop.

 

I know YouTube is good for a lot of educational topics, but I've never used it for programming. Do you know any particular authors? Like, does Kahn Academy have videos for this?

 

As I see it, a large part of the problem comes from simple stuff like changes in environment. A lot of my peers were using code that they thought would be limited to their own workspace and that would never be a part of a coroparte solution. So when they wrote something like a sort function they used a naive method rather than spending time writing an efficient method. Then when their project was included as a part of a larger class, things like that sort method became a major slowdown, especially if it needed to be used again and again.

 

Then with cloud computing, it just changed the whole axises of programming. A lot of people who were doing file processing would make multiple reads of a single file, which is fine if you're dealing with a ~1MB file. but when that file grows to 1TB, you want to get as much as you can with 1 read, and it makes the need for efficient code a lot more important.

 

It doesn't matter, just go on Youtube and type in any programming language. C++, Java, whatever. And you'll see tutorials for it. Just look at the ones that have the most views, but as long as it's heavily viewed it should teach you a lot. It helped me refresh my programming skills and explain basic concepts in another way 

Link to comment
Share on other sites

I don't know if this question deserves it's own thread . . . 

 

what do you computer gurus think of apps like Dashlane? It's a password aggregator. I've never felt the need for one but my mother-in-law said she started using it. I can see how it could be useful but seems really dangerous to have ALL your passwords in one place. I'm sure Dashlane have tried every thing known to make it secure but everything is hack-able. 

 

For a family that lives out in the middle of nowhere (my in-laws) and have a small arsenal of weapons, it'd be safer to have those passwords locked in a drawer or safe. 

 

I guess it's different if you have concerns about forgetting the password as you get older and there's always that balance of convenience and security.

It's basically a keyring, right? You have to consider what the different alternatives are. Do you use the same password on everything so you don't have to remember a billion different passwords? That means that any one of those places gets hacked and your password is out there. There's the physical paper you mentioned which is secure from remote hacks, but is inconvenient. And there's the keyring approach, which I assume Dashlane is, which stores all of your passwords on your local machine in an encrypted format which can only be unlocked with a master password.

So if the choice is between a single password for a bunch of places who's security may be rather poor (like Sony who kept people's credit card information in plain text files), or a bunch of random, unique passwords for a bunch of places with only your local encrypted keyring as a hacking point (well, those other places are still as hackable as ever, but the damage restricted to just that place as there's no reuse of password), then the keyring is the safer way to go while also being rather convenient.

Link to comment
Share on other sites

I don't know if this question deserves it's own thread . . . 

 

what do you computer gurus think of apps like Dashlane? It's a password aggregator. I've never felt the need for one but my mother-in-law said she started using it. I can see how it could be useful but seems really dangerous to have ALL your passwords in one place. I'm sure Dashlane have tried every thing known to make it secure but everything is hack-able. 

 

For a family that lives out in the middle of nowhere (my in-laws) and have a small arsenal of weapons, it'd be safer to have those passwords locked in a drawer or safe. 

 

I guess it's different if you have concerns about forgetting the password as you get older and there's always that balance of convenience and security. 

I've always been of the frame of mind that you shuold generate unique passwords for every site. If your passwords are truly random, then it makes them really hard to remember, but you can use standard text like "i like pancakes" (15 characters) and make it into a pretty strong password. (point of reference. I like pancakes is not a password I have ever used and I apologize if I'm giving away somebody's password).

 - But you truncate the spaces (shortens it to 13 characters), ilikepancakes

 - replace a characters with the @ symbol, ilikep@nc@kes

 - capitalize the start of every word, iLikeP@nc@kes

 - replace o with 0 and e with 3, s with $, possibly i or L with 1 iLik3P@nc@k3$

 - Add punctuation depending on how you're feeling about thsis iLik3P@nc@k3#??

 

Then you're remembering sentences instead of randome digits and letters and symbols (and you can use more exotic replacements than the ones i stated here. Like some people may choose to replace L with 7 and m with 3. its all personal preference.

 

And a final thing to help you remember the site itself, is that you could make the sentence something that reminds you of the site. Sometimes a song or a movie may be on when you first visit a site, maybe you can use something from that. Or maybe its a meal you were eating (pancakes?), or maybe a friend introduced you to the site in question. But these are good ways of generating good passwords that are rememberable and (1) don't need to be written down and (2) don't depend on an external management system that is exploitable in itself.

Link to comment
Share on other sites

I thought I'd share a link with you. I'm not sure how many of you are Data Scientists, but given the number of programmers we have in this thread thought this may be of interest:

 

http://www.datasciencebowl.com/blog

 

 


Day in the Life of a Data Scientist Written By Charles Glover

Data Science was named Forbes Magazine's sexiest profession of 2014 as well as being the most trending STEM career in Ebony Magazine's July issue. This has led to many wondering how they, too, can enter the data science profession. So, what is a typical day in the life of a data scientist?

How is data science similar to other jobs?

"A data scientist is someone who is better at statistics than any software engineer and better at software engineering than any statistician."
- Josh Wills of Cloudera

The above quote illustrates two jobs closely related to data science and the hybrid nature of big data analysis. Generally, statisticians are not apt in trending programming languages, data structures, or the advanced areas of computer science and many software engineers may not know as much about advanced mathematical and machine learning algorithms for analyzing, clustering and classifying data. The newness of the term "data scientist" has led to many disagreements on an formal definition of the term, but speaking with many in the field a typical work day is generally centered around the concept of writing code for mathematical and statistical algorithms, often dealing with "big" data sets.

What kinds of problems does a data scientist solve?

At a basic level, the general task of a data scientist is to search for patterns in large data sets. There is generally a lot of context left out of this task, however. Once we have an understanding of the data and what questions we would like to answer, there is a question of the best and most efficient methods to answer these questions. These two do not always agree and when they do not, the difference can often be grand. This is a common problem in computer science. For example, when we're searching for the maximal element, do we need to sort all the elements and select the element at the top of the stack, or simply run a search algorithm. Similarly in data science, a question may be whether there is a need to run an algorithm such as clustering (which may be expensive if it calls for multiple iterations through a large data set) or can we answer these questions with a simpler distance calculation?

How much of being a data scientist is sitting in front of a computer vs giving presentations vs working in groups?

Most of my time as a data scientist is spent researching, writing algorithms and writing code to answer the questions about the data sets in question. A fundamental part of data science involves group work - obtaining the data, understanding the data, and understanding and analyzing what is wanted from the data. Whether all these roles are filled by one person (me) or by a group of people depends on how your team is set up, but as the data scientist I generally have someone I am working with who can provide me with more insight on the data, answer relevant questions and clear up any confusion. In addition to this, there may be questions from developers and statisticians about our work as a data scientist that compare the methods we used to other methods in their fields. In these type of settings, it may be important for a data scientist to give some presentations to be able to answer such questions.

What is the most stressful/rewarding thing about being a data scientist?

As a mathematician there is a certain feeling of satisfaction in seeing the need for advanced algorithms to help solve problems in the real world. It's one thing to read a textbook with example problems. It's a totally different feeling to hear about a real world problem and use your knowledge to solve it. Similarly, being able to write the code and see this develop from a problem, to an idea to an algorithm, to a running program is a great and enjoyable process.

However in order to reach that last stage of a running program, we often have to go through what's known as debugging. This is a process of searching for errors in code that either prevents the program from running or leads to incorrect solutions. This can be a challenging process for a number of reasons - some similar to the reasons a developer would find debugging stressful, and others because data science often involves working in cloud environments which require some of the standard practices for debugging programs in a traditional environment to be revised.

- See more at: http://www.datasciencebowl.com/blog#sthash.9q1hOFtp.dpuf

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...