[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: 319
Thread images: 47

File: 2000px-Haskell-Logo.svg.png (36KB, 2000x1412px) Image search: [Google]
2000px-Haskell-Logo.svg.png
36KB, 2000x1412px
Previous Thread: >>56208637

What are you working on my dudes?
>>
>>56211985
Mobile apps on cordova
>>
traverse_
>>
File: type level map.png (6KB, 327x70px) Image search: [Google]
type level map.png
6KB, 327x70px
>363
Holy shit I had no idea

Nice image
>>
50 posts after bump limit, I think that was a /dpt/ record.
>>
inb4 monads
>>
>>56212028
>traverse_
Looks like a pointless waste of time.

Other languages accomplish the same thing with built-in generic set comprehension.

Unless /dpt/ is full of people who are really really bad at explaining things.

>You can validate a collection of inputs at the same time!

So can C#, Java, Python, etc. with built-in functionality.
>>
>>56211985
>What are you working on my dudes?
Getting a job as a Haskell programmer
>>
>>56211952


I'm not entirely sure what this is doing, but it looks extremely complicated for what I think it's trying to do.
>>
>>56212052
It's like foreach but abstracts over how the results of each iteration are composed. In most languages, the results of each iteration must be unit (void) with a side effect to actually do anything useful.
>>
>>56212052
The point isn't any single use case.

The point is that you can do many, many things with a single combinator.
>>
>>56212090
But side effects are easier to understand. Why would you use it in a language where you have foreach?
>>
>>56212090
>abstracts over how the results of each iteration are composed
What do you mean by this?

I'm genuinely trying to understand, but this does not make sense at all. What's the concrete implications of this?
>>
File: 1445940298633.jpg (13KB, 217x200px) Image search: [Google]
1445940298633.jpg
13KB, 217x200px
>>56211985
What opinions do you homosexuals have on algoroithms.

Do you download libraries with specific algorithms and just use them or do you read up on all the theory and spend a day coding said algorithm yourself?
>>
>>56212085
Most of the code is in libraries and you wouldn't have to write it yourself.
>>
>>56212103
So that particular example is doing something simple with a clusterfuck of esotericness, right?

Can you show me an example of it actually making your life easier? Bonus points for some sort of readability for the average human.
>>
>>56212115
Depends on the algorithm and if I need to do things within the algorithm.

More often than not, a library is the best way to go.
>>
>>56212085
You can reuse the "Result" data type. The meat of what is happening is in the last five lines (three if you consider that the types could have been inferred).

>>56212113
In my example (>>56211952), the results are being composed by either having success or a list of errors that occurred.
>>
>>56211985
I made a ncurses interface to browse 4chan.
its needs a lot work but curses is fun to play with.
>>
>>56212115
>Do you download libraries with specific algorithms and just use them or do you read up on all the theory and spend a day coding said algorithm yourself?
I use languages that come with good standard libraries, or I use a comprehensive add-on library like Boost for C++.

Python 3
Java 8+
C++ (with Boost)
C (with glib)
>>
>>56212111
because there not, most modern languages are making for/while loops obsolete as its error prone to have to manually manage data instead of having iterators built into the container types
>>
Give me a project idea that I can hone my algorithms, data structures, graph theory, etc. knowledge with. I'm fucking dying of boredom and a lack of things to do.
>>
>>56211985
http://github.com/deeepaaa/rana
>>
File: 1471761644797.jpg (100KB, 500x500px) Image search: [Google]
1471761644797.jpg
100KB, 500x500px
>>56212157
>imageboard
>no images
>>
>>56212052
I seriously don't get why you have such a hard time understanding this.

1) It does not need to be a language feature.
It is a library feature.
2) Haskell has list comprehensions.
3) traverse_ is a transformation of traverse
traverse is like a yielding foreach loop, except it gives back the same kind of container you gave it

>>56212135
It's not remotely esoteric
traverse_ action [a,b,c] = action a; action b; action c
traverse_ action [] = {...}

traverse_ action Just a = action a;
traverse_ action Nothing = {...}
>>
>>56212176
for rice mostly but there might be a way to include images
>>
>>56212154
>>56212158
I was thinking about noise algorithms in this case and they seem to be pretty simple in theory until you see the implementation which often is several hundred LOC
>>
>>56212201
Take one that is GPL licensed and copy it into your code, which is GPL licensed as well.
>>
data Result a = Success a | Errors [String] deriving Functor
instance Applicative Result where
pure = Success
Success f <*> Success a = Success (f a)
Errors es <*> Success _ = Errors es
Success _ <*> Errors es = Errors es
Errors es <*> Errors es' = Errors (es ++ es')

foo :: Int -> Result ()
foo x | x < 10 = Errors [show x ++ " < 10!"]
foo _ = Success ()

foos :: Result ()
foos = traverse_ foo [5, 11, 73, 0]
-- foos = Errors ["5 < 10!", "0 < 10!"]

I made a lot of mistakes in the example. Fixed now.
>>
>>56212113
Hey - I think I was rude to you in the last thread, I mistakenly thought you were arguing that traverse_ is useless because you can use for loops in C++ and accumulate the failures by hand. I'm sorry.

Accumulating the failures is an example of composing the results of each iteration. Another might be going off and doing an asynchronous operation and getting a future of its result. Combining those would give you a future that completes when the futures from each iteration complete. These might seem completely different but traverse_ manages to abstract over both of them.
>>
>>56212162
there are a million algorithm/data structures books out there, pick one that is implemented in your favorite programming language and work through the exercises
>>
>>56212090
It's the same as e.g. collection.map(|x| do_something_with_x(x)).collect::<anytypeyouwant>(); except less flexible
>>
File: 1422465590251.jpg (25KB, 228x221px) Image search: [Google]
1422465590251.jpg
25KB, 228x221px
>>56212213
>GPL licensed
>>
>>56212161
So you're saying I should use a language where I have to invent my own version of a foreach loop to have exactly the same effect?
>>
@56212231
Do you hate freedom?
>>
File: 2016-08-22-194510_956x298_scrot.png (74KB, 956x298px) Image search: [Google]
2016-08-22-194510_956x298_scrot.png
74KB, 956x298px
>>56212157
agreed, I am trying to create a dhex clone to get comfy with ncurses
>>
>>56212177
So it's just like mapc in Lisp.
>>
>>56212213
>using Communism: The Licenseâ„¢

