The Big Programming Thread - Page 803
Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
Birdie
New Zealand4438 Posts
| ||
![]()
shz
Germany2686 Posts
Not a complete guide, though :/ | ||
Manit0u
Poland17186 Posts
On November 25 2016 12:15 Birdie wrote: No libraries due to boss saying so basically. Just something to get started with, I've just read https://developers.google.com/web/fundamentals/design-and-ui/responsive/ and found it very helpful so anything along those lines perhaps? Not really sure if there's a "bible" of responsive web design or some standard resource, if there isn't then I can keep potting around on the web reading different resources. So, basically, your boss wants you to implement from scratch something that has already been done, tried and tested. Then spend a bazillion hours fixing and testing it for all kinds of different browsers and devices and then keeping it up to date with changes in those browsers and devices? If you don't have a very good reason to do that - like hitting magic frame count and request round trip sweet spot for mobile devices being absolutely necessary or you trying to enter the market with the product that's going to compete with responsive layout libraries - then it's a very poor business decision if you ask me, because you're wasting precious time and resources on developing something that's already out there. If the libraries are simply too big for your specs you should know that you can trim them down a lot by only including components you'll actually use (bootstrap even has a page where you can customize your download to suit your needs). Anyway, here's some stuff that might help you: http://blog.froont.com/9-basic-principles-of-responsive-web-design/ https://responsivedesign.is/ http://bradfrost.github.io/this-is-responsive/ The last 2 links should have everything you need, with plenty of links to other resources (books, articles, videos) that will teach you what you need to know. Just be aware that there's a lot of it. | ||
Djagulingu
Germany3605 Posts
| ||
Deleted User 3420
24492 Posts
One of the methods I have to define is "getSize" - which returns total number of elements. A requirement of the project is that it is fast. And so I ask, what is to keep me from just defining an int variable "size" that increments whenever an element is added and decrements when one is taken away? Wouldn't that be super quick? | ||
AKnopf
Germany259 Posts
yes, that would make it very fast. But it would slow down the "add" operation (not asymptotically though) How was "fast" defined in the requirement? Edit: On November 24 2016 22:23 Manit0u wrote:
Kill me... The other day I saw my boss write code like this:
Yes, code like this still gets written. And no, he was not trolling, I promise. ![]() | ||
RoomOfMush
1296 Posts
On November 26 2016 01:15 travis wrote: Okay so, I have an assignment where I am making my own HashSet. It's an array of buckets, buckets have linked lists (also self defined, not using premade structures). One of the methods I have to define is "getSize" - which returns total number of elements. A requirement of the project is that it is fast. And so I ask, what is to keep me from just defining an int variable "size" that increments whenever an element is added and decrements when one is taken away? Wouldn't that be super quick? That is probably what you are supposed to do since it is what all implementations in the standard library do. Not all exercises are supposed to be very difficult or challenging. Sometimes its important to understand that trivially simple solutions are the best solutions. | ||
Manit0u
Poland17186 Posts
You could simply return the sum of lengths of each element. That should be pretty fast. If you want it faster then you add overhead on adding elements and doing it as you pointed out, having the property in your hash set to store it in and recalculating it every time something is added to any of the elements. | ||
Deleted User 3420
24492 Posts
On November 26 2016 01:32 Manit0u wrote: Don't all such structures in Java hold their length as a static property anyway? You could simply return the sum of lengths of each element. That should be pretty fast. If you want it faster then you add overhead on adding elements and doing it as you pointed out, having the property in your hash set to store it in and recalculating it every time something is added to any of the elements. My structure is an array of connecting nodes (an arraylist I have to create myself). So I would have to write something to store their length myself. | ||
spinesheath
Germany8679 Posts
Calculating the sum of the size of your buckets is actually fairly slow because ideally you have at most one element per bucket - if the hash is good. | ||
Shield
Bulgaria4824 Posts
Edit: Well, I remember hearing about bits which are in binary. I guess I just didn't put two and two together. | ||
RoomOfMush
1296 Posts
On November 26 2016 02:38 Shield wrote: If you have an integer and you read it as bytes (4 bytes on Windows?), is it in binary mode already? I know binary is 01100110 stuff, but I'm not sure about bytes in this case. I studied Computer Science, but I either forgot or don't know if bytes is still in binary format. Edit: Well, I remember hearing about bits which are in binary. I guess I just didn't put two and two together. How many bytes an integer is has nothing to do with windows. The programming language defines what an integer is. In Java an int (and Integer) is always 4 bytes no matter what. Even on your toaster it would be 4 bytes if your toaster did support java. In C and C++ an integer has the size of a data word native to your CPU-architecture. For most x86 CPU's that would be 4 bytes but it doesnt have to be. "binary" is only a representation for numbers much like decimal or hexadecimal. Any number can be written in binary. Any number can be written in hexadecimal too. Computer really dont care about binary, decimal or hexadecimal. For a computer these things dont exist. They are only important for humans when they attempt to read data from a computer. A bit is simply the smallest data structure that exists. It is effectively a mathematical boolean. A set of bits can be read as a number written in binary but doesnt have to be. Its all about what you make of it. Its just information. | ||
![]()
tofucake
Hyrule18968 Posts
| ||
Shield
Bulgaria4824 Posts
On November 26 2016 03:31 tofucake wrote: Technically everything on a computer is binary... Exactly. That's what I remember from Computer Science as well. I was confused about that part from previous comment. ![]() On November 26 2016 03:24 RoomOfMush wrote: Computer really dont care about binary, decimal or hexadecimal | ||
RoomOfMush
1296 Posts
On November 26 2016 03:31 tofucake wrote: Technically everything on a computer is binary... No that doesnt make any sense. Binary is a representation of numbers. A computer is a complex physical machine. Everything inside it is currents of electricity. Binary is how we humans decided to interprete it as. Its just a number format that is convenient to use. Binary doesnt happen until you enter the software-level. | ||
BluzMan
Russian Federation4235 Posts
On November 26 2016 01:15 travis wrote: Okay so, I have an assignment where I am making my own HashSet. It's an array of buckets, buckets have linked lists (also self defined, not using premade structures). One of the methods I have to define is "getSize" - which returns total number of elements. A requirement of the project is that it is fast. And so I ask, what is to keep me from just defining an int variable "size" that increments whenever an element is added and decrements when one is taken away? Wouldn't that be super quick? Thread safety if you care for it (which you probably don't since implementing concurrent hash maps is really hard). Other than that, nothing. You need to be able to quickly calculate load (which is size/capacity) to make growth/shrinkage decisions on each operation anyway. On November 26 2016 01:44 travis wrote: ok cool thanks guys. they didn't really define fast. Size calculation for a hash table is required to be O(1). Since you have to maintain the upper bound on the load (otherwise guarantees of O(1) on other operations are broken for large data sets), you have to check if you should grow/reallocate your underlying array on each insert. Since size calculation is now a part of the insert, it is too bounded by O(1). | ||
spinesheath
Germany8679 Posts
On November 26 2016 04:54 BluzMan wrote: Thread safety if you care for it (which you probably don't since implementing concurrent hash maps is really hard). Atomic increment/decrement is the least of your problems in that case. | ||
Deleted User 3420
24492 Posts
but I am left with a question are objects that have been declared but not initialized set as "null" in java? I am reading they are but then why does eclipse give me errors when I don't initialize them (it makes me explicitly say that they = null) | ||
RoomOfMush
1296 Posts
On November 26 2016 05:35 travis wrote: ah solved my own problem but I am left with a question are objects that have been declared but not initialized set as "null" in java? I am reading they are but then why does eclipse give me errors when I don't initialize them (it makes me explicitly say that they = null) You never declare objects. You declare variables; they are not the same thing as an object. An object is only created when the "new" keyword is used. That is the only way for an object to ever be. (if we ignore black voodoo magic like TheUnsafe and compiler magic like Boxing / Strings) For example: String a = new String("Hello World"); The above code has 4 variables but only 2 Objects. 2 Variables (a, b) point to the same object. One variable (c) was declared but not initialized; it points to no object at all. This variable is not usable until it is initialized. The last variable (d) is pointing to null which is "no object" in java. Our second Object is created but has no variable pointing to it. We can not do anything with it anymore because we have no reference to work with. Its different with member variables (attributes) though. These are ALWAYS initialized because the Compiler enforces that. A member variable of object type is always initialized with null unless you initialize it with something else. | ||
Acrofales
Spain17831 Posts
On November 26 2016 05:35 travis wrote: ah solved my own problem but I am left with a question are objects that have been declared but not initialized set as "null" in java? I am reading they are but then why does eclipse give me errors when I don't initialize them (it makes me explicitly say that they = null) Was about to answer, but you did it yourself. Not quite sure about the rest. Java changed that shit at some point. It used to be undefined (and effectively initialized to null), and good practice was to initialize them explicitly to null. Then it became explicit for fields (I think in Java 6), and it was unnecessary to initialize fields to null (and you got a warning that that code did nothing... thank you). I have no idea whether variables follow the former or the latter initialization rules. Clearly you are being told to initialize it to null, so it's probably the former. Or you're working with a really old version of Java. | ||
| ||