Feb 25, 2021 00:55
I do encourage that everyone give Reddit a try. It's a way more suitable forum for plenty of questions that are asked on this site. Many questions require a back-and-forth counter-question and revised-question process before the legitimate question can emerge. On Stack Exchange, often there are sharks that try to kill the swimmer before rescuers can come to help. Sharks outnumbers rescuers on this site.
Feb 25, 2021 00:52
@amon In response to the meta question (objection), Thomas Owens outlined his linear way of thinking: IF this, THEN that. IF that, THEN it should be deleted immediately.
There are disputed about the timeline, i.e. order of the OP's second edit and the deletion. It is apparent that some mods and senior users took that as a sign of insincerity, or something deserving a punishment. It shows that certain Stack Exchange sites have stopped being a civil discourse, and there's need for a criminal justice view on coming to a widely-accepted consensus regarding regulating the behaviors of all users
Mar 11, 2018 02:40
(Sorry, retracting my question. AWS EC2 instances which are "Memory-optimized" typically provide 10x - 100x the amount of memory I need, which means it's an overkill for my needs.)
Mar 11, 2018 02:32
Question: what AWS EC2 instances would be most optimized toward compiling (building) very large C++ code projects (OpenCV, or some much larger than that)? While it spends lots of time on GCC, it might also spend lots of times on running build steps in Python. Would it be Memory-optimized, Compute-optimized, or something I didn't know about?
Mar 10, 2018 13:00
@amon Stackoverflow could set up a "countdown clock for the number of schools that aren't yet Python".
Mar 10, 2018 12:20
Python is successfully used at many universities to attract non-CS college entrants into changing their degree program into CS. This is widely reported, in New York Times, Bloomberg, any world-class press you name it. While I can't find a link that's not behind a paywall, I did find this one which may convince you. hmc.edu/admission/wistem/survey-says
Mar 10, 2018 12:17
If you have some high-school mathematics, Python is the best first language that will teach you the same programming constructs: lists, sets, dictionaries. See: docs.python.org/3/tutorial/datastructures.html#
Mar 10, 2018 12:15
On the other hand, a high-school level of understanding of mathematics, such as "mathematical function" or "mapping", "sets", and a mental model of "memory as post boxes", "named variables as building names used in place of memory addresses", are necessary before you begin writing the first line of code.
Mar 10, 2018 12:13
The four things you named, (namely, "Problem solving, programming concept, algorithms, object oriented programming"), are learned gradually as your programming knowledge grows gradually. They are not strictly prerequisites.
Mar 10, 2018 12:11
To overcome the "meaningfulness doubt", a typical strategy is to be given a conductive learning environment, and a toy software project that is about 90% complete. Once you finish the remaining 10%, the toy software project should give you gratification (such as a playable mini-game), as well as a demonstration of usefulness (such as a toy restaurant ordering system), both of which will remove the doubt.
Mar 10, 2018 12:09
The biggest hurdle to new learners who do not have access to formal computer programming education is the difficulty of accomplishing meaningful goals. Questions such as "I learned a few things, but what can I accomplish with them? What benefit does that bring to myself, and to the world?" will demotivate self-learners.
Mar 10, 2018 12:04
C and C++ tend to be only used in high-performance (or, "performance-cost-sensitive"), deep-integrations with the operating systems, and legacy software systems. Many people who learned C and C++ in schools will eventually land in a career that don't require them at all. Thus, from "return-on-investment" perspective, it is a losing bet, although it can be an enrichment to most software programmers, by giving insight into how lower-level stuff works.
Mar 10, 2018 12:02
@ProhGramar I do not recommend C as a first language. However, there are different theories about what should be the first language.
(1) Foundational approach ("grammar schools and universities"), focusing on step-by-step fundamentals. These will indeed start with C. However, Java is also widely used.
(2) Motivational approach (to showcase "what fun things you could do with computer programming"). Python is the top choice. Alternatively, Java with Mobile development (on Android), Javascript are also popular.
Feb 21, 2018 07:07
What particular algorithm design, programming, and debugging techniques are particularly applicable to geometrical computations, such as e.g. computing the nearest distance from a point to a convex hull, or implementing a rotating calipers algorithm correctly, or a Delaunay triangulation that does not behave unexpectedly?
 
Apr 2, 2018 07:58
I thought it would be nice to share this: occasionally, there will be question on "retro-computer-science", which are questions about the historical development of computing, on the more academic or university-related side. This lecture note (PDF), from Berkeley CS-61C, appears to go over many of those critical developments of computer science, architecture, software, hardware etc: www-inst.eecs.berkeley.edu/~cs61c/fa17/lec/18/…
 

 The Bikeshed

General discussion for opensource.stackexchange.com. Confused ...
Mar 30, 2018 21:14
At present, few people have visited the evolution proposals. What is more important is that some of the proposals require inputs from e.g. C++ experts (such as those involved in ISO C++ process) to give advice, but it's certain that OpenCV wouldn't get their attention.
Mar 30, 2018 21:12
there is not even a proper way to ask anyone to clarify the scope of some of the items. You can post comments, but nobody will answer.
Mar 25, 2018 23:25
How do I ask broad, beginner questions about "community process"? Specifically, referring to github.com/opencv/opencv/wiki/Evolution-Proposals , which is OpenCV's effort to adopt a community process similar to Python Enhancement Proposals and Swift Evolution Proposals (and inspired by similar efforts for Java). The current issue is that currently there are only ideas, there are no processes in place.
 
Oct 12, 2017 12:33
The answer can be improved by explaining the relationship between number of states and number of bits, as it is evident that many readers do not have that prerequisite knowledge. To put it simply, number of states = number of distinct values, whereas number of bits can either mean physically and literally (an array of two-state elements), or information-theoretically (an array of symbols that can potentially form into as many distinct values as needed to store that amount of information equivalent to that many bits).
 
Jul 30, 2017 02:00
We must always be watchful for situations where the cure is worse than the disease. Don't accept every advice without at least some thinking and questioning.
Jul 30, 2017 02:00
(1) Use namespaces, but avoid creating deep interfaces.
(2) Think about why there is a 1:1 between interfaces and their classes. Is it for extensibility, for testing, for both, or just to make the framework happy? If it is for extensibility, who might extend it in the future? Is it going to be only you who will ever be extending it, or will it be someone outside the library? If it is for testing, do you actually need to do it "the interface way", or will an "interposer" work? Or more simply, can you do testing by adding conditionally-compiled code into the actual classes? C# provides modern
 

 The DMZ

A serious place where infosec is discussed PS we don't do hard...
Oct 28, 2016 03:28
SaaS (software as a service) is often touted as a way to "outsource" the EOL problem to someone else.
Oct 28, 2016 03:26
... explanations of the security implications of those vulnerabilities (written in in a way readable by sysadmins), will help sysadmins make an informed choice about what action to take with respect to each EOL component. As you may have guessed, replacing the component may or may not be a practical choice. Thus, mitigations need to be considered. The three guidance you listed can be used as either recommended system configs or mitigations.
Oct 28, 2016 03:24
@Cripto It really depends on what is practical for the application's users. A first step is providing transparency and adequate warnings to the sysadmins. For example, a report that lists all of the software components that exist in an application, along with their versions (and custom code changes if any), and a list of publicly disclosed vulnerabilities that affect those versions, and ...
 
Oct 16, 2016 06:02
Speaking of the monetization, question asker pays exponential; question answerer gets paid logarithmic. The difference (surplus) is used to fund better CS education aimed at students at earlier levels.
Oct 16, 2016 06:00
@CandiedOrange Introduction to data structure and algorithms, typically taught as the 2nd CS course to anyone new to CS.
Oct 16, 2016 05:39
exponential. Q1 = 1 dollar Q2 = 2 dollar Q3 = 4 dollar Q4 = 8 dollar Q5 = 16 dollar
Oct 16, 2016 05:33
have a nice weekend folks
Oct 16, 2016 05:33
(apologies)
Oct 16, 2016 05:33
well I shouldn't use "educators" and "market" on the same sentence.
Oct 16, 2016 05:32
StackExchange need to collaborate with educators and private tutors to find out what the market needs most.
Oct 16, 2016 05:31
For example, a common phenomenon on this site is this: Q1 asked; upon clarifications Q1 mutates into Q2 (while keeping original title), upon more details it mutates into Q3, and so on.
Oct 16, 2016 05:30
I have been arguing that, when the user base has 3 orders of magnitude (thousandfold) difference in skill levels, the assumption that Q&A can have stable questions and answers don't hold. What is needed is a personalized Q&A service, where one pays to ask, one answers to earn. Like Uber/Lyft
Oct 16, 2016 05:27
@CandiedOrange I don't know what to post though. Do we post every slide from Intro to DS&A on P.SE ? (soon to be renamed SE.SE)
Oct 16, 2016 05:25
Oct 16, 2016 05:24
// So getting an item in an arraylist is a constant time? //

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

Next time you can do a Ctrl-F to search on a web page
Oct 16, 2016 05:23
What ArrayList does, when you grow it from a tiny size to a huge size at once, is:
(1) Allocate a new piece of contiguous memory, big enough to hold N values, (or possibly even bigger)
(2) Copy existing values into this new memory
(3) Fill the rest memory with some empty value
(4) Say byebye to the old memory
Oct 16, 2016 05:21
You can also tell an ArrayList to grow its size to some number, N.
Oct 16, 2016 05:21
When populating an ArrayList, sequential is not the only way. Read about Fisher-Yates shuffling algorithm - en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle When it adds a new value, it finds one existing item, and shuffle (swap) it with the new value
Oct 16, 2016 05:20
so, no jumping around involved. When using an ArrayList, CPU doesn't need to visit 0, 1, 2, 3 before giving you the value at 4. However, when you start populating (appending values to the end of) ArrayList, of course you will be writing things sequentially.
Oct 16, 2016 05:18
When you ask to access the element at index 4 on an ArrayList, the CPU does:
(1) Find out where the ArrayList's backing memory is located. Get the starting address.
(2) Calculate the address of item 4, (start + 4 * size of element)
(3) Read the data at that item address, return teh vaalue
Oct 16, 2016 05:16
Btw, the word "List" in "ArrayList" has nothing to do with linked list. ArrayList is not a linked list. In English, a list is a list ... the usual meaning of this word does not refer to a data structure. A better name for ArrayList is just Array. (Funnily, on C#, the equivalent of ArrayList is simply called List. Again, it's all anglo-centric.)
Oct 16, 2016 05:14
Hi ... OP ... sorry I didn't realize you are the OP. I'm sorry for being impolite in my discussions.
Oct 16, 2016 05:12
Or maybe this. People use ArrayList "like an array". You can implement linked list (where a "link" is an index back into somewhere on the ArrayList) on top of ArrayList but if so, any result of discussion will only apply to your implementation, not to ArrayList in general. This is an example of "when a white horse is not a horse" en.wikipedia.org/wiki/When_a_white_horse_is_not_a_horse (i.e. non-equivalence of subset / subtype relationship)
Oct 16, 2016 05:09
But ... since you mentioned "ArrayList" and Java happens to have one, the universe of discourse is on the Java implementation. In this case, ArrayList behaves like an array that knows how to grow.
Oct 16, 2016 05:08
In fact if one implements array-backed linked list (or even noncontiguous array (tree-like with fat nodes) backed linked list) it would require random memory access patterns. The node stored at array index [0] could contain a next index [777], and so on.
Oct 16, 2016 05:07
actually ... please define the layer (analogous to OSI layer) on which your definition of "traverse" is going to operate.
Oct 16, 2016 05:00
define "traverse".