Fuck the GPL.

GPL is anti-freedom.
>>
>>56212157
You're the only person in the known universe who believes this.
>>
>>56212228
No, it's not.
>>
r8 my queue implementation

#define DEFAULT_QUEUE_SIZE 16
template<typename T>
class fast_queue{
int size = 0;
int sizeMult = 1;
T *p_fifo;
T *container = new T[DEFAULT_QUEUE_SIZE];

void resize(){
++sizeMult;
T *tmp = new T[DEFAULT_QUEUE_SIZE*sizeMult];
std::memcpy((T*)tmp, (const T*)container, DEFAULT_QUEUE_SIZE*(sizeMult-1)*sizeof(T));
delete container;
container = tmp;
p_fifo = container;
}

public:
fast_queue(){
p_fifo = container;
}
~fast_queue(){
delete container;
}

inline void push_back(T value){
if(size == (DEFAULT_QUEUE_SIZE*sizeMult)){
resize();
}
container[size] = value;
++size;
}

inline T pop_back(){
++p_fifo;
return *(p_fifo-1);
}
};
>>
>>56212232
For the last fucking time, it's in the standard library

Remember when your language didn't have foreach? Bet you money GHC Haskell still had traverse back then

>>56212243
Possibly, I don't know Lisp
In Haskell, fmap and traverse are not the same.
The latter lets you do side effects across the structure, while the former has no "order" or side effects.
>>
>>56212232
no, foreach loops are built into container types of most modern languages
>>
>>56211988
Alright thanks.

>>56211998
I guess that's true but I tried to implement >>56211952 in C++ just for fun, and it does the job (https://ideone.com/iaDscd).

Obviously it's quite specific with int vector and the result type but you can make it generic with templates.
>>
>>56212225
Exercises don't motivate me. I'm looking for a larger scale project that I can spend considerable time getting to work and that utilizes higher level theory.
>>
>>56212232
>>56212260
Well it had sequence_ at least
>>
>>56212267
>I am looking for something I have a chance to give up on
>>
>>56212264
It's not nearly as generic. You have to replicate all that boilerplate for every different effect - composing Results is only one.

You actually can implement Traversable in C++ because it has HKTs.
>>
File: 6a4.jpg (58KB, 600x804px) Image search: [Google]
6a4.jpg
58KB, 600x804px
>>
>>56212338
I do realize that and I even said that it's quite specific to this one example but as I said you could for one make it work on any container holding any type of data by templating the traverse function. You could then further generalize it by templating the Result so that it can hold types other than a bool and message pair, not sure what else could be done there though. I didn't mean to say that it's exactly a one-to-one replica, instead I decided to rewrite the original snippet in C++ just for the fuck of it.
>>
>>56212341
>implying Microsoft isn't dumping an insane amount of resources into all sorts of open-source initiatives
>real nigga-tier jpeg artifacts
>>
>>56212157
What language?
>>
File: notre-dame-console.jpg (1MB, 2646x1763px) Image search: [Google]
notre-dame-console.jpg
1MB, 2646x1763px
I need to learn about image processing.
I'm writing an image viewer in C and I'm using OpenGL to do it.
Right now my thing to do is get it to scale images in a sane manner.
How do I do this? Do I do it in the shader, or by manipulating the viewspace, or some combination of both?
I really want to implement bicubic interpolation in my scaling.
What do?
>>
>>56212389
its done with ruby. I like the nokogiri gem.
>>
>>56212385
The signature of traverse_ could look something like this:
template<template<class> class T, template<class> class F>
F<nullptr_t> traverse_(std::function<F<B>(A)>, T<A>);

F being Applicative and T being Foldable are up to the functions being defined, so errors on that front will not be descriptive.

With concepts, the C++ would be very similar to the Haskell.
>>
>>56211376
>#include <cstdio>
you misspelled stdio.h
>>
>>56212522
No, I did not.
>>
Dependent function types can encode simple function types. The simply-typed lambda calculus has dependent types.
>>
>types
>not spaces
>>
>>56212503
>nullptr
Fucking why
>>
File: 1464894910570.jpg (50KB, 433x469px) Image search: [Google]
1464894910570.jpg
50KB, 433x469px
>>56212538
>a implies b
>b
>therefore a
>>
>>56212565
It's the best approximation to a unit type in C++.
>>
>>56212581
struct unit {};
>>
>>56212579
I'm making fun of the people saying C++ has dependent types.
>>
>>56212597
It does have dependent types though.
>>
>>56212593
I was thinking that it was worse, because sizeof(unit) is 1, but now I realize that sizeof(nullptr_t) is sizeof(void *). So I guess C++ has no satisfying unit type.

I just went for the built-in one.

>>56212614
By the same logic, the STLC has dependent types.
>>
>>56212628
I don't know what the STLC is but I'm almost certain it doesn't have dependent types. I didn't even explain my logic so it's beyond me how you've managed to extrapolate.

C++ has dependent types via non-type template parameters.
>>
>>56212467
Hows ruby? Any use case outside rails/sinatra?
>>
>>56212688
an uglier perl
>>
>>56212653
Your logic is that it has "compile-time dependent types", i.e. types that depend on "values" of a type of types (or integers), except these "values" must be compile-time constants. I.e., because templates can be encoded by dependent types, C++ has dependent types.

If you can't do this, it does not have dependent types.
template<class A, int N>
struct array {
A elements[N];
}

void main() {
int n;
std::cin >> n;
array<int, n> a;
for(int i = 0; i < n; ++i) {
a.elements[i] = i;
}
}

>>
>>56212756
It has dependent types.
Compile time cannot receive information form runtime.
Compiled C++ code does not have types beyond inheritance.

