|
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. |
Yeah. Quite a lot of time is being spent on thinking and research. On a good day you can spend about half your time in work actually writing code.
Speaking of thinking and research, I've had an interesting problem to tackle yesterday: 1. Have uploaded files stored in a secure location 2. Make it possible for them to be served directly by the server (serving large files through your application is not good) 3. Make it impossible to discover where the files are through crawling
So basically, pretty much implement the equivalent of an S3 bucket on your own server.
It took me some time to figure out a sensible solution. What most people do nowadays is that they store the files in the public directory (the only way to really have them served directly), in hashed folders. Then you create a service that periodically rehashes folder and/or file names and moves them around. This is pretty clunky and a total bitch to work with if you store the links in your database (since you have to update all the links whenever you move the files around).
I've managed to discover a nice solution to that from the 90's mp3 sharing websites. Then it was just a matter of making it better 
Basically, files are uploaded to a secure location on the server (not accessible from the outside). Then, when the link to a file is requested, it generates a random folder in the public asset directory (SecureRandom.hex(64)) and creates a symlink to the file inside it. There's a cron set up on the server that scans this directory and removes all folders older than 30min. This way I get public assets served directly by the server with expiring links. I don't have to move the files around, store and update the links etc. Works like a charm.
|
On December 08 2016 06:54 tofucake wrote: I do about 5 hours of coding most days out of an 8.5 hour day. There's an hour for lunch, 15 minute standup, maybe another meeting, and a bunch of googling Mines pretty similar, but probably less time spent on code and more on either pointless mandatory meeting(s) or research/design discussions. Research in my case often involves finding Waldo so he can give you some obscure documentation about a system you're going to be interfacing with.
I'm a government contractor currently on a bad project, if you hadn't guessed. 
Last project was much closer to your day, with more time spent on actual coding and less on time wasters. It's hard to get a feel for an "average" day, since some days you'll be heads down coding all day and others you'll be in and out of meetings or doing a lot of research/googling.
|
Could you recommend a good geometry book? I come across some software problems which require geometry and I'm having a hard time.
|
I stumbled across a spring project, http://projects.spring.io/spring-cloud/
among the features it says:
- Distributed/versioned configuration - Service registration and discovery - Routing - Service-to-service calls - Load balancing - Circuit Breakers - Global locks - Leadership election and cluster state - Distributed messaging
my question is to what field those things are related to? don't say cloud computing because it's the vaguest term ever Are they about "parallel computing" ?
which books on what topic should I read to have an idea about these concepts?
|
It reminds me of distributed systems, so it could be that. Here is a link to Wikipedia: https://en.wikipedia.org/wiki/Distributed_computing
I'm not sure what books to recommend though. I'm not an expert. Distributed systems do not have a specific field exactly. They're a popular topic in Computer Science and in industry.
|
On December 09 2016 07:53 Shield wrote:It reminds me of distributed systems, so it could be that. Here is a link to Wikipedia: https://en.wikipedia.org/wiki/Distributed_computingI'm not sure what books to recommend though. I'm not an expert. Distributed systems do not have a specific field exactly. They're a popular topic in Computer Science and in industry.
just the topic name is very enough thanks 
On December 09 2016 07:14 Shield wrote: Could you recommend a good geometry book? I come across some software problems which require geometry and I'm having a hard time.
is high school euclidean geometry enough or something advanced like linear geometry needed?
|
On December 09 2016 08:25 mantequilla wrote:Show nested quote +On December 09 2016 07:53 Shield wrote:It reminds me of distributed systems, so it could be that. Here is a link to Wikipedia: https://en.wikipedia.org/wiki/Distributed_computingI'm not sure what books to recommend though. I'm not an expert. Distributed systems do not have a specific field exactly. They're a popular topic in Computer Science and in industry. just the topic name is very enough thanks  Show nested quote +On December 09 2016 07:14 Shield wrote: Could you recommend a good geometry book? I come across some software problems which require geometry and I'm having a hard time. is high school euclidean geometry enough or something advanced like linear geometry needed?
I think I should start with something simple like high school geometry. It will refresh my memory and it will be a good foundation before more advanced topics. Do you know any good books or online reading material?
Edit: I have found my Distributed Systems lectures. Lecturer recommended the following book back then, but note that I didn't read it. I just depended on lectures' content.
Andrew S. Tanenbaum, Maarten van Steen Distributed Systems: Principles and Paradigms Amazon: https://www.amazon.co.uk/Distributed-Systems-Principles-Andrew-Tanenbaum/dp/153028175X/ref=sr_1_1?ie=UTF8&qid=1481241043&sr=8-1&keywords=Distributed systems: principles and paradigms
Actually, comments suggest that it is outdated now. Maybe someone could suggest a more modern book.
|
|
|
Any book recommendations for Ruby and/or Rails?
|
On December 09 2016 10:23 Nesserev wrote: Amazon seems to have a lot of good reviews for: Distributed Systems: Concepts and Design - George F. Coulouris, Jean Dollimore, Gordon Blair, Tim Kindberg
EDIT: Speaking of books, just finished 'Expert Python Programming (Second Edition)' by Michal Jaworski and Tarek Ziadé. I would recommend it to anyone who's familiar with Python, but feels like he/she's not fully up-to-snuff with common practices, features, etc. Gonna keep it as a reference book in my desk stack.
Great. Thanks.
|
On December 09 2016 08:46 Shield wrote:Show nested quote +On December 09 2016 08:25 mantequilla wrote:On December 09 2016 07:53 Shield wrote:It reminds me of distributed systems, so it could be that. Here is a link to Wikipedia: https://en.wikipedia.org/wiki/Distributed_computingI'm not sure what books to recommend though. I'm not an expert. Distributed systems do not have a specific field exactly. They're a popular topic in Computer Science and in industry. just the topic name is very enough thanks  On December 09 2016 07:14 Shield wrote: Could you recommend a good geometry book? I come across some software problems which require geometry and I'm having a hard time. is high school euclidean geometry enough or something advanced like linear geometry needed? I think I should start with something simple like high school geometry. It will refresh my memory and it will be a good foundation before more advanced topics. Do you know any good books or online reading material? Edit: I have found my Distributed Systems lectures. Lecturer recommended the following book back then, but note that I didn't read it. I just depended on lectures' content. Andrew S. Tanenbaum, Maarten van Steen Distributed Systems: Principles and Paradigms Amazon: https://www.amazon.co.uk/Distributed-Systems-Principles-Andrew-Tanenbaum/dp/153028175X/ref=sr_1_1?ie=UTF8&qid=1481241043&sr=8-1&keywords=Distributed systems: principles and paradigmsActually, comments suggest that it is outdated now. Maybe someone could suggest a more modern book.
My Distributed Systems lecturer taught things outside of the book but the recommended text was also Tanenbaum, I remember the name.
On December 08 2016 04:07 BluzMan wrote: Quick question to those already in the industry: do you really (the truth now!) write comments in your code? All the open source libraries have these docstrings and fancy annotations, but does your actual production code not meant for public eyes have any?
Every workplace has different standards, but the sanest reason I can recall to always have comments is that all public interfaces have to be documented. Our system relied on a lot of dependency injection, which meant that you could use a service anywhere in the code. So to make sure anyone who used the service would know what you intended it to do, you would document it. This meant documenting expected events to listen for on the event bus, supported range of inputs to the method, what exactly was starting or stopping or connecting or disconnecting, how that lifecycle was intended to be used, what the class was used for, etc. Implementing the interface would be a lot more self-documenting, AbstractBleConnection into ConcreteBleConnection, etc., but it was also expected to document some hairier parts, if only at the top of the file. Specific design decisions for the change should go in the git commit message if they didn't fit elsewhere.
On December 08 2016 06:45 Chocolate wrote: What does a day at work look like for you guys? I'm interviewing at some places and trying to figure out what to expect or look for. I did see a prototypical intern schedule somewhere that was like "arrive at 8 am, brush up on work, eat breakfast" and then some more stuff and then "6pm, go to company event with mentors" and I knew to stay the fuck away.
But like what do you do in a day? How much coding (both in terms of time and amount of code written, not lines but functionality) actually gets done? This past summer I was more of a glorified sysadmin (and it was in a research setting too...) than anything so I didn't really get to write very much.
The prototypical intern schedule I've had was more like, arrive at 9-1030 before the first meeting or stand-up in the day, work on something until lunch, lunch, potentially a random meeting, work until end of day at 6-7 depending on when you showed up. And by work I mean like, coding, googling, talking to other interns, asking people for help, organizing your tasks. Granted I interned at Microsoft as well, and Microsoft a bit more than other big name companies don't expect interns to be productive until 6 months after they start, which is obviously more than the length of the internship, so intern expectations are lower, but that's why they also really love returning interns.
|
I think im confusing myself pretty hard right now
I have an array of linked lists
my linked lists have nodes, defined in an inner class. here is it's constructor
node(T data) { this.data = data; next = null; tail = this; }
When I add an element to an index I do:
if(array[index] == null) { array[index] = new Node<T>(element); } else { array[index].tail.next = new Node<T>(element); array[index].tail = array[index].tail.next; }
I think this is working for putting 2 elements into an index. But I think when I put a 3rd element into an index, it overwrites the 2nd element. I don't understand why, though..
edit:
geeze, I type this out and instantly solve my problem. I wasn't doing array[index].tail = array[index].tail.next; when I was resizing my array (if it got too full).
Rubber ducky debugging or w/e it's called really works lol
|
I hope that code is for an assignment, because if you write code like that for production then oh boy are you in trouble.
|
It's for an assignment and that's not the actual code anyways
like, that's not the naming and formatting
|
always try to "push the logic down" and meditate on encapsulation...
like I hate the things:
if(product.price == null || product.price == 0)
say insted
if(product.isFree())
how do you guys preserve space (indentation) when posting code here??
|
On December 11 2016 08:16 mantequilla wrote: how do you guys preserve space (indentation) when posting code here??
There are code tags in bulletin board code. [.code] [./code]
|
United Kingdom14103 Posts
im producing TAC from the C compiler im working on but im not sure whether the way ive implemented things is overly complicated compared to what it needs to be, does the following seem to be that way?
for my sample program im using :
void main() { int x = 1; return x; }
and the output TAC i get is:
load t0 1 load x t0 load t1 x ret t1
my implementation of TAC functions like this: [OPCODE] [DESTINATION] [OPERAND1] [OPERAND2]
tX are temporary registers, 'x' is the variable x, load loads operand1 into destination, ret returns
distributed/parallel books i was recommended at the start of my parallel course:
+ Show Spoiler +"Highly Parallel Programming", Almasi & Gottlieb, Benjamin Cummings "Computer Architecture and Parallel Processing", Hwang & Briggs, McGraw-Hill "Concurrent Programming Principles and Practice", Andrews, Benjamin Cummings "Introduction to Parallel Computing", Kumar, Grama, Gupta, Karypis, Benjamin Cummings "Concurrent Programming", Burns & Davies, Addison-Wesley "Designing and Building Parallel Programs", Foster, Addison Wesley "Distributed Algorithms", Lynch, Morgan Kaufmann "Concurrency: State Models & Java Programs" Magee and Kramer, Wiley "Introduction to High-Performance Scientific Computing" Eijkhout "Principles of Concurrent and Distributed Programming", Ben-Ari, Prentice Hall "Communicating Sequential Processes", Hoare, Prentice Hall
idk if that helps
|
On December 11 2016 08:16 mantequilla wrote:always try to "push the logic down" and meditate on encapsulation... like I hate the things: say insted how do you guys preserve space (indentation) when posting code here??
No. Those are two different things. You should then do:
if(!product.hasPrice() || product.isFree())
and that's just dumb. Perfectly okay to use actual logic clauses, as long as it is a fairly clear case.
And for code, use code tags. It says so in the header of this thread...
|
edit:
figured it out
rubber ducky debugging is the truth
|
|
|
|