[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: 35

File: 1485438720022.png (423KB, 720x720px) Image search: [Google]
1485438720022.png
423KB, 720x720px
What are you working on, /g/?

Old thread: >>58661514
>>
>>58666124
First for D
>>
File: anime with see sharp.png (615KB, 720x720px) Image search: [Google]
anime with see sharp.png
615KB, 720x720px
>>58666124
C#
>>
File: 1464632537832.png (152KB, 1948x858px) Image search: [Google]
1464632537832.png
152KB, 1948x858px
thank you for using an animie image
>>
Fake thread by anime memers, pls move to actual thread guize: >>58661502
>>
>>58666124
I'm going to try and relearn C by going through the MIT algorithms book and doing all of the examples/problems with C.

Is there a better way?
>>
>>58666160
>8 hours ago
>like 20 posts

Doesn't look like much of a real thread to me.
>>
File: CAPTCHA.jpg (3KB, 300x57px) Image search: [Google]
CAPTCHA.jpg
3KB, 300x57px
>>58666168
Read K&R C.
>>
>>58666117
>Like how not?
CPUs are designed to do the same thing many times in a row. OOP means that you're constantly jumping between objects and executing different code for each. Overcoming this often means you have to forget about encapsulation or subtype polymorphism except at a large scale.

>>58666146
>Just like if you know your program is going to need a lot of objects
Programs don't need objects. This is a hammer/nail situation.
>>
Sometimes you need an 18-wheeler.

Sometimes you need a coupe.

Sometimes you need an ATV with a winch on the front.

OOP and FP are friends, and should be used together and to their strengths.

The same goes for any other programming concept you memers try to pit against each other. Most everything has a time and a place, and can help you if you use it correctly.
>>
int main(int, char**) {
printf("Hello World!\n");
}


main :: IO ()
main = do
putStr "Hello World!\n"


>this triggers the OOP
>>
>>58666207
>OOP and FP are friends, and should be used together and to their strengths.
No, they're really not.
>>
>>58666188
>This is a hammer/nail situation.
What is this situation?
>>
>>58666211
I don't get it.
>>
>>58666211
OOP is not intended for Hello World-like applications.
>>
>>58666124
fn main() {
loop {
println!("Thank you for posting an anime image!");
}
}
>>
>>58666214
Anon claims that you need OOP because programs need objects. In reality, all he knows is OOP (or his bastardized version of it) and thus cannot fathom programming without objects.
>>
>>58666231
because Hello World programs are a subclass of programs

and OOP is not intended for programs
>>
>>58666231
OOP also isn't intended for anything that isn't (at least conceptually) distributed between many mostly independent actors that still need to communicate.
>>
>>58666239
It reeks of SJW.
>>
>>58666239
>macro
but why
>>
Been working more on graduate research. Windows drivers are a pain in the ass, Win32 is a pain in the ass, and Visual Studio is a mega pain in the ass. Still can't get a good way to send information to this fucking dummy network adapter. I've got no raw sockets, Wireshark is not detecting the damn thing, and it doesn't connect to any sort of external network, so there's no "port" to test with a simple TCP/UDP interface. My professor recommends opening the device file with CreateFile and writing to it directly, so I do that and my test program is getting screwy results. CreateFile returns an INVALID_HANDLE_VALUE, but GetLastError() is behaving non-deterministically and returning a different value on each run of the program, all of which are outside of the range of legal error code values. I'm guessing I'm somehow using the wrong device file path (I'm right now using a combination of devcon and winobj to find a symlink that's more or less \Device\00000033, or something similar), but documentation on all of this shit is terrible. MSDN is unhelpful the second your question about the behavior of things becomes even slightly complicated, as is searching StackOverflow.

Really, just fuck Windows in general.
>>
>>58666296
t. brony
>>
>>58666256
That's not how you into logic.

>I don't like apples.
>Well, you must not like all fruit because apples are fruit.
>>
>>58666295
Because that's how Rust does varargs.
>>
>>58666295
What's wrong?
>>
File: 1450826579222.jpg (146KB, 589x900px) Image search: [Google]
1450826579222.jpg
146KB, 589x900px
>>58666256
computers run programs
OOP is run on computers

how OOP is not programs?!?!?!
>>
>>58666318
That wasn't implication, I was stating a fact.
From that broader fact you can determine the more specific instance.
>>
>>58666246

>because programs need objects

if you actually read it in a non-autistical way, you would know I wasn't talking about all programs. Do you really think WoW for example, isn't using OOP?
>>
>>58666256
I guess you could say that a Hello World is a child type of the type Program...
>>
>>58666348
>WoW uses OOP
wtf I hate OOP now
>>
>>58666339
You literally tried to make the logical leap as described, judging by the content of your post, and not whatever fucked up mental gymnastics you're doing in your head.
>>
>>58666348
I didn't imply you meant all programs.
>>
I'm trying to figure out type providers in F#...

type SymbolDividends = HtmlProvider<"./DataSamples/AAPL.html">


When I then try to use it, I just get a little popup saying "Loading..." and nothing happens, no intellisense or anything.
>>
>>58666367
>I just get a little popup saying "Loading..." and nothing happens, no intellisense or anything
Is that Visual Studio issue?
>>
>>58666364
>You literally tried to make the logical leap as described
No I didn't.

>>That burning house is dangerous
>Most burning buildings are dangerous
>this explains why that burning house is dangerous
>>
>>58666366

oh ok that must have been casper the friendly ghost who typed that post then
>>
>>58666403
Oh, I suppose you're right. I did imply that by saying he can't fathom programming without objects.

My point about programs not needing objects still stands.
>>
Is OOP the definition of a meme?
>>
>>58666439
>only used because other people use it
>no good arguments for any intrinsic value
>people associate everything with it
>>
>>58666415

you really are an autist. If you go back to my original post in the old thread and try your best not to sperg out, you would know that I am not saying that "programs. need. objects" like it's some universal fact. The whole point of OOP is to make it easier for the programmer to manage the data. Nobody is saying programs need objects. Completely depends on the program/application. It's not hard to understand.
>>
>>58666469
If OOP makes it easier, then why do we need no end of new revisions and books saying "actually, the principles we've been using are completely wrong"?

>don't use inheritance
>avoid deep heirarchies
>use non-OOP features (generics, lambdas, etc)
>calm down with the getters and setters
>XYZ design patterns
>don't use XYZ design patterns
etc etc

Imperative and FP don't do that
>>
is this how you make a 2D int array in C using only one malloc statement?


int *create2DArray( int rows, int cols )
{
int **array;
int *data;

array = malloc(rows * sizeof *array + (rows * (cols * sizeof **array)));int *create2DArray( int rows, int cols )
{
int **array;
int *data;

array = malloc(rows * sizeof *array + (rows * (cols * sizeof **array)));

data = array + rows;

for(int i = 0; i < nrows; i++) {
array[i] = data + i * cols;
}

return array;
}

data = array + rows;

for(int i = 0; i < nrows; i++) {
array[i] = data + i * cols;
}

return array;
}
>>
>>58666469
If any programs need objects at all (for modelling distributed systems of actors), it's an incredibly small fraction.

Also, the idea of an object, encapsulated data and behaviour, is so easy to implement in any language with lexical closures. So even if you do need objects, there is no real reason to use "object-oriented" languages like Java that have dire support for anything else.
>>
Rate (not) my Perl
#!/usr/bin/perl

use v5.14;
use strict;

my $ayy;
$ayy = "LMAO";
say $ayy;
for ($ayy =~ m/(?!^)./gs) {
say $_;
}
>>
>>58666507
fucked it up

int *create2DArray( int rows, int cols )
{
int **array;
int *data;

array = malloc(rows * sizeof *array + (rows * (cols * sizeof **array)));

data = array + rows;

for(int i = 0; i < nrows; i++) {
array[i] = data + i * cols;
}

return array;
}
>>
>>58666527
>malloc
>>
>>58666527
data = array + rows

what the fuck

also malloc can fail, bub
>>
>>58666492
Because OOP is for code monkeys.
>>
>>58666492
>calm down with the getters and setters
wtf why?
>>
>>58666578
>also malloc can fail, bub
Not on Linux
>>
>>58666578
i dont know man it makes sense to me
>>
Where do I get started if I want to start with game development (as side hobby while I study), with the eventuality of joining a tech company in the future. With interest in Robotics as well.

Where do I take my first steps. I have Gamemaker(I know but I got it cheap so I'll use what I have to start). Which language and what tools?
>>
>>58666655
C++, SDL, SFML
>>
>>58666527
create2DArray(-1,-1)


Teehee.
>>
>>58666492
because programing is hard and there will be design patterns no matter what you do

>if FP makes it easier why are there monads?
>>
>>58666678
i shouldve said that i call it from my main where I will check that the rows and cols are at least 1

i just want to know if im on the right track
>>
>>58666702
Monads do make many things easier.
>>
>>58666702
monads aren't a design pattern, they aren't necessary for pure languages, and they aren't necessary for FP
does that answer your question?
>>
File: iPdmUwg.png (777B, 263x18px) Image search: [Google]
iPdmUwg.png
777B, 263x18px
microsoft pls
>>
>>58666702
>if FP makes it easier why are there monads?
you must be literally handicapped if you find them """""hard"""""
>>
>>58666725
>monads aren't a design pattern
they literally are. monad stacks are another design pattern.
>they aren't necessary
no, but neither are oop design patterns
>they make it easier
so do oop design patterns
>>
>>58666676
>>58666655

>C++
I hear it's a challenge, good.

I forgot to mention I also want to learn some Web design/programming so I can mount up sites in the relative short term.
>>
>>58666757
It's not a design pattern if it can be expressed first class within the language. Then it's an abstraction.
>>
>>58666757
no they aren't
monad stacks aren't either
that's like saying a list of ints is a design pattern
>>
>I still don't know how to subclass in GTK
So this is what happens when you try to port OOP paradigm into a language with functional paradigm.
>>
>>58666769
>C
>functional
what?
>>
>>58666769
What language?

If it's functional enough you could use existential quantification and rank n types
>>
@58666757
>they literally are. monad stacks are another design pattern.
slit your throat please
>>
>>58666780
i write functional C
>>
>>58666767
>>58666766
https://en.wikipedia.org/wiki/Monad_(functional_programming)
>They can also be seen as a functional design pattern
>Categories: Software design patterns
>>
>>58666809
>wikipedia
>can be
>are

this is OOPfags trying to understand reality
>>
>>58666801
write me a lambda in C
>>
>>58666809
CAN, and that's just a nod to inferior languages that can't abstract them.
>>
>>58666764
Web development and game development are two different kind of beasts. Focus on one thing.
>>
@58666809
just jump of a bridge already
>>
>>58666827
Then what are web browser games?
>>
>>58666766
in Haskell, a monad is a type class. In OOP, a singleton is an interface.

Design patterns can be expressed in a language and still be a design pattern.
>>
File: C lambda.png (46KB, 849x489px) Image search: [Google]
C lambda.png
46KB, 849x489px
>>58666822
pic

>>58666847
>people do it alot therefore it is a design pattern
wrong
>>
>>58666846
They have nothing to do with web development.
>>
>>58666847
So haskell is a programming paradigm now? Remove yourself from this thread
>>
>>58666846
webdev
>>
>>58666847
Nope, you cannot write an interface for all singletons.

I mean, theoretically, there is a language where you can, but most of the time singletons are used as a pattern. Most of the time, monads are used as an abstraction.

So I guess you need context - a monad is an abstraction in Haskell but a pattern in C#.
>>
#include <cstdio>
#include <cstdlib>

template <class T>
class table {

public:
table (size_t rows, size_t cols);
~table ();

const size_t rows;
const size_t cols;

const T &operator () (size_t r, size_t c) const;
T &operator () (size_t r, size_t c);

private:
T *_items;

};

template <class T>
inline table<T>::table (size_t rows, size_t cols)
: rows (rows)
, cols (cols)
, _items ((int *) malloc (rows * cols * sizeof (T))) {
if (_items == NULL) {
throw "out of memory";
}
}

template <class T>
inline table<T>::~table () {
if (_items != NULL) {
free (_items);
}
}

template <class T>
inline const T &table<T>::operator () (size_t r, size_t c) const {
return _items[cols * r + c];
}


template <class T>
inline T &table<T>::operator () (size_t r, size_t c) {
return _items[cols * r + c];
}
>>
>>58666827
Objectively and academically which route is best to start with? Seeing as I'll be going to school for this too soon. Though through game development I could [potentially] make some income to fund the rest of my ventures. Though the same goes for web. I need to be able to build my own websites in the future. That is absolutely crucial to me. I'd like to at least learn Web Dev. decently enough by year's end to build my sites.

Guess this is just the standard debate of anything getting into the field
>>
>>58666906
>game development
>income
pick one
You're better off building websites for customers.
>>
I'm trying to clean up my apartment.
>>
File: 1484952486479.jpg (2MB, 1200x1200px) Image search: [Google]
1484952486479.jpg
2MB, 1200x1200px
>>58666856
Well, shit, have a picture as a sign of my gratitude
>>
>>58666967
thank you for the anime pic
>>
>>58666967
thanks for using an anime picture.
>>
What's you're favorite monad?
I'm fond of the List Monad.
>>
File: 1414439317632.png (471KB, 1280x720px) Image search: [Google]
1414439317632.png
471KB, 1280x720px
>>58667057
the anime monad
>>
>>58667105
thank you for using an anime monad
>>
>>58667105
postAnime :: Cute -> Anime PostReceipt
>>
>>58667057
Optional<T>, because it triggers Haskell snobs as a stateless side effect.
>>
>>58666510
look at me nuggets
why didn't you help a couple of threads earlier?
>>
I was about to ask for help on haskell but I figured it out.
>>
>>58667145
It's not a side effect you retard.
>>
>>58667157
same here. are you me?!
>>
>>58667145
what's a side effect of Optional<T>?
>>
File: d8ce113cb0a7bde0ad8936f31b1c2bfd.jpg (535KB, 762x1080px) Image search: [Google]
d8ce113cb0a7bde0ad8936f31b1c2bfd.jpg
535KB, 762x1080px
>>58667057
ロăƒȘ、ヱナド
>>
>>58667120
Stop saying that!
>>
>>58667177
Haskell snobs get mad that ENTERPRISE LANGUAGES has monads.

As in, I made a joke. It's based on the overloaded meaning of "side effect".
>>
>>58667145
>>58667167
I also wouldn't call it an effect because it doesn't build up a AST that is then evaluated.
>>
>>58667204
What would you advise me to use senpai?
>>
>>58667105
Monads are like Anime. You have a unit function that takes an object and turns it into an anime version of that object. Unit is obviously a cartoonist. You also have fmap, which takes an anime object and turns it into another anime object. Finally you have join, which takes a ridiculous anime inside an anime and turns it into a regular anime.

Hence monads are like anime.
>>
Any common book recommendations for Java/programming beginners? I finished Java on Codecademy and now I'm tinkering in NetBeans while watching video tutorials.
>>
Nevermind I am retarded. I'm trying to write a function that deletes the Nth of an element from a list. Like the 3rd 6 in a list.

deleteNth :: (Eq a) => Int -> a -> [a] -> [a]
deleteNth n y [] = []
deleteNth n y (x:xs)
| (n <= 0) && (y == x) = deleteNth n y xs
| (n <= 0) = x:deleteNth n y xs
| otherwise = x:deleteNth (n-1) y xs


Is there a way to do this with list comprehension?
>>
>>58667207
It's not meaningful to support monads if you can't abstract over them. After all, a monad is just a functor plus return plus bind (or join), and a functor is just a type family plus map. It would be worrysome if you couldn't do that at all, not significant that you can.
>>
>>58666211
Oh no! How do I deal with writing Hello World now?
>>
>>58667253
With Haskell, clearly.
>>
>>58667247
Optional has flatMap which is what you're thinking about.

If there is something in the Optional, it applies the function and returns the result in an Optional.
If there is no value there, it will return itself.

Haskell fans might recognize some similarities to Maybe.

But even if you couldn't do anything FP-like with it, Optional<T> is still useful because you're communicating intent to your caller: They may not get a proper value out, and they must therefore check.

Which means that you have a solid reason for using Optional<T> even if you're not supposed to do any FP.

And then someone is going to ask you to do something to the Optional without unwrapping it, and you explain how to do flatMap, and then suddenly an OOP-only programmer has a real life useful reason to learn about FP.

That is probably a reason to actually like it, and not just crack a joke. It serves as a fulcrum for showing the real life usefulness of FP approaches.
>>
>>58667207
>>58667247
For instance, a requirement to support abstraction of monads (and functors) is higher kinded types.

>>58667313
That's all well and good, but that doesn't mean you're using it as a monad. You're just using it.
>>
>>58667325
>higher kinded types
Yes, and Haskell suck at it. Coq is the true language.
>>
>>58667242
your way seems fine
>>
>>58667177
failure
>>
>>58667325
Some is return
flatMap is >>=
>>
>>58667451
I know. But you cannot write a function that works for any monad and pass an Optional<T> into it, because that requires higher kinded types.
>>
>>58667407
I don't get the correct answers back though. I wonder if it has to do with the guards.
>>
>>58667480
i was replying to the other bit
>>
>>58667325
You really ought to give an example.

But if you're using the 4 operations you can do on a monad to good effect, you're using a monad. You don't have to do anything fancy.

Optional<T> is a proper monad, because you can do all those four operations. However, you don't need to use all of them to get good use out of the monad, so you have a starting point to learn the damned things.

The operations are, IIRC, construct, return, bind, and one more I can't remember. I'm trying to get work done on a Windows machine, so my sanity is kinda shot.

> constructor
Optional.of(T) creates an Optional of T. The equivalent of Just T in Haskell.
Optional.empty() is the equivalent of Maybe's Nothing.
> return
Optional#get() unwraps the value. Note that if there isn't a value there, shit will crash. So don't be a retard.
This is where OOP fans will like the feature. They can avoid returning null, and don't have to define fucking sentinel values. That's fucking great!

> bind
Optional#flatmap takes a function as input. It's exactly what you'd expect.

>>58667480
You can, depending on what you mean.
If I want to be pedantic as fuck, I could in Java create a function that took any object, and returned an upcased version of it's toString method.
That would work for any monad, since monads are subsets of objects in Java. But that's not what you meant.
>>
>>58667485
your conditions seem off, i agree
>>
>>58667489
I know which part you were replying to.

Optional<T> forms a monad (really, Optional as a type family itself) because it has those methods. However, all you're doing is calling those methods directly. The fact that it forms a monad is irrelevant to the code itself and is only something you can use when thinking (e.g. depending on the monad laws).

Even Haskell can't precisely abstract over a monad, because it cannot enforce the laws.

>>58667545
I don't need this explanation of why it forms a monad over and over again, that's not the point.
>>
>>58667582
>However, all you're doing is calling those methods directly. The fact that it forms a monad is irrelevant to the code itself
no
>>
>>58667600
Yes.
>>
>>58667611
when you use a list you use monoidal properties all over the place without explicitly abstracting over it
>>
>>58667637
But only in your head. The compiler couldn't care less.
>>
File: 1465297400484.jpg (100KB, 500x500px) Image search: [Google]
1465297400484.jpg
100KB, 500x500px
>>58667648
>But only in your head
>>
How much is dpt concerned with the efficiency/performance of the software that it writes?
>>
>>58667600
Calling a method directly means something specific in Java.

I could pass an Optional<T> into some method and get out an Optional<T> in return.
Lots of methods could have been called on it, but I would not have been calling it directly.

Therefore, you need to be specific and give examples, because English can be misunderstood.

What precisely does it mean to not call methods directly to you, in this discussion?

>>58667637
Why would you want to?
You can get it as a monad by calling Collection#stream().
>>
>>58667655
The compiler doesn't care whether something is a monad, monoid or mongoloid.

So long as the instructions are legal, it will compile. The Runtime itself does not care, although it might use some properties to do optimizations.
>>
Hi /dpt/,

What books and other resources should I use to learn C++? Is C++ Primer decent?

Please don't tell me not to learn C++, I know it sucks and I don't want to, but I have to use it for my PhD project.
>>
>>58667655
That's the difference between a design pattern and an abstraction, which is the original point here.

Saying C# supports monads is no more meaningful than saying C# supports visitors or singletons or whatever.
>>
>>58667679
that doesn't mean you're not using monadic operations
>>
>>58667582
I mean, if I use a monad, and depend on the laws that apply to monads for it to work properly, how am I not using it as a monad? That's the question you need to answer. Until you do, you're not making much sense.
>>
>>58667545
The problem is java failed to define a consistent interface so when they add a second monadic type, you cant have functions that operate on monads in general, only on Optionals or Streams or whatever. Even with the stream api, a function as simple as sequence is beyond Java. To prove me wrong, write a function that does the following:

Prelude> sequence [Just 1, Just 2, Nothing] 
Nothing
Prelude> sequence [Just 1, Just 2, Just 3]
Just [1,2,3]
Prelude> sequence (Just [1,2,3])
[Just 1,Just 2,Just 3]
Prelude> sequence [[1], [1,2], [1,2,3]]
[[1,1,1],[1,1,2],[1,1,3],[1,2,1],[1,2,2],[1,2,3]]
>>
>>58667696
To the compiler/runtime, monads and so on aren't a thing. They are monad-unaware.

Remember that monads aren't a physical thing. They're just a set of rules that apply to something in a mathematical model.

We can map from that mathematical model to our computers, but our computers exist independent of that model.
>>
>>58667701
I suppose I got a bit sidetracked myself. You conceptually may be using it as a monad, depending on laws, but you are not (and can not) use it as a monad in any meaningful way in the language itself. That was the original point.
>>
>>58667734
the runtime isn't sentient, who cares what it thinks?
>>
Okay, can I get some help with C#?
I'm supposed to table (sorry, not native english speaker) the function f(x) = 4x^2 + 3x - 8 on the itnerval -10 to 10 with a step of 1
I have 0 math skills and don't even know what I'm supposed to do
>>
>>58667766
create a table like this

-10 | f(-10)
-9 | f(-9)
-8 | ..
... | ..
9 | ..
10 | ..`
>>
>>58667766
what are for loops
why people don't learn basic nowadays

>FOR X = -10 TO 10 STEP 1
>>
>>58667764
It's very useful for the language to be monad-aware. That means it can allow you to write a function that works with any monad, and that means it can optimize based on the monad laws (the runtime could theoretically be included here as it could potentially be used in making the garbage collector more efficient).

In C#, the only way to write code that works for any monad is to copy and paste it and change the names and types. Well, you could also use dynamic, but then you're writing code that "works" for anything and will crash at run time instead of failing to compile.
>>
>>58667766
This is why teaching kids to program is stupid
>>
>>58666953
I'm not trying to build an empire. Just some additional income and experience
>>
>>58667803
>>58667806
I know loops, I don't know what I'm supposed to do with the function. Calculate it? My brain freezes when there's math to be done. Is x 1?
>>
>>58667841
f(x) = 4x^2 + 3x - 8


f(- 10) = 4( -10)^2 + 3(-10) - 8
>>
>>58667841
X needs to take on all the values from -10 to 10 (-10, -9, -8... 0, 1, 2, 3... 10)

Once x takes on a value in that range, evaluate the function
>>
>>58667841
public static int f(x) { 
return 4 * (x ^ 2) + (3 * x) - 8
}

int value = f(1);

jesus christ pajeets i swear
>>
>>58667659
Mainly just write python scripts for work, so more concerned with neatness and readability than performance

Doesn't matter if takes a little longer to clean some data, but if it fucks up and you don't know how to fix it because you can't read what the fuck it's supposed to do, that's an issue
>>
>>58667659
Make a sandpile in Python. I'll see you in a week.
>>
>>58667841
NUMBER FUNCTION F (NUMBER X)
X = 4x^2 + 3x - 8
RETURN X
END FUNCTION

PROGRAM MAIN
FOR X = -10 TO 10 STEP 1
PRINT X + " | " + F(X)
NEXT
END PROGRAM

don't even ask which dialect of basic it is, I programmed in Basic many years ago.
>>
>>58667892
the ^ operator doesn't do that in c#
>>
>>58667659
dpt is a thread, it can't write software.
>>
>>58667659
As long as I'm paid, I don't care.
>>
>>58667723
You're right, you can't write that function.

You could have had a Monad interface that would have gotten you somewhat further on that road, but you'd have to make all the old stuff work with it. You have to have shit like java.util.List work perfectly with it.

And Java doesn't break backwards compatibility.

That's why you only have to install 1 JRE, but you have 5 different .Net redistributables shitting up your system. (that 3.5 redistributable is the one you need to make IIS' control panel work. Some retarded thing needs 2.something, and we use 4.0+ for our stuff, and...)

I don't think it was a mistake. I think it was a conscious trade-off. Would have been really fucking nice to have, but until Oracle announces BIJ, we have to live with some retard running WebSphere from 2006 ruining it for the rest of us. ;_;

But if you're using Java, Collection is a more proper place to start, rather than List.
Trees and Sets and such are also Collections.
>>
>>58667867
>>58667879
>>58667892
>>58667915
Alright, thanks, so the interval is basically x, the step is the counter. You could do

int b;
for (int x = -10; i < 10; i++;)
{
b = 4 * Math.Pow(x, 2) + (3 * x) - 8;
Console.WriteLine(x + "|" + b);
}


On my phone, hope I didn't forget anything
>>
>>58667997
that's right, just put i <= 10 , or else it will stop at 9

remove semicolon after i++
>>
>>58667997
yes, the interval is the entire range of values x takes, [-10 .. 10]

you should do <= 10 so you get the last 1
>>
File: output_trim.webm (1MB, 1920x1080px) Image search: [Google]
output_trim.webm
1MB, 1920x1080px
Toying around with Racket.
>>
>>58668063
cute!
>>
Hrm... what are some good papers for learning how programs for stack machines are transformed into programs for register machines (i.e. Java bytecode into x86_64 machine code)?
>>
>>58667659
>How much is dpt concerned with the efficiency/performance of the software that it writes?
Of course you need to make common-sense decisions as you write various parts of your program, but I don't bother with doing any serious optimization until I see a specific part that has a performance issue.
>>
>>58668063
>
(define character [cute anime gril pic])


wtf
>>
>>58667914
But anon, it took 10 minutes less to write? Who cares that it's 2-3xs slower?
>>
>>58668063
>>58668215
proof that purely text based languages are inferior
>>
anyone know of any good project ideas for someone who wants to take advantage of the abundance of embedded systems job openings?
>>
>>58668215
You can embed images and other things in your code.
>>
I need some help.
Last time I'm asking for help.
I need the program to read 10 numbers. If they're even, they're added to the total, odds are divided. If they're negative or a multiple of 10, it's not applied. I'm supposed to use break and continue, but apart from continue, I don't know how to write.it for break.
>>
>>58668243
>>58668263
Why is that ?
>>
>>58668271
Convenience. You can do the same with Temple OS.
>>
>>58668264

Honestly, this could probably be done trivially without either of the break or continue keywords.
>>
>>58668301
wtf i like TempleOS now!
>>
>>58668319
You didn't like it before?
Are you gay?
>>
>>58668264
I understand continue, but break seems silly here.

Do this:
Instead of a for loop, do a while loop, and create a counter. Increment the counter on each loop, continue until 10 numbers are read, and then use break to exit the loop.
>>
Is Scratch OOP or FP?
>>
>>58668353
But, that's just a for loop done with while.

>>58668317
That's why I'm having difficulties.
>>
>>58668386
Well, you're saying you have to use break, so that's how you can shoehorn it in.
>>
>>58668372
Neither, it's just imperative
>>
my future career is computer networking/InfoSec.

I want to decompile malware. I want to see how they deliver their payloads, how they utilize the buffer overlows (etc.), and all their other clever tricks.
What can I use to do it? I know there's /some/ C decompiler that's like a million dollars, but is there anything FOSS?

I'm aware of objdump and such, but I'm afraid asm might be a bit too low level for me as of yet. But I guess that's gonna be tough shit because there's really nothing else, right? Real decompilers are a pipe dream, and all the pros are already just using C as an ASM wrapper so they can use their fancy NOP slides and shit, and it's all building what the program does from clues in the machine code right?
>>
>>58668489
You answered your own question. You should learn ASM, it's honestly not that bad and you will learn a lot in the process.
>>
>>58668404
did you mean procedural?
>>
Just finished work, what should I do? I spent most of the day messing about with Excel so I want to write some code.
>>
>>58668517
i don't think scratch has procedures
>>
>>58668489
Download AIDA64 and learn (to read) ASM.
>>
lmaoValue =% 50;



What do this does?
>>
>>58668519
don't write code write programs
>>
will SICP teach me to program?
>>
>>58668670
No
SICP implies you know how to program.
>>
>>58668694
So "How to Design Programs" it is, then?
>>
>>58668566
lmaoValue = lmaoValue % 50;
>>
>>58666734
Nothing wrong with it.
>>
>>58668694
what level of knowledge does it assume?
>>
>>58668808
Really low.
>>
>>58668808
Category theory, set theory, discrete mathematics
>>
File: dds.png (52KB, 1325x877px) Image search: [Google]
dds.png
52KB, 1325x877px
Explain why this won't compile please
>>
>>58668831
So about beginner to intermediate then?
>>
>>58668833
You're not compiling and linking Lol.cpp
>>
>>58668833
it compiles with my compiler.
>>
>>58668847
Yeah, pretty much. Most high school seniors would be fine with it.
>>
File: Untitled.png (2KB, 220x24px) Image search: [Google]
Untitled.png
2KB, 220x24px
>>58668849
It worked when I typed this which is what I assumed you wanted me to do.
>>
>>58668901
Yes, that would do it.

For a more complex project you'll want some sort of build management, e.g. a makefile.
>>
So I have a pretty firm grasp of JavaScript.

What language should I learn next?
>>
>>58668944
To learn, you must first forget.
>>
>>58668944
C, you need to know a lower-level programming language
>>
>>58668944
Haskell, you need to know a high-level statically typed language
>>
>>58668944
A lisp, you need to learn to hate JavaScript
>>
>>58668944
python for sure
>>58668991
>>58669000
his plebian mind doesn't deserve it
>>
>>58668215
I wanna know what actually happens in behind.
>>
>>58668944
PHP
>>
>>58668944
Python or PHP
>>
>>58668944
Coq, you need to know a type theory
>>
>>58669021
C is one of the easiest languages.
There's not much to learn in C.

Haskell and Python are definitely harder.
>>
>>58668944
x86 assembly, you need to know what's really going on
>>
>>58669102
oh, so you're a pleb who has actually infected his brain with python?
>>>/r/ibbit
>>
TrueOS

It rocks.
>>
>>58669146
is it an anime os?
>>
File: 1473662794217s.jpg (9KB, 250x250px) Image search: [Google]
1473662794217s.jpg
9KB, 250x250px
>>58669113
Not sure if pretending or just trolling.
>>
File: 1458078464241.png (2MB, 1373x1080px) Image search: [Google]
1458078464241.png
2MB, 1373x1080px
>>58669160
How was that in any context a response to what I just said?
>>
File: 1481135594434.png (226KB, 700x500px) Image search: [Google]
1481135594434.png
226KB, 700x500px
>>58669184
You've got a (You), how this doesn't qualify as a response?
>>
>>58669160
I and many other developers refuse to use software written in Python, Ruby, or Go as a matter of principle.
>>
>>58666148
big D
>>
>>58669152
you can dl anime wallpaper and pretend.
>>
>>58668944
Python
>>
File: 1438825787156.jpg (32KB, 400x400px) Image search: [Google]
1438825787156.jpg
32KB, 400x400px
>>58669219
I didn't even imply that let alone say it.
>>
File: 79263216.png (6KB, 369x369px) Image search: [Google]
79263216.png
6KB, 369x369px
It's hard to image that anyone in this thread is older than 15. Literally /b/ tier discussions and arguments.
>>
>>58669267
Thanks for sharing, master of insightful discussions
>>
I'm a networking student and not really sure what I want to do with it yet, be it system administration or security. I'm even considering being a hardware specialist. I'm here to ask what language I should learn. I took two Python classes but my teacher was horrible, I got nothing out of it besides what I could teach myself. I'm interested in maybe making Android apps as well. I don't post very much here, sorry if this is weird
>>
File: 1483394413278.jpg (72KB, 440x406px) Image search: [Google]
1483394413278.jpg
72KB, 440x406px
>>58669259
So, what are looking for then, good sire?
>>
where the fuck do I get DrRacket from? It's not in portage and I can't find it online
>>
>>58669326
i would assume the X use flag pulls it in with just the racket package
>>
>>58669221
>I and many other developers refuse to use software written in Go
It's not hard to not use what doesn't exist, duh.
>>
>>58669326
Pretty sure it comes with the Racket package
>>
>>58669298
C and Erlang, since you're networking student.
>>
File: 1479592760342.gif (550KB, 728x720px) Image search: [Google]
1479592760342.gif
550KB, 728x720px
>>58669310
If I said nothing, would you believe me?
>>
Should I put a gonewild account ripper on my github?
>>
File: 1484177458718.png (514KB, 810x698px) Image search: [Google]
1484177458718.png
514KB, 810x698px
>>58669376
Absolutely, my friendo!
Have a nice day.
>>
File: 1479558719513.jpg (112KB, 1280x720px) Image search: [Google]
1479558719513.jpg
112KB, 1280x720px
>>58669405
I'm trying to clean up my apartment.
>>
>>58669396

sjws will likely remove it
>>
>>58669110
binary if you want to be able to hack the gibson
>>
>>58669367
I've actually never heard of Erlang. Why, as a networking student, should I learn it?
>>
What anime program should I make in Haskell?
>>
>>58669761
Because Erlang handles big telcos systems and it's known for great stability.
Look: https://youtube.com/watch?v=xrIjfIjssLE
>>
Working on a CLI interface for BasicTV for uploading, streaming, and network statistics. I'm also slowly implementing locks, since networking functions are very multithreaded.

Going off that last point, what is the best performance per watt system for under $50? I'm looking at the Raspberry Pi Zero, but there are probably a ton of multi core boards out there that fit my needs and my budget. I heard about Parallella, but I can't justify spending $100 for 18 ARM cores (maybe if it catches on), and I can imagine the RPi 3 gets the price from the other stuff (built in WiFi, BLE, GPIO, etc.)
>>
>>58669766
Haskell is lazy, so afaik as long as you don't evaluate anything final, it can be ANY anime in existence god bless
>>
>>58670000
You can use the type system to prove what genre of anime it is.
>>
>>58669932
*2 ARM cores and 16 Epiphany cores (small RISC cores with 128Kb of cache)
>>
>>58669932

What language?
>>
>>58669932
C++ (git is github.com/Dako300/BasicTV)
>>
>>58670174
If I'm not mistaken, he wrote it in C++, making the project immediate garbage.
>>
>>58670186
meant for >>58670174

>>58670189
What would you have written it in?
>>
>>58670189

cuck
>>
>>58670199
>What would you have written it in?
C, probably.
Maybe Rust or something if I felt like doing it in something more "modern".
It's just that C++ is complete garbage, and shouldn't be used for any purpose.
>>
>>58670245
In fairness, I don't use a lot of the fancy C++ functions. I chose C++ because of speed and it is what I use the most (also some features like vectors, std::array, std::tuple, and templates are pretty useful)
>>
>>58670296
I'm looking at your code right now.
>All of that global state
>Exceptions
>Compiler intrinsics
>Flow control inside macros
>Improperly written Makefile
>Pervasive use of stdint.h types where it's not necessary
But yes, I can see that you're actually not using that many C++ features, and are even doing things which C++ doesn't require you to do.
It's certainly not the worst C++ I've seen, but it really makes me question where it even needs to be C++.
>>
>>58670377
>all of that global state
What are you talking about specifically?
>Exceptions
yeah, those are great too
>Compiler intrinsics
The only two functions I know of that do that are likely/unlikely and the NBO marcos (endian switch, network byte order). Anything directly tied to a compiler is directly handled by a macro (that I know of). I plan on mapping compiler macros to these to make it safer
>Flow control inside of macros
I'm going to convert those over to templates when it breaks
>Improperly written Makefile
I will worry about that when compile times get too long
>Pervasive use of stdint.h types where it is not necessary
The programs communicate in binary with one another (ID # and type is sent out and then a list of the data entries with the size and raw data). So everything stored inside of a struct that is networked or exportable (everything but network sockets) would benefit from using well defined lengths. Otherwise data will be rejected because the version created doesn't match up with the rest of the network. I'm thinking about converting over to JSON with the variable names exported as macros, but I can't justify that now.

I will admit that OCD made me use it when it wasn't needed to keep it in line
>>
>>58670529
>What are you talking about specifically?
All of the global variables I'm seeing.
You seem to be keeping them somewhat contained to their translation unit, but I still don't know if you're have some unnecessary shared mutable state.
>likely/unlikely
That really seems to be a symptom of premature optimisation, as much as I hate that term.
Even then, if you really wanted to help the compiler generate better code, you would also use compiler attributes.
Although programs that really care about performance need to be deigned around minimising cache misses. A few intrinsics and attributes probably isn't going to make that big of a difference.
>Anything directly tied to a compiler is directly handled by a macro (that I know of).
I'm seeing that the likely/unlikely macros are not guarded by an ifdef checking for the compiler version, although that's an easy fix.
>I'm going to convert those over to templates when it breaks
I don't see how that's relevant.
>I will worry about that when compile times get too long
It's just that you're written a bunch of phony rules (which you didn't mark) and not rules which generate actual files.
You seem to be misunderstanding how make actually works and what makes it efficient.
>>
>>58670683
>I still don't know if you're have some unnecessary shared mutable state
I try and prefix files with static to help readability, but I haven't bothered with that yet since I am the only dev right now
>premature optimization
I think it also helps visualize the likely paths of execution, but that's a stretch.
>likely/unlikely aren't guarded by ifdef checking
thanks, I forgot about that
>You seem to be misunderstanding how make actually works and what makes it efficient
I haven't bothered really learning GNU Make yet.
I will rewrite it after the CLI interface (first version actually usable by other people).
>>
>>58670798
*prefix variables in those files
>>
Been using my January free time to catch up on newer languages.
Two which really stood out to me were:

Terra - http://terralang.org/
>The design of Terra comes from the realization that C/C++ is really composed of multiple “languages.” It has a core language of operators, control-flow, and functions calls, but surrounding this language is a meta-language composed of a mix of features such as the pre-processor, templating system, and struct definitions. Templates alone are Turing-complete and have been used to produce optimized libraries such as Eigen, but are horrible to use in practice.
I definitely recommend reading the landing page. Even if you never use the language, the food for thought and reasoning is really mentally stimulating

Chapel - http://chapel.cray.com/
>Chapel supports a multithreaded execution model via high-level abstractions for data parallelism, task parallelism, concurrency, and nested parallelism. Chapel's locale type enables users to specify and reason about the placement of data and tasks on a target architecture in order to tune for locality and affinity. Chapel supports global-view data aggregates with user-defined implementations, permitting operations on distributed data structures to be expressed in a natural manner. In contrast to many previous higher-level parallel languages, Chapel is designed around a multiresolution philosophy, permitting users to initially write very abstract code and then incrementally add more detail until they are as close to the machine as their needs require. Chapel supports code reuse and rapid prototyping via object-oriented design, type inference, and features for generic programming. Existing code can be integrated into Chapel programs (or vice-versa) via interoperability features.
Also the only language I've seen with a
distributed-memory task-parallel Hello World variant - http://chapel.cray.com/docs/latest/examples/index.html

How about you guys, seen any interesting novel languages recently?
>>
>>58671038
I'm currently quite interested in cubical type theory.
https://github.com/mortberg/cubicaltt
>>
ded
>>
File: 1485071865646.jpg (136KB, 960x1280px) Image search: [Google]
1485071865646.jpg
136KB, 960x1280px
>>58671824
What's the best book on Assembly (x86)? Comparable to what K&R is to C.

Also, should I bother with x86 Assembly or should I skip that and just learn amd64 Assembly since hardly anyone runs 32-bit boxes anymore?
>>
Why is everyone in this thread writing code which is both extremely unoptimized and almost impossible to read?
>>
>>58671994
cite your sources
>>
>>58671994
they're programmers
>>
>>58671884
K&R C is a top quality book and I don't know much about any adequate comparable examples.
>>
which language is good for writing code governments can't detect or comprehend?
>>
>>58672129
Anything useful and practical, so C
>>
>>58672169
i'm afraid they can hire some guys to make up for their disabilities
i need something they simply won't be able to decipher. or at least something to keep them busy for a while
>>
File: Untitled.png (5KB, 574x45px) Image search: [Google]
Untitled.png
5KB, 574x45px
How do I make Clang work with minGW?

I have searched for it and found no solution.
Or should I just not care and stick to G++?
>>
File: 1459232630120.jpg (69KB, 306x331px) Image search: [Google]
1459232630120.jpg
69KB, 306x331px
>>58672230
>>
>>58672200
I don't think the language is what you should be targeting. Can you be more specific about why you are doing this?
>>
>>58672129
if you have code which can run on a machine, the owner of that machine can, at least in theory, figure out what the code is doing.

>>58672200
look into obfuscators (for any language) and maybe you can do runtime code generation with C or something. but anything can be bypassed fairly easy like for example how pirated software gets cracked
>>
>>58672246
i am planning to take control of a certain territory which is currently claimed by a us state.
i already have everything important ready but i still need "decoys" which can't be written in the same language and they shouldn't be too easy to understand either.
>>58672289
>the owner of that machine can, at least in theory, figure out what the code is doing
yeah, but i need to buy some time. even if they figure it out in the end it doesn't matter assuming everything else succeeds.
>look into obfuscators (for any language) and maybe you can do runtime code generation with C
thanks, i'll look into it. i think C is too well known though, even for their kind.
>>
>>58672338
>i am planning to take control of a certain territory which is currently claimed by a us state.
will laugh when I see this on the news m8
Brainfuck is pretty hard to understand, but the lack of any libraries make it useless
>>
>>58672338
Since C compiles down to binary, you can just use really insane optimization settings and native architecture settings to make it harder. I'm assuming the source code isn't something you need to distribute.
>>
>>58672462
yeah even plain compiled C/C++ is too complex for most people to bother doing much reverse engineering with. and you can obfuscate it further:
https://github.com/xoreaxeaxeax/movfuscator
>>
>>58672412
>will laugh when I see this on the news m8
just be sure to watch non-state news. don't know what they'll try to pull here
>Brainfuck is pretty hard to understand
the amount of instructions probably makes it a lot easier to understand.
>>58672462
>you can just use really insane optimization settings
like what?
>native architecture settings
that sounds nice. thanks.
>>
File: wtf.png (4KB, 447x34px) Image search: [Google]
wtf.png
4KB, 447x34px
Explain
>>
>>58672529
-Ofast on GCC and Clang
>native architecture settings
native to the platform that's running. If you compile with -march=native on your computer, it isn't guaranteed to work on others. You need to know the architecture of all computers it will target. You should do >>58672507 instead of the native stuff

Been an InfoWars guy for years, that's why I responded (fighting globalists is a big motivator for BasicTV too)
>>
>>58672568
it says "iostream" wasn't found on your system
it also describes it as a "fatal error"
>>
>>58672587
Yup now why is it saying that

Its clang btw
>>
>>58672568
Have you done something silly so that it isn't on the include path? Can you include other standard library headers?
>>
>>58672568
Are you running 'clang' or 'clang++'?
>>
>>58672665
betting my male penis on him running 'clang'
>>
File: wtf.png (29KB, 602x836px) Image search: [Google]
wtf.png
29KB, 602x836px
>>58672665


>>58672647
I am going to try reinstalling LLVM after I install Visual Studio.
I read that it needs it to do the installation correctly.
>>
>>58672690
>>58672703
ouch
>>
>>58672703
>lol wtf
>not ayylmao
really now?
>>
Should I shave?
>>
>>58672764
yes
>>
File: IE05gcT.png (96KB, 820x661px) Image search: [Google]
IE05gcT.png
96KB, 820x661px
How do I do step 4? Is it pushing all previously printed text to a file or everything after?
>>
How do I post code on 4chan? I have a problem with a python program I'm trying to make where I only use instance variables yet calling a function of an instance makes it apply to every instance of that class
>>
>>58672826
<code>

</code>

use [ and ] instead of < and >
>>
>>58672845
Thank you. Anyone know what causes this:

betlista = [25, 50, 75, 100]
maxbet = 9000

class spelare:

def __init__(self, namn):
self.namn = namn
self.vinster = 0
self.lista = []
self.refill()

def refill(self):
self.lista = betlista
self.vinster -= sum(betlista)

def bet(self, res):
#Ett element
if len(self.lista) == 1:
if res == True:
self.lista.append(self.lista[0])
else:
del self.lista[0]
self.refill()

#TvÄ eller fler
else:
if res == True:
self.lista.append(self.lista[0] + self.lista[-1])
if (self.lista[0] + self.lista[-1]) > maxbet:
self.vinster += sum(self.lista)
self.refill()
else:
del self.lista[-1]
del self.lista[0]
if len(self.lista) == 0:
self.refill()

red = spelare("red")
black = spelare("black")

print(black.lista)
red.bet(True)
print(black.lista)


This gives:

[25, 50, 75, 100]
[25, 50, 75, 100, 125]

where it should be unchanged, eg:

[25, 50, 75, 100]
[25, 50, 75, 100]
>>
>>58672879
> if len(self.lista) == 1
it isnt
>else if res == True:
it is
>self.lista.append ...
>>
>>58672799
pls respond
or at least direct me to some reading material so if no one wants to spoon feed
>>
>>58672879
in the bet method you call self.lista.append... which adds an element to the list
>>
>>58672958
Use > filename
for example
ls > data.txt
will save the file printout in the file
>>
>>58672965
nvm now i see what you're saying. when initializing the object, make a copy of the list instead of referencing the same list
>>
>>58672958
Task is written in some strange language.
Oh, and read about pipes.
>>
>>58672979
How do you go from step 3 to step 4 though?
it just says "redirect text to a file"
what text?
everything before it or after it?
just some random command?
>>
>>58673001
it's unclear to me. there's a note at the bottom in case you missed it but i'm not sure it helps much
>>
File: Untitled.png (73KB, 1322x948px) Image search: [Google]
Untitled.png
73KB, 1322x948px
Ok I installed VS and reinstalled LLVM.

Explain this shit please
>>
>>58673047
>expecting C++ to work
>>
>>58673047
idk about VS/LLVM but have you set your environment variables
>>
File: Untitled.png (13KB, 395x331px) Image search: [Google]
Untitled.png
13KB, 395x331px
>>58673070
I tried including everything, still doesn't work

Whats the point of clang if its just going to do this SHIT
>>
>>58673047
>>58673240
post a single anime image and i shall bless you
>>
File: 1477482361625.jpg (78KB, 776x960px) Image search: [Google]
1477482361625.jpg
78KB, 776x960px
>>58673340
not him but how's this
>>
>>58673047
>Explain this shit please
You're trying to do work on Windows...

>> https://get.debian.org
>>
File: 1439389112440.jpg (175KB, 750x1117px) Image search: [Google]
1439389112440.jpg
175KB, 750x1117px
>>58673340
fuck anime
>>
>>58673240

Problem is not your PATH. Problem is clang's header search path. You can append additional directories to search for headers with the -I flag.
>>
New thread:

>>58673352
>>58673352
>>58673352
>>
>>58666600
it can if unbounded memory is turned off
>>
>>58672997
Thanks, weird how that would cause a problem

using self.lista = betlista[:] solved it
>>
>>58672230
The answer is to not use Windows.
Just set up a Linux enviornment already. Use VirtualBox if you're a lazy nigger. Just do it.
>>
>>58672799
All of these are basic shell commands.
Look at the manpages for pwd, mkdir,pushd/popd, cat, mv, ls, chmod, and also look up how redirection works (both pipes and the < and > operators.

That's all the commands you need, my frienderino.
Thread posts: 317
Thread images: 35


[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.