It's not complicated.
>>
>>56212756
It doesn't matter if it's compile or runtime, they're still dependent types. By your logic, Coq doesn't have dependent types, because none of Scheme, OCaml or Haskell have them.
>>
>>56212807
>>56212819
I get it now. You guys don't understand how dependent types can depend on values obtained only at runtime, or you don't know that it's even possible. So you don't actually know what dependent types are.
>>
>>56212738
But its made by jap! Can i write it in moon runes?
>>
>>56212844
So you really think that Coq doesn't have them? How retarded are you?
>>
>>56212688
its fine. It has a way to accomplish everything I needed so far. Its performs better than I expected but I think python is still a bit faster.
>>
>>56212871
No, I'm saying that you're mixing up type erasure with what I'm doing in >>56212756. Coq has dependent types, C++ does not.
>>
>>56212187
there are programs and libs (libcaca IIRC) to "render" pics in the console
>>
>>56212819
>>56212844
Imagine C++ didn't have a runtime
>>
>>56212894
Well, it does have runtime behaviour.
>>
>>56212930
Right, but imagine it didn't
>>
>>56212157
>curses is fun to play with
>>
>>56212940
Then you could say it has dependent types, but only usable in scenarios where they are equivalent to weaker types anyways.
>>
me on the right
>>
>>56212963
>then
Why then?

>equivalent to weaker
Nope
>>
>>56212973
Learn the lambda cube before you start spouting about this stuff.

STLC does not have dependent types.
System F does not have dependent types.
C++ does not have dependent types.
Dependent types (with a type of types) can encode all of these type systems.
>>
File: lambda cube.png (6KB, 321x294px) Image search: [Google]
lambda cube.png
6KB, 321x294px
>>56213007
C++ has dependent types you fucking idiot
>>
>>56213021
If it did, you could write >>56212756.
>>
>>56213021
The point of the pic was just to point out I already have it saved on my computer. I ocassionally use it as the /dpt/ OP image.

>>56213007
You seem to think that CT has dependent types but CT + _ doesn't.
>>
>>56213037
CT?
>>
>>56213033
No, you couldn't. No part of type theory makes any comments whatsoever on IO or side effects etc. (other than effect systems obviously)
Even induction isn't part of the standard COC so what are you even trying to prove?
>>
File: s.png (8KB, 556x375px) Image search: [Google]
s.png
8KB, 556x375px
>bought PC with windows 10
>dual boot linux
>linux keeps freezing everytime

what do?
>>
>>56213037
>>56213050

Plus you can have the compiler be the runtime.
Output is the error log & input is a file that's #include 'd
I believe you could use comma seperated values (not a CSV file) inside a variadic template instantiation
>>
File: anal beads.png (55KB, 841x1721px) Image search: [Google]
anal beads.png
55KB, 841x1721px
>>56212890
You can easily roll your own.

Pic related is a piece of OP's image, straight from the URL.

I guarantee my code is not the most concise or clean way of doing it, though, but you certainly don't need a library.
>>
>>56213084
>botnet linux
Why did you decide to have the worst of both worlds?
>>
>>56213050
I don't even know where you're going with this. The way the value is obtained is irrelevant. If C++ had dependent types, you could write that. Period.
>>
>>56213084
>he fell for the linux meme
>>>/g/sqt
>>
>>56213123
I'll spell it out for you
IO IS NOT REQUIRED FOR C.O.C.

As you tried to avoid admitting earlier, you think that if there, hypothetically, were no runtime, then it would be dependently typed.

Just don't run the executable.
>>
Working on software to capture data from canopen network. I have a canopen interface and the only way to read information from it is by polling. Not event driven. I've got a loop polling the port and use producer-consumer pattern to read information from the port.

Is there a better way than polling and producer-consumer pattern? My CPU usage spikes to 100% on the thread polling. I'm running the code on a resource starved embedded computer so it cause issues with other code.
>>
>>56213166
We're talking about C++, not the CoC.

If it had no runtime behaviour, C++ would be effectively dependently typed, because you are limiting the language to the cases where dependent types are no stronger than weaker types like forall in System F.

If a tree falls in a forest with nobody around to hear it, does it make a sound?
>>
File: 1449700279793.png (74KB, 300x256px) Image search: [Google]
1449700279793.png
74KB, 300x256px
>C++ has dependent types because the CoC doesn't have I/O
>>
>>56213104
>(i, j) instead of (x, y) for pixels

Come on, my guy..
>>
>>56213212
The CoC is dependently typed, and so is C++.
If the CoC is dependently typed, despite not inherently admitting any kind of IO, then why is C++ not?

>no stronger
They are stronger
System F:
template <typename T> e // e can depend on T
Dependent function type:
template <T x> e; // e can depend on x

>>56213212
>>56213224
...
I actually can't believe you just did this
What a fucking dumb thing to do
>>
>>56208198
how do you suggest you do non-trivial "non OOP" without it resembling some form of OOP, especially in the context of a game where you're literally representing objects/entities
>>
>>56213287
and keep in mind we're talking about procedural C vs OOP C++, don't involve functional programming
>>
>"hey anon, I need to implement feature X"
>"sure"
>code base is Pajeet tier even though it's from our """senior"""
>undocumented, code duplication, magic numbers and whatnot
>implement feature X
>make a build
>"anon, your code crashes"
>wtf
>"when I click <undocumented edge case> it crashes"
>get lectured for half an hour by the manager
>senior: "yeah, only I know all the edge cases but I forgot to tell him"
>"you better fix it right this is an important client"
>revert changes and hack into existing mess
>magically works
Seriously, am I working for a meme company?
We only developer test code and ship it. Agile or any other form of project management is non existent.
Another great project I have to maintain is by some Turkish fellow that couldn't speak English and left without handing over the code. 'countOfAmount' is apparently a term in Turkey.
>>
>>56213248
That's not the only reason C++ isn't dependently-typed, it's just a simple litmus test.

If you think integer templates are enough to say that it's dependently-typed, consider this:
struct One;
template<class N> struct Succ;

template<class N> struct Neg;
struct Zero;
template<class N> struct Pos;

typedef Three = Pos<Succ<Succ<One>>>;
typedef MinusTwo = Neg<Succ<One>>;


>What a fucking dumb thing to do
What?
>>
>>56213304
Do you like your job?

Are you learning new tech and solidifying your current techs?

Are you paid enough?

