|
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. |
On July 19 2017 10:02 dsyxelic wrote: can anyone help a c noob? -- say there is a text file with a string, say "abcdefghijk"
read in that file and delete a substring from it (have file update the new string) -- is there a very simple way to do this?
so far all I got is fopen with the r+ mode and fgetc which doesn't seem to be what i'm looking for..
any easy to read resource or pointers(heh) for the best approach would be greatly appreciated. I've only gotten around to parsing individual strings from file or going by each character, but not substrings :/
The easiest way is: read the entire file into a string, delete the substring you want, and replace the file with the new string.
|
|
Not exactly programming but webdev:
I have a personal website for my CV etc. I made with HTML5, CSS and JS.
Now I want to apply internationally and I'm trying to figure out how to more elegantly switch languages on my site. Thus far, I just copied the entire HTML file and replaced the German text with the English one, and the CSS and JS files linked to either one. Is there a more elegant solution to this?
|
On July 31 2017 19:47 Six.Strings wrote: Not exactly programming but webdev:
I have a personal website for my CV etc. I made with HTML5, CSS and JS.
Now I want to apply internationally and I'm trying to figure out how to more elegantly switch languages on my site. Thus far, I just copied the entire HTML file and replaced the German text with the English one, and the CSS and JS files linked to either one. Is there a more elegant solution to this?
Are you using any backend? Any framework at all? Those usually come with such features built-in.
If you want to build it from scratch, then just load translations with JS.
1. Create button(s) to select language, all they should really do is just change a variable/cookie or whatever else where your store your language setting. 2. Create your translation files. YAML is amazing for this. 3. Create translation function using. Usually, this looks something like this:
var text = translate('some.property');
4. Use this function instead of regular text in your views.
Sample:
# locales/en.yml messages: welcome: 'Welcome!'
# locales/de.yml messages: welcome: 'Wilkommen!'
# my.js const yaml = require('js-yaml'); const fs = require('fs');
try { const translations = yaml.safeLoad(fs.readFileSync(locale + '.yml', 'utf8')); } catch (e) { console.error(e); }
function translate(key) { return getMessageByKey(translations, key); }
function getMessageByKey(obj, key) { if (!key) { return obj; }
var prop, props = key.split('.');
for (var i = 0, len = props.length - 1; i < len; i++) { prop = props[i];
var candidate = obj[prop];
if (candidate !== undefined) { obj = candidate; } else { break; } }
return obj[props[i]]; }
Or, you could just use this: http://www.openxrest.com/translatejs/
|
# ******** # * * # * **** * # * * * * # * * * * # * * ** * # * * * # * ****** # 8x8 example def spiral(rows, cols): #print out a spiral similar to the one above given rows and cols #can be a rectangle too
so this is a question I found off a mock interview and I've been stuck on it. Any ideas?
Also sorry for the ugly spiral up there, tried to format it so that it looks normal but eh.. looked fine on notepad and my ide so must be something with the spacing here
Edit: ok the spiral got destroyed lol, if it ppl dont get what it should look like ill upload a pic when i get home.
Basically must have empty spaces around it besides the box it came from and is going to
|
# ******** # * * # * **** * # * * * * # * * * * # * * ** * # * * * # * ******
Something like this?
|
Use the [code] tag to get that kind of formatting.
|
On August 04 2017 04:58 Blisse wrote: # ******** # * * # * **** * # * * * * # * * * * # * * ** * # * * * # * ******
Something like this?
yes exactly
|
Kinda ugly, but it works.
def spiral(rows, cols): matrix = [[' ' for _ in range(cols)] for _ in range(rows)] dimensions = [rows, cols] pos = [rows - 1, 0] direction = [-1, 0] k = 0 i = 0 while True: t = 0 while (pos[i % 2] >= k or i in [1, 2]) and \ (pos[i % 2] < dimensions[i % 2] - k or i in [0, 3]): t += 1 matrix[pos[0]][pos[1]] = "*" pos[0] += direction[0] pos[1] += direction[1] if t <= 2: break pos[0] -= direction[0] pos[1] -= direction[1] direction = [direction[1], -direction[0]] i = (i + 1) % 4 if i == 3: k += 2 for row in matrix: print(''.join(row))
edit: didnt work. Now it does :D
|
oh wow nice
besides an infinite loop in some test cases its generally pretty working
i have a hard time understanding your solution though, how does it work?
|
|
On August 04 2017 11:47 dsyxelic wrote: oh wow nice
besides an infinite loop in some test cases its generally pretty working
i have a hard time understanding your solution though, how does it work?
Damn, on what test cases does it get stuck?
Anyway, it simply starts in the bottom left corner, with direction up, and starts replacing cells with a '*' and advancing until its k cells away from the border, at which points it turns clockwise. In the first loop k=0, and in every loop of the spiral k increases by 2. When a side of the spiral has a length shorter than 2, it stops (as turning and printing would mess up the spiral).
|
How about:
def spiral(x, y): if x <= 0 or y <= 0: return myspiral = [[0 for i in range(0, y)] for j in range(0, x)] draw_outer(x, y, myspiral) left_spiral(x - 2, y - 2, myspiral, x - 1, y - 1) print_spiral(myspiral);
def left_spiral(x, y, myspiral, posx, posy): if x <= 0: return posx = draw_left(x, myspiral, posx, posy) if y <= 0: return posy = draw_up(y, myspiral, posx, posy)
right_spiral(x - 2, y - 2, myspiral, posx, posy) def right_spiral(x, y, myspiral, posx, posy): if x <= 0: return posx = draw_right(x, myspiral, posx, posy) if y <= 0: return posy = draw_down(y, myspiral, posx, posy) left_spiral(x - 2, y - 2, myspiral, posx, posy)
def draw_outer(x, y, myspiral): posy = draw_up(y, myspiral, 0, y-1) posx = draw_right(x, myspiral, 0, posy) draw_down(y, myspiral, posx, posy)
def draw_down(y, myspiral, posx, posy): for i in range(0, y): myspiral[posx][posy + i] = 1; return posy + y - 1;
def draw_up(y, myspiral, posx, posy): for i in range(0, y): myspiral[posx][posy - i] = 1; return posy - y + 1;
def draw_right(x, myspiral, posx, posy): for i in range(0, x): myspiral[posx + i][posy] = 1; return posx + x - 1;
def draw_left(x, myspiral, posx, posy): for i in range(0, x): myspiral[posx - i][posy] = 1; return posx - x + 1;
def print_spiral(myspiral): transposed = list(map(list, zip(*myspiral))) for row in transposed: rowstr = "" for cell in row: if cell > 0: rowstr += "X" else: rowstr += " " print rowstr
It's a bit verbose and would be a lot neater by making it object oriented, but I couldn't be bothered. I wasn't sure what the last little bit should look like, so left the guards at <= 0. Can be changed to <= 1 if a 2x2 square is never a desired outcome.
|
On August 05 2017 01:50 Deckard.666 wrote:Show nested quote +On August 04 2017 11:47 dsyxelic wrote: oh wow nice
besides an infinite loop in some test cases its generally pretty working
i have a hard time understanding your solution though, how does it work? Damn, on what test cases does it get stuck? Anyway, it simply starts in the bottom left corner, with direction up, and starts replacing cells with a '*' and advancing until its k cells away from the border, at which points it turns clockwise. In the first loop k=0, and in every loop of the spiral k increases by 2. When a side of the spiral has a length shorter than 2, it stops (as turning and printing would mess up the spiral).
Nvm haha it was my ide bugging out, my bad.
Ah I see that makes sense. For reference this was asked in a mock for a new grad. The guy couldn't get it tho and the interviewer didnt give the solution so was wondering how to do it.
|
Terminology question: I have some Distributed Matrix class, and I'm looking for good terms to describe all the "extra/background data" and the "core data". core data = all the (distributed) Matrix entries, so basically the Matrix itself extra/background data = all the data how the data is distributed, which threads contains what etc, some central quick access information (like matrix size etc)
I'm kinda sure there is some common terminology for this, but I simply can't find it .
PS: The real class is actually containing more than just a distributed Matrix, but is actually a collection of a few vectors Matrices etc, which for computational reasons are distributed in some special way, so "Matrix data" doesn't really work for "core data"
|
On August 09 2017 00:36 mahrgell wrote:Terminology question: I have some Distributed Matrix class, and I'm looking for good terms to describe all the "extra/background data" and the "core data". core data = all the (distributed) Matrix entries, so basically the Matrix itself extra/background data = all the data how the data is distributed, which threads contains what etc, some central quick access information (like matrix size etc) I'm kinda sure there is some common terminology for this, but I simply can't find it  . PS: The real class is actually containing more than just a distributed Matrix, but is actually a collection of a few vectors Matrices etc, which for computational reasons are distributed in some special way, so "Matrix data" doesn't really work for "core data"
Usually data about data is called metadata. So you're matrix information is your data, and the information saying where certain parts of the matrix are located would be metadata.
|
On August 09 2017 02:06 dekibeki wrote:Show nested quote +On August 09 2017 00:36 mahrgell wrote:Terminology question: I have some Distributed Matrix class, and I'm looking for good terms to describe all the "extra/background data" and the "core data". core data = all the (distributed) Matrix entries, so basically the Matrix itself extra/background data = all the data how the data is distributed, which threads contains what etc, some central quick access information (like matrix size etc) I'm kinda sure there is some common terminology for this, but I simply can't find it  . PS: The real class is actually containing more than just a distributed Matrix, but is actually a collection of a few vectors Matrices etc, which for computational reasons are distributed in some special way, so "Matrix data" doesn't really work for "core data" Usually data about data is called metadata. So you're matrix information is your data, and the information saying where certain parts of the matrix are located would be metadata.
Thanks... that was exactly what I was looking for. Perfect.
|
If you were to pick an answer to this question at random, what would be the chance of picking the right one? a) 25% b) 50% c) 60% d) 25%
Edit: Damn, I forgot we have the math thread now...
|
On August 09 2017 08:04 Manit0u wrote: If you were to pick an answer to this question at random, what would be the chance of picking the right one? a) 25% b) 50% c) 60% d) 25%
Edit: Damn, I forgot we have the math thread now... Aren't you a funny guy...
|
On August 09 2017 08:04 Manit0u wrote: If you were to pick an answer to this question at random, what would be the chance of picking the right one?
Ill defined question. Wtf does "right one" mean?
|
|
|
|