[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

/dpt/ - Daily Programming Thread

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 317
Thread images: 15

Previous thread: >>58990531

What are you working on, /g/?
>>
File: random.webm (2MB, 700x560px) Image search: [Google]
random.webm
2MB, 700x560px
So yeah, I've made a prng.
>>
>>58994765
nice, you should now have rogue numbers (maybe numbers with the minus sign) to run away from
>>
>>58994655
Why does the size N give me garbage when I try to output it when I gave it a parameter of 9?
template <typename T, size_t N>
Fixed_Array <T, N>::Fixed_Array (T fill)
{
this->cur_size_ = N;
this->data_ = new T[cur_size_];
for (int i = 0; i < this->cur_size_; i++)
{
this->data_[i] = fill;
}
}
>>
>>58994655
I'm working on initiating connections and different connection types for my decentralized TV system.

What's the best, most reliable, way of getting global IP addresses. I'm using checkip.dyndns.com, but that isn't reliable (and not too elegant)

>>58994765
Looks pretty dank m8, source code?
>>
What's the point of const if the data type I'm going to declare is mutable by default?
>>
Hey guys, I'm writing a method for a chess board that checks if a piece is obstructing a move or attack move between two points. Am I just over-complicating it here?
    public boolean isBlocked(Position pos1, Position pos2) {

//Determine if pos1 or pos2 is closer to 0,0
boolean pos1close = false;
if(pos1.getX() < pos2.getX())
pos1close = true;
else if(pos1.getY() < pos2.getY())
pos1close = true;

//Set point 1 and point 2
int x1 = (pos1close ? pos1.getX() : pos2.getX());
int y1 = (pos1close ? pos1.getY() : pos2.getY());

int x2 = (pos1close ? pos2.getX() : pos1.getX());
int y2 = (pos1close ? pos2.getY() : pos1.getY());

/**
* Number of cells is one less the difference between the two points
* on any axis (this will only ever need to check two perfectly diagonal
* points or along one axis)
*/
int checks = Math.max(x2 - x1 - 1, y2 - y1 - 1);

//Determine if we need to traverse x, y, or both cells in our check
boolean checkX = x1 != x2;
boolean checkY = y1 != y2;

//check each cell between the two points, return true if any are occupied
for(int i = 0; i < checks; ++i) {
//Positions are r/c (y/x). Only traverse x/y if they differ between points
if(pos[y1 + (checkY ? i : 0)][x1 + (checkX ? i : 0)].isOccupied())
return true;
} //end for

return false;

} //end isBlocked()

Thanks. And inb4 <javo
>>
>>58994655
Wageslave here, what programming language should I learn that I can be self employed?
>>
Reminder that non-memory managed languages are for niche uses. Most of the time, garbage collection is and should be the norm.
>>
>>58994655
Do your job you fucking nigger mods. I know you dont have jobs but other do
>>
>>58994849
You can pass variables in template brackets?
>>
>>58994950
What do you mean? Everything is mutable by default if you specifiy const.
>>
>>58995006
Memory management really isn't as hard as people make it out to be. Don't be a cuck, write performant code.
>>
>>58995020
You can pass compile-time constants - this is how std::array works. Speaking of which, the anon you replied to should just use std::array and std::fill to do what he needs to do.
>>
File: Thanks mr shark internet.png (273KB, 620x700px) Image search: [Google]
Thanks mr shark internet.png
273KB, 620x700px
>>58994994
Fuck dood just go with Java, that's the most marketable one at least

or maybe make some websites with html/javascript or maybe PHP if you're suicidal

thanks mr shark
>>
>>58995020
Yes but it's sloppy

>>58994849
Just pass in N as a constructor argument
>>
What does /dpt/ think of java?
>>
>>58994945
>>58994782
It was done in like a couple of hours to learn CLOS/ncurses and is totally crap, but here you go.
https://gitlab.com/rogue_test/rogue-test/commit/0164055a2daa403e4d8365c898524a8436ca1ccf
>>
>>58995038
meant if you don't specifiy const, of course.
>>
>>58995072
/dpt/ hates and likes every language, do some research on it yourself because this thread is just another circlejerk on the internet
>>
>>58995039
"Don't be a cuck" is fine for toy uses, but if you want to write large, networked applications it falls apart. Java is god.
>>
>>58995072
It's terrible.
>>
>>58995072
1. Widespread.
2. Easy to learn.
3. Tends to be used in larger shops when compared to say C#, so you get more interesting problem domains.
4. GREAT ecosystem. Libraries for practically everything.
5. Fast (compared to anything but C).

That being said, the language itself is basically shit. I'd say learn it though.
>>
>>58995090
thats a funny way to say you struggle to write large apps with decent memory management anon
>>
>>58995090
make it a class (it is in Java anyways)
write a destructor
done
>>
>>58995139
that's a funny way to say you've never seen the inside of a large app.
>>
>>58995159
yep, I look inside it's code, not the app itself..
>>
>>58995072
It along with C++ are two of the most lucrative languages to know. They're not particularly hard but you might find most /g/ users, lacking the necessary intelligence, do nothing but shit on them.

And yet that's the only time you're gonna see people shitting on these languages, because they're completely fine.

learn it
>>
>>58995221
>completely fine
I think you should learn them because they're so big, but the languages themselves are not fine
>>
>>58995090
>implying large networked applications fall apart if they are written in C
only if the developers are retarded
>>
>>58995237
fine enough to make careers off of

What's wrong with them, and how does it affect using the language for its desired purpose?
>>
>>58995090
>but if you want to write large, networked applications it falls apart
Any examples or do you enjoy making things up
>>
>>58995069
thanks mr shark
>>
>>58995270
>Any examples of C++ programs with horribly-mangled, runaway memory management?
Perhaps you should phrase your question differently because I can think of plenty. Windows ME comes to mind.

Which I guess we don't know was made mostly with C++ but what else would it be made of?
>>
>>58995254
because the language and learning resources surrounding it encourage shitty practices. also state
>>
>>58994984
Anyone?
>>
redpill me on C

I don't get all the hullabaloo. What makes it so great?
>>
What's the point of doing

typedef struct Foo {
(...)
} Foo;


instead of this?

typedef struct {
(...)
} Foo;


The latter seems to work but most code I saw used the former. Why?
>>
>>58995340
Latter cannot be forward-declared, apparently.
>>
>>58995321
What shitty practices?
>also state
Be more specific.

You probably can't, because there's nothing practically wrong with them. Jesus Christ, where do you guys even get this idea?

In my 4 years of university learning programming and my 2 years on the job, I've never heard anyone of authority or knowledge criticize Java or C++ in the same way that you guys do. What's the secret?
>>
>>58995337
manual vs auto transmission cars, how many race cars do you know to possess an auto one?
>>
>>58995340
In old C, the former allowed you to use "Foo" instead of "struct Foo", but I think that got changed at some point. Basically, there once was a time where if you didn't do that typedef, you'd have to repeat the keyword struct everytime you want to use it. Not sure though.
>>
>>58995337
With these unemployed NEETs, they like to feel in control due to their inability to feel that way in their life.

Aside from writing assembly, C offers the most direct control over your system when compared to all other programming languages.

This makes it extremely good for writing drivers, firmware, and software that directly or at least closely interfaces with hardware. Unfortunately, it lacks some other elements which make it less than optimal for other tasks, where other languages like Java, C++, and Python shine
>>
>>58995386
>he doesnt have a firmware / network app job in C paying 6 figures a year
poor dude
>>
>>58995340
Compatibility reasons. So both "struct Foo foo;" and "Foo foo;" work.
>>
>>58995363
gotcha

If you're not doing OS or other stuff where you really want that optimization is it even worth over using C++
What I mean is, where would you say the threshold of cost/benefit is with regards to what you're developing and if it's worth using OOP or not
>>
>>58995363
so we race when we program?
>>
>>58995406
In my experience OOP and templating and all those features made programming harder rather than easier for me, but if you're making some ping app or some doodle app then of course you aren't going to use C. You use to write serious performance-driven applications (i.e libwebsocket servers that can serve 100k people at once on a quad core ARM processor like libwebsockets)
>>
>>58995401
I have a software engineering job for embedded systems, and i'll be making 6 figures in the next couple years
>>
i am trying to write a regular expression that matches any non-defined escape sequence.
the escape sequences allowed are:
ESCAPE_SEQUENCES = \f \n \r \t \\ \"


my solution:
\'(\\\\|\\\'|\\\"|\\n|\\t|[^\\\'\n]|\\)*\\*[^\'\n]*

:: puts("Sorry. but that escape sequence is not allowed!")


can someone give me feedback?
>>
>>58995402
Isn't it better to allow less ambiguity and only refer to something with one name?
>>
>>58995425
whereas you'd earn 5 or less if you were a java / webdev code monkey
>>58995410
you race when the program runs. racing cars take time to build, just like C apps. but race cars get you 6-7 figures and all the bitches while economy cars get you a fat wife and a shitty studio apartment in manhattan
>>
>>58995363
Race cars don't use traditional manuals either, they use sequentials which simplify the gear shifting and don't allow direct gear control. Only "enthusiasts" and foul-weather truckers use pure manual.
>>
>>58995436
Welcome to the number one complaint programmers have with C++. And a couple features of C, but mostly C++. Backwards compatibility is a bitch.
>>
>>58995421
have you contributed a single line of C code to programs that people use every day?

>>58995406
OOP programming is worth it in every situation but a few. If the guy above can't understand it that's his fault. OOP makes seriously developing on software in a team (read: career environment") infinitely easier, not to mention the re-usability, readability, and convenience it offers.
>>
>>58995410
>so we race when we program?
precisely
>>
>>58995451
I actually contributed to plenty of GTK apps and to libwebsockets, but dont get discouraged, one day you might be a programmer as competent as me if you work hard.
>>
>>58995439
I personally know many java developers that make 6 figures. I'm about to be using almost exclusively C++.

You get paid on ability, not on language. C++ and Java and Python all make more money than C on average.
>>
>>58995451
>OOP makes seriously developing on software in a team (read: career environment") infinitely easier, not to mention the re-usability, readability, and convenience it offers.
so basically you're saying you like OOP because you find reading code in the language of your choice difficult and struggle to manage your objects yourself, lol
>>
>>58995467
>GTK apps and to libwebsockets
LMFAO
Don't get discouraged, one day you might be a programmer that makes money, like me.
>>
>>58995484
>he doesnt know about FOSS funding and what libwebsockets devs get paid to do
Dont get discouraged, one day you might be a programmer that makes real money, like me
>>
22 files changed, 1260 insertions(+), 95 deletions(-)

today was a good day
>>
>>58995478
No, you're putting words in his mouth. Very few non-toy projects are one-man shows. Enforcing encapsulation makes such projects viable even with large teams of less then perfect programmers.

tl;dr: OOP is a software engineering thing more than a compsci thing
>>
>>58995478
you've clearly never worked on a team developing software

>>58994984
fairly solid code. You could probably get rid of a few conditionals if you instead just used a conditional in the increment clause of the for loop: (pos1close ? ++i : --i)
>>
>>58995497
with 95 insertions and 1260 deletions it would have been a great day
>>
>>58995509
I've never worked in a team of incompetent people yeah, enjoy being happy about your 5 figures a year while Qualcomm pays us 250k to write chat apps lel
>>58995508
not really, top most important projects are written in C while those of lower priority are being written in meme languages such as Java, and even those are moving to the lower level right now.
>>
>>58995340
The former violates DRY so I don't ever use it unless I'm contributing to an existing project which does.
>>
>>58995547
Top most important projects are a tiny minority of projects with very few programmers working on them.
>>
>>58995070
not idiomatic grandpa
>>
>>58995568
Not everyone settles for the bottom tho
>>
>>58995549
>he former violates DRY

it doesn't really, "struct Foo" and "Foo" are distinct and independent

you can do "typedef struct Foo_t Foo" if it pleases your autism
>>
>>58995359
idealism is fun when you arent on the hook for anything
>>
>>58995547
And I write programs in pythons of simple arithmetic operations (+, -, /, *) for 1.2m a year

talk again when you're in the 7 figures
>>
>>58995669
I write infinite compilers of compilers for infinite money
>>
>>58995072
literally the best language along with C++

inb4 permavirgin haskell retards shit on java and/or C++
>>
Why is do ... while relatively rarely used compared to for and while loops?
>>
>>58995844
How do you know it is?
>>
>>58995860
Through having seen a lot of code in my life.
>>
>>58995844
Because it's redundant.
>>
>>58995844
I've used a few times for printing menus
>>
>>58995915
>anecdote
Dropped.
>>
>>58994655
wtf this thread has no picture.
>>
>>58995987
it was a gif of helper pepe hitting a scantily-clothed anime girl's red ass with a fly swatter
>>
File: 128230560833.jpg (183KB, 640x480px) Image search: [Google]
128230560833.jpg
183KB, 640x480px
>>58995072
java is the cutest language
>>
>>58995987
hownew.ru
>>
>>58995291

can you rewrite this without using goto?
>>
>>58996057
use recursion?
>>
>>58995072
>Python has better libraries
>C is faster
>Javascript is more portable

The only reason why you would voluntarily use java is if you want to witness the soul-sucking experience of COBOL made for the 21st century.
>>
File: 3.jpg (181KB, 1600x1066px) Image search: [Google]
3.jpg
181KB, 1600x1066px
how would you write a regular expression to match this number?

In java, this number 1_0_0_0_0 is the same as 10000. (the underscores are used for readability)

i'm trying to write a regex that matches this number

i tried
[1-9]_[0-9]


but its not matching

please, keep in mind that

52_ is invalid
5_______2 is valid (in this case it would represent 52)

i'm not taking into account octal numbers so, i'm not starting my regex from 0
>>
>>58996175
impossible to use only regex for this
>>
>>58996187
how come?
>>
>>58996212
regex is only good for parsing html.
>>
>>58996212
hold on do you want it to just match the string?
then

[1-9]+_*([0-9]_*)*

may work fine

but regex will be unable to return only the digits.
you could always remove those after getting the match, though.
>>
>>58996175
Didn't someone answer this question yesterday?

try
[1-9]_*[0-9]
or
[1-9]*_[0-9]


Pretty sure it's the first one that would work. If the "+" symbol does what I think it does, replace the star with that. It should be 1 or more underscores. Or it won't work and I'm retarded.
>>
>>58996247
>[1-9]*_[0-9]
this doesn't match 100_00_000, for example

>[1-9]_*[0-9]
doesn't work either, 100_00_000_0_2_2,, for example

>>58996246
this might work. thanks
>>
>>58996281
>this might work. thanks
change it to this

[1-9]+_*([0-9]_*)*[0-9]


to disallow a trailing _, but i dont think that is necessary
>>
>>58996281
Oops, misread your requirements.
>>
>>58996300
no problem, mate

>>58996289
thanks again.

why did you add [0-9] at the end?

is there a string that would not be matched by the first expression you wrote, but matched by the second?
>>
>>58996321
>why did you add [0-9] at the end?
to ensure it terminates with a digit, rather than a _
>>
>>58996329
yeah, because ending with a _ is invalid.

makes sense
>>
Trying to organize my objects properly.


I have a "container" file object that is basically an interface to opening a zip-like file

Container.Open("blah.container")

and I want to be able to just read files from this container

should the "Container" have a "current file" context?
like Container.SetCurrentFile("/foldername/filename.txt")
Container.seek(0xbeef)
Container.read(0xbeef)

or should I have it produce some "ContainerEntry" type that stores a reference to the parent "Container" object

Entry Ent = Container.GetEntry("/filename.txt")
Ent.seek(0xbeef)
Ent.read(0xbeef)

What would GetEntry return if the file didnt exist?

would I be using a weak_ptr within the Entry type to point to the Container file that produced it?

Does the Entry-Type set "Container" as its friend class and hide its constructor so that "Container" is the only thing that can produce Entry instances?

Hell any resources involving knowing when to use certain OOP patterns in certain situations would help.

I always hear about the patterns but I never see proper case-studies of them being put to use.
>>
Writing a simplified logger library for fun

no fancy handlers or formatters
>>
I understand data structures, I understand control flow and how to implement loops and which types, I understand sorting algorithms. But I'm still a massive noob programmer thats only taken classes at my uni.

How much do I need to do to be able to get hired by next year in some sort of entry level programming job?
>>
>>58996411
Like internship?

Data structures is enough. Odds are you'll be doing QA your first one.
>>
>>58995401
Who's paying the most these days for C/Asm work? I got an offer from IBM for optimizing bytecode which was decent, but curious what other places are paying these days. I know Netflix pays a ridiculous $300k+ but I'd rather not live in Hollywood at their new shitty office.
>>
>>58996430
well I graduate in a year so I was hoping a real job. I'm trying to get an internship now but the money situation is a bit tight so it might not work out.
>>
>>58995669
1.2m Rupees per year for writing "pythons" is pretty good salary in India
>>
Python 3 learner here
Doing a class which will represent a Circle, already made a class that represents a point and the ultimate objective of this is to detect if a point is inside the circle, but this is not what i'm having problem with, in the class, i'm adding a equation method that should print the equation of the requested circle
    def equation(self):
if self.x != 0 and self.y != 0:
if self.x > 0:
a = "-"
else:
a = "+"
if self.y > 0:
b = "-"
else:
a = "+"
return "(x %s %s)^2 + (y %s %s)^2 = %s" % (a,self.x,b,self.y,(radius**2))
if self.x == 0 and self.y == 0: return "x^2 + y^2 = %s" % (radius**2)
def __str__(self):
return "Circle of radius %s" % (self.radius)

but when i put it to print it come out like this
a = Circle(6,2,4)
print(a.equation)
><bound method Circle.equation of <__main__.Circle object at 0x0337D870>>

As you can see it types that.
Dont know why it's happening, please help.
Also I already wrote something similar and it works
    def __str__(self):
return "Circle of radius %s" % (self.radius)

That prints out fine.
Also you see that streak of if else if else?
My head is telling me there is way to make that shorter but I can't remember one.
Hope i didn't fuck the code
>>
>>58996619
You're trying to print out the function itself but you're not calling it.

Replace that with:
print(a.equation())


Notice the extra parens.
>>
>>58996619
write
a.equation()

instead.

you have to invoke the method by placing parens after the method name
>>
>>58996640
>>58996642
Oh fuck totally forgot about that, thanks guys
Also anyone knows something to replace that ugly if else if else streak?
>>
>>58996663
elif = else if in other langs

also switch blocks
>>
File: AHHHHHHREEEEEEEEEEEEEEEEEE.jpg (60KB, 700x700px) Image search: [Google]
AHHHHHHREEEEEEEEEEEEEEEEEE.jpg
60KB, 700x700px
>show me code my man
>get hazed by senior programmers
>"smdh anon"
>tell me whats wrong
>fix stuff
>I'm growing stronger

>show me some code my man
>just laugh my shit up senpai
>shows others
>they laugh too
>"smdh anon"
>show me how to fix problems
>fix code
>proud

>show me some code my man
>my man
>my man... (ha ha ha ha)
>MY MAN
>wake up
>its a dream

They're only trying to m-make me better.
>>
regex guy here again

so i have defined integer as
INTEGER [1-9]+_*([0-9]_*)*[0-9]
ID [a-z]|[A-Z]|"_"

the thing is, when i parse the string
3_0_0_1_1_1_999_

it yields
INTEGER(3_0_0_1_1_1_999)
ID(_)


and it should throw an error, because numeric literals ending in underscore are invalid

it stops reading at the underscore for some reason
>>
>>58996663
disregard >>58996694

Just learned that python doesn't have switches
>>
>>58996703
Why not just make some sort of tokenizer and verify the grammar in a simple way instead of coming up with weird ass regexp?
>>
>>58996351
plz respond
>>
>>58996663
>Also anyone knows something to replace that ugly if else if else streak?

use a method to format the components of the expression instead of trying to format the whole thing at once:
def format_linear(variable, constant, parens=True):
if constant == 0:
return variable

if parens:
return '({} {} {})'.format(variable, '-' if constant < 0 else '+', abs(constant))

return '{} {} {}'.format(variable, '-' if constant < 0 else '+', abs(constant))

def equation(self):
if self.x == 0 and self.y == 0:
return 'x^2 + y^2 = {}'.format(self.radius ** 2)

return '{}^2 + {}^2 = {}'.format(format_linear('x', -self.x), format_linear('y', -self.y), radius ** 2)


you may want to adopt the now-preferred formatting syntax as shown above
>>
>>58996808
>
    if self.x == 0 and self.y == 0:
return 'x^2 + y^2 = {}'.format(self.radius ** 2)

in retrospect, this isnt even necessary as format_linear will handle it correctly
>>
>>58996703
Why on earth are you writing your regular expressions like that?
They're a lot more complicated than they need to be.
INTEGER [1-9]+(_?[0-9])*
ID [a-zA-Z_]+

I'm assuming that you wanted the plus on ID, unless they're only supposed to be 1 character long.
>>
>>58996863
Actually, thinking about it, the first plus in INTEGER is unnecessary. The next part of the regex is going to match all of it.
[1-9](_?[0-9])*
>>
File: fbtno_qarxgpi_fas$4dd.jpg (69KB, 482x447px) Image search: [Google]
fbtno_qarxgpi_fas$4dd.jpg
69KB, 482x447px
>>
>>58996734
>>58996351
OOP was a mistake.
>>
>>58996863
>Why on earth are you writing your regular expressions like that?
because i'm using flex ( the fast lexical analyser generator) and that's how you have to write it
>>
>>58996987
then how would you do this non-oop-ly
>>
>>58996998
flex supports POSIX extended regex if I'm not mistaken.
Though, I was actually talking about the structure of the regex itself. There are a lot of repeated bits that don't need to be there.
Also, your INTEGER won't match a lone 0, or even a one digit number.
>>
>>58997024
i have another rule, but i didn't post it.
>>
>>58997066
I just tried
%{
#include <stdio.h>
%}

INTEGER 0|[1-9](_*[0-9])*
ID [a-zA-Z_]+
WHITESPACE [ \t\n]+

%%
{WHITESPACE} { /* Do nothing */ }
{INTEGER} printf("Integer: %s\n", yytext);
{ID} printf("Identifier: %s\n", yytext);
%%

int yywrap()
{
return 0;
}

int main()
{
yylex();
}

and it seems to work fine.
>>
>>58997142
Small misake: Apparently I was supposed to return 1 from yywrap.
>>
Newcomer to C,

How can I read through the same string multiple times using sscanf? I want to get an input string using fgets() then use sscanf() 3 times for the same string.
>>
>>58997252
Just call sscanf 3 times.
If you're trying to match 3 things with sscanf, you can do it all in one go.
>>
>>58996351
pls this kind of stuff seems to be like the most elusively covered topic in comp sci
>>
>go to uni library
>every comp sci book is either from the 1980s or 1970s and every other "modern" book is on javascript and software engineering with scrum

>books online are like 80$

in this day and age it's like we literally HAVE to pirate
>>
>>58997360
scrum is so shit

idc if you're all working in the same space, no scrum lasts for only 15 minutes
>>
>>58997290
the most heavily guarded secret
>>
Should I learn Racket or Common Lisp?
>>
>>58997360
Those pre-1990 books are infinitely more useful than today's breed of programming textbook which is close to 1000 pages and holds your hand to an absurd degree in order to pad out the book. And then they still throw in 300 pages of "reference" to make the book stand out on bookstore shelves.
>>
>>58996351
plz
>>
Can anyone actually state any differences between C and C++. desu C++ sounds like it's just an improved version of C with slightly different syntax.
>>
>>58997856

I regularly write C code that refuses to compile as standards compliant C++.
They're completely different languages, meant for different things, created in different eras.

C++ is basically horrible and slowly dying, but C will be around 50 years from now.
>>
Easiest way to trigger webshits.
Tell them you're writing a new project in C.
>>
>>58997866
>C++ is basically horrible and slowly dying

Why is it horrible? And why will C outlast C++
>>
C
>Don't typecast malloc, idiot
Sepples
>Typecast malloc, idiot
>>
anyone has the programing socks meme?
dont feel like asking in /request/
>>
>>58997856
C++ is object oriented
>>
>>58997837
They are completely different languages.
There is no point comparing them directly at this point.
>>
>>58997896
>Why is it horrible?
Unspeakable amounts of bloat.
Disgusting syntax.
Hidden state changes all over the place.
>>
what's the downside to using apache.commons for every thing I make in java? why even write my own code?
>>
>>58996351
plz i beg u
>>
>>58997938
C++ is multiparadigm.
OOP is a subset of what C++ can do
>>
>>58998024
That doesn't mean that C++ isn't shit, though.
>>
>Why don't more people learn rust?... Oh.
>>
>>58998173
Who are you quoting?
>>
>>58998185
the rust community as a whole
>>
>>58998173
Statement based languages are retarded.

What the fuck is hard to understand about

foo x = x + 1
>>
>>58998565
what exactly are you complaining about?
this is just a standard function definition.
>>
>>58998588
What I gave is just a standard function definition
>>
>>58998624
That's a pretty shitty definition.
foo = (1+)
>>
>>58998624
lol fuck lets argue about how languages should be expressed!
>>
>>58997360
Because people use google to learn anything new. Why reference a book that is likely to be out of date in 3 years when there are comprehensive, up-to-date references maintained online? The old books are great for learning the fundamentals, though. Computer science may have changed in the last 40 years but only insomuch as people got a lot worse at it.
>>
>>58998648
What's wrong with that?

>my version is so shit it couldn't hold a candle to your version, so let's just agree not to debate ok?
>>
>>58998173
>Say return shouldn't be used
>Keep it in because it's good
What did rust mean by this?
>>
File: 1485406923107.gif (259KB, 350x622px) Image search: [Google]
1485406923107.gif
259KB, 350x622px
>>58998666
Fuck off Satan, no wonder you love return

Expression based languages are the will of God
>>
>>58998666
In Rust, each block is actually an expression. So, the last expression (without a semicolon) is the value of that block.
The return statement is when you want to ignore that shit and just return from the function like normal.
>>
>>58996351
is this... the great comp sci secret
>>
>>58998684
>like normal.

nah man, let us do it the not normal way. it's 2017
>>
>>58997006
fromZip :: File a => FilePath -> ExceptT FileError IO a
>>
>>58998660
in many languages, the way to interpret
foo x = {expression}

is that we declare a new variable x with type foo & let it equal {expression}

you could argue that we can make a special case of this syntax to make it define a function if the expression
references x, but i believe that is poor design
>>
>>58998696
Kek
>>
>>58998727
foo is a new 'variable', it's a function
type signatures can either be seperate or inline

foo (x : TypeA) : TypeB = {expression}

if it didn't have a parameter

foo : TypeB = {expression}

it would just be a value

it is a shame that C based languages have denied you this
>>
>>58998742
>foo is a new 'variable', it's a function
fix that sentence, but i think i know what you meant.

>foo (x : TypeA) : TypeB = {expression}
sounds seems like a much more sane way to define a function than
foo x = x + 1

>if it didn't have a parameter
>it would just be a value
sounds good

>it is a shame that C based languages have denied you this
probably

also,
i dont really know what you mean by statement based language
>>
>>58998742
C has this gnu extension
int x = ({
int z = 3;
5 + z;
});

and it's supported by most compilers.
>>
Where's OP image?
>>
>>58998841
it was porn and got deleted
>>
>>58998841
see
>>58996040
>>
>>58998811
that's not what I mean

>>58998808
How is it more sane?
GHC (the haskell compiler) can infer the type
foo x = x + 1

GHC knows (+) has type
Num a => a -> a -> a

and 1 has type
Num b => b

therefore foo has type (having unified b and a)
Num a => a -> a

>statement based
I mean languages like this:

doonething;
doanotherthing;
x = dothisnextthing;

in Haskell, you have do blocks which have statements, but they are themselves expressions and form an expression
>>
>>58998856
oh, he's shilling for haskell.
nevermind

btw do you mean imperative?
>>
is typedef-ing structs ok?
>>
>>58998866
>btw do you mean imperative?
No, I'm talking about statements specifically
You can write imperative code in Haskell, but as I said, statements are in do blocks and are themselves expressions and form an expression

>oh he's shilling for haskell
What is wrong with you that as soon as you know 1 language does it you turn your brain off?
>>
>>58998873
not recommended per linus torvalds
do whatever the project your're working on does.
if you are working solo, do whatever the fuck you want.
>>
>>58998873
Yes as long as you don't do that retard structtype_t thing
>>
File: 42233472_m.jpg (120KB, 428x600px) Image search: [Google]
42233472_m.jpg
120KB, 428x600px
>>58996351
plz
>>
>>58998883
>not recommended per linus torvalds
but why
>>
>>58998881
>imperative programming is a programming paradigm that uses statements that change a program's state
>uses statements
:S

>What is wrong with you that as soon as you know 1 language does it you turn your brain off?
lol
>>
>>58998921
>Trying to organize my objects properly.
You are literally asking for something which is by definition impossible. How do you expect people to help you?
>>
>>58998927
Yes, but statements can themselves be expressions
>>
>>58998922
arguably needless abstraction
see: http://yarchive.net/comp/linux/typedefs.html
it clarifies intent, too.
>>
>>58998935
>should I use a factory or a context
>THIS IS FUCKING IMPOSSIBLE
>>
>>58998938
got me there!
>>
>>58998947
>should I use a factory or a context
Neither. You shouldn't be using OOP garbage in the first place.
>THIS IS FUCKING IMPOSSIBLE
Yes, organizing your objects properly is by definition impossible. It's just not something that can happen.
>>
>>58998958
Is hating on OOP the latest /g/ meme.

Are you gonna tell me to use haskell or something
>>
>>58998963
>latest
lol
>>
>>58998963
Have you considered that maybe writing in Haskell is better than writing OOP in any language?
>>
>>58998963
>Is hating on OOP the latest /g/ meme.
It's trash and I will continue hating on trash no matter what.
>Are you gonna tell me to use haskell or something
I'm gonna tell you to use anything procedural. Last time I checked haskell was indeed procedural, so it's fine by me.
>>
File: FsLt3aK.gif (49KB, 90x125px) Image search: [Google]
FsLt3aK.gif
49KB, 90x125px
>>58998980
>HE FELL FOR THE OOP HATE MEME
>>
File: output.webm (1MB, 1920x1080px) Image search: [Google]
output.webm
1MB, 1920x1080px
What about custom characters?
>>
>>58998985
is that you datafag? are you going to attack haskell again?
>>
>>58998963
>OOP
>POO
>OOPS
>Java
>Pajeet

How could God make it any more obvious that it's a completely and thoroughly shit programming paradigm?
>>
>>58998985
>that reddit filename
>"fell for the x meme"
>likes POO
Somehow I'm not surprised.
>>
>>58997914
>C++
>malloc
>>
>>58999138
Yes, C++ has malloc
>>
>>58999145
Why, though?
>>
>>58999145
>new
>>
>>58997914
>sepples
>using malloc
You are doing it wrong you fucking retard.
>>
>>58999156
because C++ is a superset of C
>>
>>58999166
We're literally talking about a case which disproves that though.
Here is that (You) you wanted, though.
>>
>>58999157
What about new?
>>
>>58999156
It's sometimes necessary (or at the very least advisable) for interacting with libraries written in C. I think I remember having to use that shit when working with DirectX back in the day. new and malloc do not behave the same and delete and free definitely do not behave the same.
>>
>>58999212
Other languages manage to interact with C without needing to use malloc/free.
Why does C++ need so many duplicate features and bloat?
>>
name one software you use that is programmed in a functional language like haskell
>>
Anyone here use Quartus+modelsim before?

Just wondering if you guys think I should install ALL the device supports, or if I'd be good with a specific one(s).
http://dl.altera.com/?edition=lite
>>
>>58999405
facebook
>>
>>58999413
false
>>
>>58995844
for loops are usually what you want or at least they suffice vs a do...while loop. while loops are a bit uncommon too, more common than do...while but less common than for loops. usually you only go with do...while if you want to skip the first check. if the first check is true, a for loop is still usually used for convenience.

>>58995968
>autism
kys
>>
File: vomit.jpg (90KB, 650x650px) Image search: [Google]
vomit.jpg
90KB, 650x650px
>>58999413
Do you actually use Facebook?
Jesus christ.
>>
>>58999428
>Do you actually have friends?
>>
>>58999432
>You need to surrender yourself to cuckkerburg in order to have friends
>>
>>58999413
isn't it just like one component of it or something

>>58999428
this

>>58999432
even if you have friends, it's mostly cancer, either people aren't active or they post attention whore pics or inane who-gives-a-flying-fuck personal drama shit or leftist political shit
>>
>>58999444
>isn't it just like one component of it or something
yup
nice digits
>>
>>58999405
There's literally hundreds of them. All of which are my creations
>>
>>58999744
name three
>>
>>58999790
hello world.exe
fizzbuzz.exe
calculator.exe
>>
File: me.png (568KB, 852x880px) Image search: [Google]
me.png
568KB, 852x880px
>under 24 hours to return Python3 homework
>haven't done anything
>friend uploads his code in github
>copy it, edit some lines, send the homework out in time
good feel
>>
How do I check for words in a string if they contain certain letters?
>>
>>58999790
Anime Program n (that's already more than three)
4chan posts -> reddit and 4chan speech pattern dictionary -> reddit detector
variations of fizzbuzz such as n line multi-threaded fizzbuzz, fizzbuz with no IO, etc.
>>
>>58999847
i could give you the answer but instead i'm gonna teach you how to fish

go to google and type
yourprogramminglanguage check if words in string contain certain letter
>>
>>58999839
>import someone else's work
>edit it a tiny bit
>publish it as your own
Isn't that how all python code are made?
>>
>>58999863
No, I have to check which words contain the letter and which don't, that's why google isn't helping.
>>
>>58999895
>No

you will not make it
>>
>>58999847
import letters_in_words_in_string as lws

lws.match("hello world", ["e"])
>>
>>58999847
filter (any (`elem` theletters)) . words
>>
>>58995069
thanks mr shark
>>
>>58995069
thanks mr shark
>>
>>58999954
>>58999924
>>58999920
Okay, I figured it out, now I need it to print in Main, but the function returns a list, how do I do it? It takes a string as argument.
>>
>>58999924
>>> from collections import Counter
>>> c = Counter('hello world')
>>> c.get('l')
3
>>
>>59000381
>>59000444
nvm fixed ;)
>>
>>59000381
google it
>>
File: index.jpg (9KB, 225x225px) Image search: [Google]
index.jpg
9KB, 225x225px
>>59000453
>nvm fixed it :^)
>>
if i were to tell you that i could cut any filesize in half, even of those that i've already cut in half

why wouldn't you believe me
>>
>>59000479
loser
>>
>>59000510
I can do that too, granted the information won't be recoverable.
>>
>>59000510
you could just delete half of the file
>>
>>58994655
>FILE DELETED
Why, OP? Why?
>>
>>59000531
what if i told you that the information was perfectly recoverable
>>
>>59000545
I'd call you a liar because what you're implying is that you can get any file down to 1 byte and back.
>>
>>59000545
how would you tell me?

via email? regular mail? in person? phone call?
>>
I can cut every file down to a 32 character string, it will just take forever to re-create.
>>
>>59000510
then couldn't you repeat it until you have a 0 file size

>>59000545
possible for some files, impossible for others
>>
>>59000583
so you'd create every possible file? you still lost information about which file is the correct one
>>
Does anyone know of a high performance concurrent stack in C++?
I currently use a (very fast) concurrent queue for building some tree, but when I run it single threaded it is much slower than when I would use a stack due to the way subtree jobs are added and processed. (A worker thread takes a node, adds a job for the right child and continues with the left child, so doing this single threaded gives a weird staggered layout in memory as well as makes the job list grow unnecessarily large)
>>
>>59000510
Of course you could.
However, do you have a way to reverse the operation?
>>
>Programming course at university has such a high workload I have no time for my other courses
rip
>>
if i post a block of code, can you refactor it for me?
>>
>>59000697
Just post it, so we can laugh at you.
>>
>>59000670
Indeed, I'm sure a few other measures could be taken to minimize that risk further, parity etc.
>>
>>59000693
it should be pretty easy if you're not retarded. if you don't know programming very well then just learn it
>>
>>59000697
In Haskell? Maybe.
>>
>>58994655
I'm learning Java, and my project is a little app that calculates my utilization. It will calculate number of days between two dates, then connect with my accounting software to pull in hours billed over that same duration. It's pleb tier, but it'll actually be useful.
>>
>>59000712
It is easy but the assignments take a ton of time due to OOP crap
>>
>>59000697
http://pastebin.com/gkF10dEb
thank you
>>
>>59000795
>all this stateful bs
not even gonna bother
>>
>>58994655
How to program for Temple OS?
>>59000759
>>
How do I reduce/sum a list of tuples in haskell?
I need something like this. I'm trying fold but I can't seem to get it right.
[(Int,Int,Int)] -> (Int,Int,Int)
>>
>>59000817
flatten = ((id =<<) =<<)
>>
>>59000795
Rewrite it in a sane language.
>>
>>59000811
how else would i make a button tho
>>
>>59000479
I will post the solution, just for you

public static List<string> Extract(string s)
{
string[] arr = s.Split(Convert.ToChar(" "));


List<string> toExtract= new List<string>();
for (int i = 0; i < arr.Length; i++)
{
if (arr[i].Contains("u") && arr[i].Contains("a"))
{
toExtract.Add(arr[i]);
}

}
return toExtract;

}


For example, this will extract all the u's and a's from all the words in any given string, and it will return only those words.

Call in Main
List<string> x = Extract("Enter your string here, which contains word with characters to be extracted ua");
x.ForEach(Console.WriteLine);


Will print all words that contain those two characters. You can also add another argument into the function if you want the user to decide which characters to check for.

Any other solution, or help with this?
>>
>>59000817
(Int,Int,Int) is just like any other element type

One way you could do this is to write your own Num instance:

instance (Num a, Num b, Num c) => Num (a,b,c) where
...


Then you could use sum to get back an (Int, Int, Int)
>>
>>59000858
instance (Num a, Num b, Num c) => Num (a,b,c) where
fromInteger x = (fromInteger x, fromInteger x, fromInteger x)
(x,y,z) + (a,b,c) = (x + a, y + b, z + c)
(x,y,z) - (a,b,c) = (x - a, y - b, z - c)
(x,y,z) * (a,b,c) = (x * a, y * b, z * c)
negate (a,b,c) = (negate a, negate b, negate c)
abs (a,b,c) = (abs a, abs b, abs c)
signum (a,b,c) = (signum a, signum b, signum c)


..
sum [(3,4,7), (12,4,7), (845,34,2), (324, 43, 7), (-34, 32, 16)]

>(1150, 117, 39)
>>
>>58996175
You should probably just pattern match for:
^[1-9][_0-9]*$

If last char is _ then discard, otherwise strip the underscores and there's your number.
>>
I am trying to extract two substrings with three character markers before them
Am failing
int main(void)
{

int x;
int i;
char strArray[200] = "aaaaaaxy HELLO YOU SLIMY BASTARDS xyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxy HELLO YOU SLIMY BASTARDS xyaaa";
char subString[100];


for (i = 0; strArray[i] != '\0'; ++i)
{
if (strArray[i] == 'a')
{

if (strArray[i+1] == 'x')
{


if (strArray[i+2] == 'y')
{
++i;
++i;
++i;

for (x = 0; strArray[i] != 'x'; ++x)
{
if (strArray[i+1] == 'x')
{
subString[x+1] = '\0';
}
subString[x] = strArray[i];
++i;
printf("%i", x);

}
}
}
}
}


//printf("%s", subString);
>>
What's /dpt/'s IRC?
>>
>>59000983
but if i have 1________0_

your regexp still matches, and it shouldn't
>>
>>59001047
There isn't one.
There is no official /dpt/ anything.
>>
File: are you upset?.jpg (3KB, 225x225px) Image search: [Google]
are you upset?.jpg
3KB, 225x225px
let x: i32 = 8;
{
println!("{}", x); // Prints "8"
let x = 12;
println!("{}", x); // Prints "12"
}
println!("{}", x); // Prints "8"
let x = 42;
println!("{}", x); // Prints "42"
>>
>>59001077
>name shadowing
in some situations this is an absolute necessity

also in haskell this is just
mapM_ print [8,12,8,42]
>>
>>59001063

See: >>59000983
>If last char is _ then discard

If you really want to have it only match if there's no trailing _ then use >>58996884 method.
Sometimes making things explicit helps for later maintenance.

Also, you will need another call to remove underscores anyway to parse the number, so this is never going to be a one-shot job.
>>
>>58997446
Common Lisp.
>>
how do you learn with frameworks and shit?

my java is rusty as fuck and now i have to jump into maven and spring boot and i'm getting overwhelmed, i watch tutorial after tutorial and i feel i'm not even close to actually start developing
>>
>>59001077
What's the problem?
>>
>>59001042
Use the <string.h> header. There are functions in there that would make that MUCH easier.
strstr() comes to mind.
>>
>>58998697
Monad transformers were a mistake. Effects are better.
>>
>>59001047
I posted my BasicTVs IRC before (#basictv on freenode), pretty bare now tho. Typically i just stay there and talk
>>
>>59001107
Why?
inb4 CLOS
not interested in anything with a capital O in it.
>>
>>59001121
By using them
>>
>>59001127
Wrong.
>>
>>58998972
>have to turn on a million language extensions to get anything done because the language is deficient
>strings as lists of characters
>brittle macros that litter your code with pipe characters
>no effects like in idris
>partial functions everywhere
>poor exception handling. nothing like the restart system of lisp
>most libraries either broken or still in alpha
>>
I need some help with my homework.
Say you have an user inputed number, for example 2, how do I check if digits in numbers between 1 and 1000 equal 2?

For example, user input is 2, it would need to print 2, 11, 20, 101, 110,...
>>
>>59001229
>how do I check if digits in numbers between 1 and 1000 equal 2?
What?
>>
>>59001228
>have to turn on a million language extensions to get anything done because the language is deficient
Wait until Haskell 2020, until then setting a config to automatically enable 20 extensions is fine

>strings as lists of characters
Makes perfect sense from a programmatic point of view, leads to lots of optimisations with laziness that couldn't happen otherwise.
If you don't like it, use Text or ByteString.

>brittle macros that litter your code with pipe characters
I know you're a lisp programmer, but you shouldn't be using macros for every damn thing.
Lisp programmers don't understand that macros are completely unnecessary and generally more brittle than anything else.
Regardless, most uses of macros work perfectly fine.

>no effects like in idris
Write it yourself.
Idris doesn't have them built into the language either.
Oh, and they're not very good.

>partial functions everywhere
Which are incredibly useful half of the time.
Not all of us want to be writing proofs all the fucking time.
Just don't use them.

>poor exception handling. nothing like the restart system of lisp
Use ExceptT, you shouldn't be using IO exceptions at all in any language.

>most libraries either broken or still in alpha
But not the ones people actually use.
>>
>>59001260
Digit is between 0 and 9
Number is between x and y.
Number 234 has digits 2, 3 and 4.
>>
>>59001139
I actually like both (there is a Typed Racket too, if that's your thing), so no real reason. :^)

Just learn both.
>>
>>59001319
Aha, so for the 101 example you take 1 + 0 + 1 = 2?
>>
>>59001123
Not used to it

C would keep the value defined inside the second pair of braces
>>
>>59001337
Yes.
>>
>>59001346
int input_num = int(args[1])

for (i = 0; i < 1000; i++) {
int sum = sum(str(i).split())
if (sum == input_num) {
print sum
}
}


I'll leave it up to you how to implement it in your language.
>>
>>59001319
>I actually like both
What are the main differences between them?
>>
>>59001374
You could also do it backwards and find all the possible numbers that add up to your number and just print those instead of looping and testing every single one.
>>
>>59001288
>he has to wait for a committee to extend his language for him
Macros are only brittle in a language that doesn't support them. Haskell isn't homoiconic, so it's no surprise Haskell's macros are "generally more brittle than anything else."

>you shouldn't be using macros for every damn thing
Macros aren't used for "every damn thing." In fact, it's considered bad practice to use macros when a function is perfectly acceptable.
>>
>>59001391
>>59001374
I need to make a function though. Takes int for input, returns string (since there will be more than one number).
I got that I need to loop through 1000 numbers, no idea how to check individual digits and put them together.
>>
>>59001340
What? Local scoping works just like that in C.
#include <stdio.h>

int main(void) {
int x = 8;
{
printf("%d\n", x); // 8
int x = 12;
printf("%d\n", x); // 12
}
printf("%d\n", x); // 8

return 0;
}
>>
>>59001399
>>he has to wait for a committee to extend his language for him
No shit, it's not my language

>Macros are only brittle in a language that doesn't support them.
Plainly false.

>Haskell isn't homoiconic
And Lisp isn't any good.

>Macros aren't used for "every damn thing." In fact, it's considered bad practice to use macros when a function is perfectly acceptable.
Oh, so you've never programmed in lisp or worked with anyone who programs in lisp.
>>
>>59001429
You read the loop number as a string and and split all characters then sum those as ints.
>>
%{
#include <stdio.h>
%}

INTEGER 0|[1-9](_*[0-9])*
ID [a-zA-Z_]+
WHITESPACE [ \t\n]+

%%
{WHITESPACE} { /* Do nothing */ }
{INTEGER} printf("Integer: %s\n", yytext);
{ID} printf("Identifier: %s\n", yytext);
. printf("Error!!!!");
%%

int yywrap()
{
return 0;
}

int main()
{
yylex();
}


in this example, if i input 1_111_ it throws
Integer: 1_111
Identifier: _

but it should throw error.

is that even possible to do, though?
>>
>>59001383
Lisp-1 versus Lisp-2 - the former means functions and variables share the same namespace (you can't use "list" as a function argument, for example) while the latter means there is a separate namespace for both

So in CL, you can use "list" as an argument name, but whenever you need to pass a function in somewhere, you have to make it explicit it's a function using
#'
, and if you need to call it, you have to use
funcall
. I personally find this ugly.

Macro systems are different. Racket has hygienic macros (variables won't be captured), whereas CL's macros are unhygienic (variables CAN be captured). This means if I have a binding to the variable x somewhere, and I call a macro that uses the name x inside the macro body, the value of the binding will be used in the macro code, which is likely not what you want. Kind of hard to understand without seeing it in action, so I recommend reading
http://www.gigamonkeys.com/book/macros-defining-your-own.html
.

CL has a built in LOOP macro, which isn't very lispy at all. It also has a FORMAT function with a wide variety of ways of printing things. Both of these are fairly divisive in the community. You're either going to love them or hate them.

Misc. things like naming conventions and whatnot. A lot of things in CL are named differently in Racket.

That's just off the top of my head. I'm sure there is a lot I missed.
>>
Have you embraced the ReactiveX meme yet?
>>
>>59001438
No arguments, just a lot of hot air.
>>
>>59001620
Did you mean to reply to >>59001228?
>>
>>59001658
See >>59001620
>>
>>59001448
Is this pajeet tier, or is there an easier way?

public static string Total(int a)
{
int ones=0;
int tens=0;
int hundreds=0;
string res = "";
for(int i = 0;i<1000;i++)
{
if (i < 10)
ones = i % 10;
else if (i < 100)
{
ones = i % 10;
tens = (i / 10) % 10;
}
else if (i > 100)
{
ones = i % 10;
tens = (i / 10) % 10;
hundreds = i / 100;
}
int equal = ones + tens + hundreds;

if (equal == a)
res = res + i + " ";



}

return res;
>>
>>59001674
What does it do?
>>
>>59000697
It would be extremely painful
>>
>>59001559
You should probably catch errors like that during parsing, not with lex.
>>
new thread:
>>59001874
>>
>>59001433
this

the only really retarded thing about >>59001077 is the indentation and also that it allows shadowing (the int x = 42 wouldn't be allowed in C)
>>
>>59001732
you're a big guy
>>
>>58996351
plz
Thread posts: 317
Thread images: 15


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.