Those are much more important than whether or not some anon arbitrarily decides it's a "meme" company.
>>
https://en.wikipedia.org/wiki/Procedural_programming#Comparison_with_object-oriented_programming
>The most important distinction is that while procedural programming uses procedures to operate on data structures, object-oriented programming bundles the two together, so an "object", which is an instance of a class, operates on its "own" data structure.

basically >>56205995
>>
I wanted to make a bunch of simple games for practice, but I keep coming across situations where I'd want a grid or lattice that I can traverse. For example, starting at one letter in related pic and building a word out of it. To this end, I've been trying to make easy ways to quickly build a map with all the required links.
>>
File: generic.png (12KB, 256x247px) Image search: [Google]
generic.png
12KB, 256x247px
>>56213355
fug meant this.
>>
>drop phone on keyboard
>3 browser windows open, compilation hotkey was struck, and now I'm getting build errors
>found like 6 different little character barfs after semicolons randomly around my codebase

What the fuck. I dropped my phone on my keyboard ONCE and all of that instantly happened.
>>
>>56213377
ctrl+z
>>
>>56213287
OOP has encapsulation, subtype polymorphism, inheritance, etc.

And you don't need to model game objects as objects with both fields and methods.
>>
>>56213325
I initially thought any POD struct could bem, do to the wording, but apparently there aren't any implementations or it's ambiguous so I should say, if it's confirmed that it's invalid to do
struct myStruct{};
constexpr myStruct x;
someTemplate<x>;

Then yeah, it wouldn't be dependently typed. But that's got nothing to do with your reasoning.

As for the other stuff, you aren't using pi functions.

constexpr int zero = 0;

template <int x>
constexpr int succ = x + 1;

etc


You posted a reply exactly 1 minute later
And you used a fucking cancer image too
If I didn't no any better I would've assumed it was intentional bait
>>
>>56213304
Most companies are actually not going to have any documentation at all and the code base will be a huge mess in dire need of refactoring or complete rewrite. The problem is that you are never going to convince management to do any of that.
>>
>>56213408
*could be, due to the wording
>>
File: so far.png (11KB, 449x390px) Image search: [Google]
so far.png
11KB, 449x390px
>>56213372
progress so far
>>
>>56213372
That's a graph. The comp sci term is graph, or more specifically an unweighted, undirected graph.

https://en.wikipedia.org/wiki/Graph_theory
>>
>>56213408
>>56213422
Actually, it should still work for POD structs, it's just more awkward and you have to pass const references (they have to have static linkage too)
>>
>>56213462
It seems so far like he's just got literal adjacency, so I'd say it's just a grid
>>
>>56213338
>Do you like your job?
It's Android development. Java sucks, front end sucks. The only thing slightly interesting is software architecture.
>Are you learning new tech and solidifying your current techs?
There's not much to learn when doing Android development. I learn stuff in my free time.
>Are you paid enough?
A manager at the Mac Donalds earns more.
TL;DR I should find a new job. I'm just afraid that I end up in the same mess as before like >>56213414 said.
>>
>>56213408
>>56213325
autists
>>
File: araragi rain.gif (1MB, 800x450px) Image search: [Google]
araragi rain.gif
1MB, 800x450px
>creating Java library
>get an idea to make a conventient object that would be able to easily chain certain operations together
>finish programming it
>stumble across an article about monads in Java
>realize I just accidentally implemented a monad class
>mfw

at last I truly see, functionalfags, what you keep jacking off about in these threads
monads are pretty fucking neat
>>
File: 7550629.jpg (42KB, 938x477px) Image search: [Google]
7550629.jpg
42KB, 938x477px
Could any of you using Windows 10 post a screen shot of your desktop?

i want to see your programming environment, as i will probably use win 10 too and want to see what could i do

thanks
>>
>>56213558
Yep. It would be nice if void functions returned their parent objects when invoked.
>>
>>56213408
Constexpr integers used in templates are no more powerful than the type-level integers in >>56213325. They're just a more convenient representation.

Until you can do >>56212756, C++ does not have dependent types to any useful degree, so it might as well not have them at all.

By the same logic, the CoC does not have dependent types to any useful degree, but by itself the CoC is already useless. You can easily add data types and I/O to the CoC to make it useful, though, without affecting the type system. So it has dependent types.
>>
File: desktop.png (4MB, 1920x1080px) Image search: [Google]
desktop.png
4MB, 1920x1080px
>>56213563
pic

>>56213586
>parent objects
>>
>>56213586
It's trivial to do that already.
>>
>>56213608
t. inbred
>>
>>56213596
For the last time, you don't need IO to have dependent types. You can just imagine all the dynamic runtime stuff as just added bloat in a sub-language. There is nothing type-theoretical about compile time or run time. It is to do with effects and coeffects.
>>
>>56213626
???

Change
void foo() {
this.x = 10;
}

to
Foo foo() {
this.x = 10;
return x;
}
>>
>>56212970
b) me
>>
>>56213640
For the last time, it's not about I/O, it's just an example that would be possible IF C++ HAD DEPENDENT TYPES.
>>
>>56213558
Are you sure?
>>
>>56213645
return this;

Obviously
>>
>>56213645
t. clinically retarded inbred
>>
File: prolog-tree.png (66KB, 775x687px) Image search: [Google]
prolog-tree.png
66KB, 775x687px
> in a neighboring parallel reality, code is run in Prolog
>>
>>56213683
t. Not an argument.
>>
>>56213664
yes
>>
>>56213662
It is EXACTLY about IO.
IO does not exist at compile time.*
C++ has compile time dependent types.
(For all intensive purposes, C++ doesn't even exist at runtime. It has no run time system, and the only unique thing is the inheritance via storing at the address. The closest to a run time system would be RTTI or virtual tables. It's just machine code produced as a "side" effect of compiling.)

The example is not necessarily possible simply because of dependent types.
Haskell has a rewrite system through RULES pragmas.
There aren't any first class objects or values involved, you can't create RULES pragmas from runtime values, etc, and they don't have types. Does that mean Haskell doesn't have proper types?

It's nonsense and you should know better.
>>
>>56211985
I'm coming back to programming in preparation for attending a degree course at University of Derby. It's a founder's degree because I got shit GCSE results, but it's better than nothing.

Haven't programmed for years. Currently reading up on it again, as well as some Assembly code.

I'm kinda worried about hitting the same problem I hit the last time I tried though...The "okay now I learned everything it told me to learn, what the fuck do I do with it? I have an idea but oh wait it never told me how to start, develop and finish an entire project and oh shit I need access to advanced libraries to perform certain functions well shit where do I find them, what do I use and how to I learn to use them and actually fuck these tutorials and books really didn't teach me what half this shit actually does or how it works"

Buuut... I guess my current goal is to make a fun random generator that generates entire story/RP/DnD campaign/setting ideas for you to give you infinite inspiration. Perhaps I'd even develop it to the point where it would full on randomly generate and write an entire fiction novel for you.
>>
File: pape2-min.png (4MB, 4920x1920px) Image search: [Google]
pape2-min.png
4MB, 4920x1920px
>>56213563
I'm not sure what you're looking for, exactly.

I develop on Windows 10 at home, Windows 7 at work (about to switch to 10 Enterprise).

There's not much difference between them, other than a few extra features on 10 in VS, like CPU performance profiling and UWP dev.
>>
>>56213737
practice makes perfect
>>
>>56213683
Not that anon, but he just showed an example of returning the containing object of a void method, which would allow for chaining if you wanted it to.

Are you confused, or just not very good at conveying your thoughts? That's a sign of the 'tism, you know.
>>
>>56213719
>For all intensive purposes
AHAHAHAHA I didn't read anything else you wrote after this.

That's not even a typo; it's a blatant mark of a low intelligence.

>inb4 it's a meme
>>
>>56213719
>IO does not exist at compile time.*
Of course. The way dependent types work is through free variables which may or may not be substituted with actual values during type checking.

An example that doesn't use I/O:
void foo(int n, array<int, n> a);

Classic dependent function. You can't move "n" to a template parameter, because that limits where the argument for "n" can come from to a compile-time constant and thus it becomes equivalent in power to the type-level integers I showed earlier.

>For all intensive purposes, C++ doesn't even exist at runtime.
The fact that Coq has dependent types and type erasure does not mean that C++ has dependent types because it has type erasure.

>The example is not necessarily possible simply because of dependent types.
So what do you need to make it possible?
>>
ive got a C++ resit exam tomorrow, /g/. how can i best make myself less fucked? its likely to be easier than the initial exam and coursework, but C++ has a shitton of room to fuck up on even basic shit. its a second year module entitled advanced programming, and as well as C++ it covers general program design.
>>
>>56213835
>resit exam tomorrow
>only now asking for help

Good luck next year.
>>
File: your fault.jpg (19KB, 640x430px) Image search: [Google]
your fault.jpg
19KB, 640x430px
>>56213645
>return x;
>>
>>56213872
Too late: >>56213678
>>
>>56213830
>So what do you need to make it possible?
What are you talking about?

What I said is that compile time C++ (which my bracketed comment meant is basically all C++) has dependent types.

template <T x> e;

You cannot deny that this is a dependent function.
The fact that it also has additional baggage that can't utilise this is beyond the point. It has dependent types.


>>56213826
less syllables this way, so it sounds nicer, that's why it spread
>>
>>56213865
im packing in everything i need, and as long as i get 40% of the total mark i can carry on

i really, really dont like C++, but sadly its required so i need to pass this module.
>>
>>56213885
>template <T x> e;
>You cannot deny that this is a dependent function.
It's not a dependent function. If it even was a function, it would have the type
T -> Type
.
>>
Does anyone have any good resources on networking and C++?
>>
>>56213921
...
template <T x> /**/ f /*e*/;
e.g.

template <int x> struct f {
x val;
}

f<3> // a type
>>
>>56213803
>I swear there are at least two people in this thread with single-digit IQs please believe me!
>>
>>56213959
Whoops, ignore my "x val" bit

template <int x> struct f {
constexpr int val = x;
}
>>
>>56213959
Yes it's dependent type, but it's fucking limited compared to Coq.
>>
>>56213988
>Limited
It's turing complete
>>
>>56213967
>I'm going to arbitrarily call everyone inbred for no reason!
>>
>>56213994
Still limited. You're confusing two different things anon.
>>
>>56213979
You still haven't done anything where a type depends on a value.
>>
>>56214019
What's limited?
All that was being debated was dependent types in C++. It has them, exclusively at compile time.
What's your point?
>>
>>56213774
>I develop on Windows 10 at home, Windows 7 at work (about to switch to 10 Enterprise).

did you disabled all those telemetry bullshit (if so, how?)?

what programming languages do you work on?
>>
>>56214029
template <typename T, typename S, T x, S y> struct prod {
T fst = x;
S snd = y;
};



prod<A,B>; // proof of A ^ B
>>
>>56214033
>What's limited?
You can't express anything like you can with Coq. Example you can't use float as argument of dependent type.
>All that was being debated was dependent types in C++.
There is a very limited support to dependent type in C++.
>What's your point?
I agree with you, but want to point explicitly that it is limited compared to Coq.
>>
>>56214042
>did you disabled all those telemetry bullshit (if so, how?)?
No, I don't particularly care about it either. Every single website, application, mobile app, etc. uses massive amounts of telemetry (i.e. shipping relevant usage data to help the devs improve the product).

>what programming languages do you work on?
Mostly C#, some Python, C when I have to, C++ when there's a gun to my head.

Lots of SQL and R, too.

Used to work primarily with Java, now I just use C# instead.
>>
>>56214072
whoops

prod<A,B,a,b>
where a : A, b : B

in agda the types would be implicit

{A} {B} (a:A) (b:B)

>>56214083
Floats can be done with integers
Agda doesn't even have builtin integers

Coq isn't just CoC it's Co(C)IC+
>>
>>56214109
>Floats can be done with integers
You're confusing two things anon.
>>
>>56214138


struct p {
int x;
int y;
};

p a = { 3, 4 };

template <typename T, const T& x> struct y {
T val = x;
};

y<p, a> z;

-- sorry about the names
>>
>>56214177
this is just proof you can use PODs btw
>>
>>56214177
I'm sorry for you.
>>
>>56213979
>>56214029
Actually, I suppose you could argue that you have done this:
f : int -> Type
f x = (val : int) * (val == x)

But there's an equivalent form that doesn't use dependent types at all - just the value itself.

>>56214072
Not dependent types. You can write this in System F.
>>
>>56214072
>>56214206
Er, wait, never mind. It's the same as the first example - can be seen as dependent, but is no stronger than a non-dependent construct.
>>
>>56214206
the values are built into the type

I can't actually think of a use since C++ types are structs and obviously very different
>>
>>56214226
>no stronger
Again, this is wrong. You have the dependent function
template <T x> e
This is not the same as universal quantification:
template <typename T>
You can blend both as I did in the example
template <typename T, T x> e

My example might not be entirely useful, and might be expressable without dependent types, but it does have dependent types.

{T} (x : T) e

{T} is agda syntax for an implicit/inferred forall
>>
>/dpt/ will never again hit 377
>last thread was peek /dpt/
How does this make you feel?
Is programming a dying art?
>>
>>56214262
>My example might not be entirely useful, and might be expressable without dependent types, but it does have dependent types.
It was a massive stretch for me to go from "int variable initialized to constant x" to "(val : int) * (val == x)". You're not really expressing the latter in C++, but it's the closest way to express it in a type theory with dependent types and an equality type.
>>
>>56214299
this only happens because all the anime and anti-anime autists all race to get their picture in for the new DPT so they make their new thread 10 posts early.
>>
>>56214341
There's always std::array<T, size_t>

(T : Type). (n : size_t). T[n]
>>
OOP autists will have a shitfit over foldrM
>>
>>56214262
>>56214341
And
>You can blend both as I did in the example
>template <typename T, T x> e
is not dependent.
e :: forall T. T -> Type

It requires some kind of Type : Type, but that's does not mean dependent types.

>>56214418
Expressible using only type quantifiers, if you look back to my type-level integers.
>>
>>56214436
No, it's
forall T. forall (x:T). e
the x:T bit is dependent

>>56214436
If you use singleton types you can do dependent typing in a lot of languages
>>
>>56214453
Simulated dependent typing I mean.
Effectively you've just eliminated non-type terms.
>>
>>56214453
>>56214468
>the x:T bit is dependent
You're not using x so it might as well not be there.

>If you use singleton types you can do dependent typing in a lot of languages
>Simulated dependent typing I mean.
Yeah, exactly. It's not dependent typing, it's something weaker because it only works on constants (which can be encoded as types, like I showed).
>>
>>56214380
the hime poster posts them early sometimes
>>
My language can sort of do a subset of the feature of your language that you're talking about, I guess your language has no reason to exist then, huh?
>>
>>56214478
>You're not using x so it might as well not be there.
Yeah, I did a bad job

>Yeah, exactly. It's not dependent typing, it's something weaker because it only works on constants (which can be encoded as types, like I showed).
C++ is still dependent, the fact you _could_ do something similar using quantifiers is beyond the point.

>constant
You can use your own types, provided they're POD structs with constant members and you use const ref
>>
This type theory masturbation is insufferable.
>>
>>56214570
>T
>R
>I
>P

>>56214499
But can it do a subset of my language doing a subset of yours? Can it do it in O(n)?
>>
>>56214570
You're just upset because C# doesn't support it. (F# doesn't either.)
>>
File: Calculus of Maki Constructions.png (312KB, 452x355px) Image search: [Google]
Calculus of Maki Constructions.png
312KB, 452x355px
>GHC
>Prelude a mess
>Still no dependent types

>Idris
>Bugs
>Flat effects, not built in

>F*
>ML
>Top level side effects

When will FP become great again?


>>56214484
I'm not the hime poster, I've posted hime once or twice before but I wait till the bump limit
>>
>>56214626

I can neither confirm nor deny these allegations.
>>
>>56214658
It's okay, mummy. We're all friends here.
>>
>>56214658
how's your riffle?
>>
File: dr paval.jpg (14KB, 350x250px) Image search: [Google]
dr paval.jpg
14KB, 350x250px
>>56214634
>Agda, Coq
>Awkward as shit
>Type sigs everywhere
>Proofs required


They're not my friends
>>56214669
>>56214658
>>
>>56214634
When people stop trying to ruin Haskell.

>i dont understand mtl so transformers sux wtf!!
>>
>>56214706

burger king
>>
File: didj.png (39KB, 975x535px) Image search: [Google]
didj.png
39KB, 975x535px
>>56213462
aight, now it takes in an adjacency matrix and makes an actual graph out of it. Now I guess I just need to write ways to traverse it.
>>
>>56214723
Transformers do suck, they're a code smell

Algebraic effect systems are much nicer
>>
>>56214775
Not all effects that I want to represent are algebraic.
>>
File: 1459566805282.jpg (33KB, 640x640px) Image search: [Google]
1459566805282.jpg
33KB, 640x640px
>people UNIRONICALLY use haskell
>>
>>56214714
>Proofs required
"Just take my word for it, compiler brah xD"

XSS/overflows/exploits and crashes everywhere.
>>
>>56214824
>tfw to intellectual too learn haskell
>>
>>56214824
What should these deluded people use?
>>
>>56214846
teach you're self too learn LPW
>>
>>56214853
java and/or C++
>>
>>56214853
they're fine where they are
let them live in their fantasy
>>
>>56214884
fantasy of maintainable reusable code
>>
>>56214890
>fantasy
exactly
>>
Self thought, degreeless programmer here.
I've been successful in my programming career though I'm seriously lacking in my math skills.
It's not that I'm terrible at math, it's just that I've never seen all that stuff.

So I've decided to brush up on my math skills. What math subjects should i study?
>>
>>56214908
Linear
Abstract
Discrete

Category theory
Type theory
Set theory
>>
>>56214908
elementary algebra, linear algebra, calculus, geometry, trigonometry
>>
>>56214908
Probability
>>
>>56214908
start with the greeks
>>
>>56213922
Not really but use Google's protocol buffers to serialize data.
>>
>>56214982
this or combinatorics in general
>>
>>56212111
side effects can be more clear at a very simple level but they make the entire program more difficult to reason about in a fundamental way
>>
File: file.png (2MB, 1366x768px) Image search: [Google]
file.png
2MB, 1366x768px
>>56213563
Enjoy my mess of a desktop
>>
>>56212162
Play Screeps. It's a MMO RTS for programmers.
Your knowledge will help you a lot because you are very limited on CPU and there is lot's of places where you can use various optimizations from graph theory and algorithms. And as you progress through the game it all becomes much more complex so there is always something new to implement, not just optimize old code.
It's better than being bored and doing nothing.

>>56213304
Feels good being senior even though being the youngest employee. At least I can force people to write non shitty code.
>>
>>56215108
The anime chick needs to have huge tits hangin' out.
>>
>>56212446
Please respond.
>>
Damn, Haskell has a nice logo. How can other programming language logos even compare?
>>
File: Akira.E..Ferrari.full.274791.jpg (1MB, 1300x1790px) Image search: [Google]
Akira.E..Ferrari.full.274791.jpg
1MB, 1300x1790px
>>56215220
No.
>>
>>56212111
Haskell has foreach

traverse_

>>56215220
Faggot
>>
>>56212446
>>56215286
What. If you use OpenGL you don't worry about pixels. You just make a rect wherever you want and put a texture on it. The way you configure pipeline or write fragment shader will determine what kind of interpolation you will get.
>>
File: (You).png (403KB, 521x520px) Image search: [Google]
(You).png
403KB, 521x520px
>>56215392
>If you use OpenGL you don't worry about pixels.
>>
I'm writing a CGI script that adds a new line of output with every page reload.

It seems to work fine when running through command line, but it doesn't add lines when reloading through the web browser.
>>
File: ????.jpg (45KB, 577x622px) Image search: [Google]
????.jpg
45KB, 577x622px
>>56215392
If I'm understanding you correctly, you're saying that if I want to downscale I should use a smaller quad and then handle the sampling in the shader.
But VAOs are specified in normalized device coordinates (([-1, 1], [-1, 1])), so to my knowledge a quad can't scale down on a per-pixel basis.
>>
>>56215523
>If I'm understanding you correctly, you're saying that if I want to downscale I should use a smaller quad and then handle the sampling in the shader.
Well, that's what I would do if I only needed to downscale.
But I guess image viewer should also be able to upscale and I'm not sure if graphic card will handle correctly such a huge rect. So instead I would use float scale and float2 position attributes in the shader and multiply UVs by scale.
>>
What are you guys using to write common lisp in? I can't stand the emacs keybindings.
>>
>>56212446
do it in a shader
>>
>>56215523
pic related has a section that talks about how normalized device coordinates get mapped to pixels
>>
>>56215706
You can't exactly write Lisp in some other editor...
>>
senior software student starting a web programming class in a week. apparently we will be using javascript, php, mysql, node.js, html, css

I have never used any of these languages (I know basic HTML / CSS, also I have used Oracle SQL in the past). I've neglected learning web development for years and now it's time. Ideas for projects / learning experiences? Any good standard resources for learning javascript, php, node.js? Anything that would help me gain an edge in class?

Thanks.
>>
>>56215796
You can write and compile lisp in any text editor. But I was hoping for something else that has the features of something like slime that doesn't set you on fire for trying to use it
>>
How do I get GitHub followers?
>>
>>56215822
Thank you.
>>
>>56215855
make the hottest new meme lang
>>
>>56215855
post yours so i can follow you. dont have any projects yet though

you can follow too
>>
>>56214775
>Transformers do suck, they're a code smell
t. pajeet
>>
>>56215706
You could vim/tmux/slime or evil in emacs, if you like vi.
>>
Y'all still talking about generic foreach loops?
>>
>>56215855
Start forcing other projects to accept lgbt CoC.
>>
File: 1454330292307.png (136KB, 800x969px) Image search: [Google]
1454330292307.png
136KB, 800x969px
>>56215110
>Screeps is about scripting your creeps. No point’n’clicking any longer! You write real JavaScript* which controls your units autonomously. Any time, everywhere, even while you are offline.
>Your success depends on your intelligence rather than your wasted time

(I'm not the one you responded to) Very, very interesting. Damn! Why do I discover it only now? Have you played it? How was it?
>>
File: fuggy.png (6KB, 211x456px) Image search: [Google]
fuggy.png
6KB, 211x456px
>>56214744
I've added a depth first search.
>>
Tell me what to program
>>
>>56216222
an artsy fartsy 2d pixel gaym
>>
>>56216222
write a program that receives a text as input, and outputs a summary of the input
>>
>>56216139
I'm playing it for a week now. It's way greater than I expected. Most of the programming competitive games like codewars, robocode, Zachtronics' games are just way too simple and competing boils down to optimizing similar code in similar way. But gameplay of screeps is more diverse than any popular RTS. Bosses, quests, heroes and other MMO specific elements are going to be added as well. I was also worried that you will have to program lot's of things just to start the game but the progress is very gradual so on first you don't need to worry about most of the game. I've wrote some simple js scripts but now I'm writing everything from scratch using TypeScript and various tools people wrote for the game. It's quite impressive that people go this far, especially when you see all this sorcery people on slack do to optimize pathfinding etc.
https://github.com/screepers/screeps-typescript-starter
https://github.com/Puciek/screeps-elk

>>56216222
Program that displays QR code of clipboard when you press a key combination.
>>
I checked the wiki and the only recommended book for C# is Apress Accelerated C# 2010, is this still a good choice to learn the language with?

I'm basically looking for a book to get started on C# with and would appreciate anyone with personal experience giving their two cents.
>>
File: fugggggg.png (10KB, 530x506px) Image search: [Google]
fugggggg.png
10KB, 530x506px
>>56216166
for a 3x3, it takes over 7 seconds to find every path through the lattice. For a 4x4, it still hasn't completed after 10 minutes :( Does this make me a pajeet?
>>
>>56216450
>proprietary language
>proprietary books
>>
>>56216565
>b8
But what do you propose instead?
>>
>>56216585
i propose a toast
>>
>>56216565
C# isn't proprietary, the language is an ECMA standard and the compiler is free software
>>
>>56216614
t. paid microsoft employee
>>
>>56215822
>Anything that would help me gain an edge in class?
Take up drinking. Lots. You will probably go through most of these too:
http://www.healthline.com/health/depression/medication-list
>>
Anyone got an upload for that Haskell Book that people seem to like?
>>
>>56216666
t. unpaid microsoft intern
>>
>>56216783
which 1?
>>
>>56216918
learn you an autism for git gud
>>
>>56216918
http://haskellbook.com/
I thought that was obvious enough.
>>
>>56216457
You've got exponential or factorial or something time complexity. Worst case for going from node A to node B should be that you have to check every edge once. So you've definitely pajeeted something.
>>
>>56216964
http://haskellbook.com/authors.html

fucking dorks
>>
write my parser for me niggers
>>
>>56217020
I fucking might if you put up the specs on github, faggot.
>>
>>56217020
data MeNiggers = MeNiggers
parse "me niggers" = Just MeNiggers
parse _ = Nothing
>>
>>56216934
>>56216964
here you go:

https://my.mixtape.moe/mtljge.pdf
>>
>>56217058
>Pure functional programming
>without fear or frustration
fucking gay as shit kill yourselves
>>
File: 1470869490388.jpg (27KB, 460x503px) Image search: [Google]
1470869490388.jpg
27KB, 460x503px
>>56212115
I steal what I need... destroy what I can't use... kick out the ladders I climb up... burn the ropes after I climb them... tell no one where the bodies are buried!
>>
>>
>>56212201
fuck that shit it's not worth it to read through someone else's garbage code only to discover that it's not what you need/want, if you're a remotely competent programmer you should have no problem with implementing basic algorithms to suit your needs
>>
File: mathphd.jpg (40KB, 640x427px) Image search: [Google]
mathphd.jpg
40KB, 640x427px
>PhD in monads
>Any job I want
>$300k starting
>>
File: g_21.png (769KB, 1052x1342px) Image search: [Google]
g_21.png
769KB, 1052x1342px
Is it true that you have better chances with cute anime girls if you know how to program?
>>
>got K&R
>understand it somewhat but when it starts offering deeper explanation of things i just get completely lost
did i fall for a meme
>>
File: Chi-chan.jpg (512KB, 852x973px) Image search: [Google]
Chi-chan.jpg
512KB, 852x973px
>>56217774
Only if you understand pointers.
>>56217780
Yes, read C Programming a modern approach.
>>
>>56217780
I kind of tuned out some of the later chapters. You need some more experience to even know what they're talking about. You'll come back to the chapters again and be like "Oh I see what they mean now." It was written back in the 70s/80s for other computer engineers to read, not high school students falling for the latest memes.
>>
>>56211985
Reminder that lisp >>>>>>>> haskell
>>
>>56217972
Perhaps for this definition of (>>>>>>>>):
x >>>>>>>> y = x < y
>>
>>56217972
C++ >>>>>>>> java >>>>>>>> C# >>>>>>>> D >>>>>>>> rust >>>>>>>> go >>>>>>>> C >>>>>>>> python >>>>>>>> lisp >>>>>>>> haskell
>>
>>56218029
>Java 2nd
POO
>>
File: CpciEKiWcAAJ_WE.png (216KB, 419x434px) Image search: [Google]
CpciEKiWcAAJ_WE.png
216KB, 419x434px
>>56218044
SHART
>>
>>56218044
hello NEET
>>
>>56218029

I could do more with perl with the lines you waste before you even initiate main{ in c++ m8
>>
>>56218067
Thank you Pajeet, 10 rupees have been deposited into your account
>>
why did haskell use functor when it isn't the same as ML functor
>>
>>56218118
why did your mum suck my dick when I'm not your father?
>>
>didn't do ANY programming yesterday
>now had 2 strong cups of coffee
>CAN'T WAKE UP
>>
Is
srand(time(NULL) + clock());
a bad idea?
>>
>>56218662
Not really but pointless unless your program is being executed several times per second.
>>
Can someone test my little toy program?
I just got the hang of unix permissions and inserting things into a database.

http://45.32.93.98/
>>
>>56218662
Assuming the program follows the same path on every execution, wouldn't clock() always return the same value?

If you want an easy non deterministic seed, just make use of ASLR.
>>
>>56218932
repeatedly refreshed
received "[!] Database missing! Run 'init.sh' to continue."
>>
>>56218949
I did that on purpose to see if the error screen worked.
>>
>>56218932
Are you ready to get DoS'd?
>>
>>56218935
You can't rely on that at runtime, because only OS-level support will work for this.
>>
>>56216457
dynamic programming nigga
>>
>>56219009
i-im ready senpai!
>>
Should I make a new thread?
There's literally no activity.
>>
>>56219868
>302 posts
no fuck off
>>
>>56219868
no you fucking shit
you don't even need to make a new thread at bump limit
a new thread is only necessary when this one is about to fall off the board
>>
>>56219890
>>56219891
Why are you people so angry?
>>
>>56219910
>Why are you people
im not human
>>
>>56219910
we're """"programmers""""
>>
>>56219921
Are you an anime?
>>
>>56211985
>What are you working on my dudes?
Toy kernel, got it running in Protected Mode, next up, setting up the IDT.
>>
>>56219938
no im AI
>>
>>56219910
>>
Is Haskell actually worth learning or is it just an intellectual curiosity?

Is it worth learning even if you already have a good grasp of functional programming?
>>
>>56219993
it's worth learning. if you don't know it yet you don't have a good grasp on functional programming
>>
>>56219993
it's complete and utter shit, only learn it if you want to reach maximum autism and fedora tipping levels
>>
NEW THREAD!!

>>56220025
>>
>>56220020
dubs dont lie >>56220011
>>
File: akari2.jpg (58KB, 514x524px) Image search: [Google]
akari2.jpg
58KB, 514x524px
I just made my first CGI script in C.
It's a comment board!

http://45.32.93.98/board.cgi
Please try it out and don't break it plss.
>>
>>56220053
consider my fedora tipped
>>
>>56216413
import tkinter as tk
import qrcode as qr
import sys

root = tk.Tk();

root.withdraw();

image = qr.make(root.clipboard_get())
image.save(sys.argv[1])
Thread posts: 319
Thread images: 47


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