[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: 334
Thread images: 25

File: 1370025076063.jpg (27KB, 336x342px) Image search: [Google]
1370025076063.jpg
27KB, 336x342px
Previous: >>57381673

What are you working on, anonymous?
>>
Haskell is currently the best language
>>
Ordinals are numbers, therefore infinity is a number.

Checkmate, mathematicians.
>>
>>57385338
>definitions
how interesting!
>>
I want to do application development but don't want to use c++.
With java the user would have to have jvm.
For application development would d lang be the goto?
>>
Is it better to have an O(n! * n^2) algorithm, or a Θ(n!) algorithm?
>>
Making a 3D space-shooter with some friends in our own shitty engine

Added a wireframe mode, looks dope as fuck

Also OOP-C++ representing
>>
>>57385338
And the addition is non-commutative. I don't like such numbers.
>>
>>57385360
>Not a new IP
I though Haskell was the best language?
>>
>>57385372
What the fuck does that weird O with the line in it mean?
>>
>>57385379
>OOP
smug anime face.png
>>
>>57385385
m8...
>>
>>57385360
C
>>
>>57385337
When I make my language that has affine types with borrowing, higher-kinded types, higher-rank polymorphism, and SMT-proven dependent types, it will be better.
>>
>>57385385
Ειναι Ελληνες, ανον
>>
>>57385385
This is the capital theta for the tight bound, when you have two non-zero constants k1, k2 that k1|f(n)| <= |g(n)| <= k2|f(n)| for n > N for some N.
>>
>>57385448
>capital theta for the tight bound,
thanks for being actually helpful not like these other edgy asshats.

when I make more money than these fags i'll remember times like this and laugh.
>>
File: 1467291087389.png (507KB, 595x639px) Image search: [Google]
1467291087389.png
507KB, 595x639px
>>57385491
>when I make more money than these fags
>>
File: subwayWin.png (366KB, 455x720px) Image search: [Google]
subwayWin.png
366KB, 455x720px
>>57385491
It's funny cause that's not gonna happen if you can't even git gud
>>
>>57385547
everyone starts somewhere.
not a CS major.

>>57385504
especially the weeb reply fags
>>
>>57385394
Of course I will be using OOP if I'm making an engine. What, want me to use a completely new engine for every game only optimized for one game?

Besides, without classes, sharing a .git with 6 other people is a nightmare when it comes to conflicts.
>>
>>57385593
>OOP is the only way to reuse code
Sad!
>>
>>57385593
why don't you use >>>>Modern C++ instead
>>
>>57385586
Sorry, you don't have the chance to be as smart as me.

I pity you. :^)
>>
>>57385593
Link your fucking repo
>>
>>57385635
Too bad we won't be able to tell in a few years.
whatever. back to learning more.
>>
>>57385593
>Besides, without classes, sharing a .git with 6 other people is a nightmare when it comes to conflicts.
Right, even though sharing a Linux kernel with 10,000+ people somehow works fine.
>>
>>57385305
if( op.image.isAnime() == true )
{
reply("just fuck you guys brah\n>>>/a/");
}
>>
>>57385675
>mfw >>>/b/oard links work in code blocks
>>
File: 1478104691471.png (553KB, 546x896px) Image search: [Google]
1478104691471.png
553KB, 546x896px
>current year
>not using some Lisp diallect
https://www.youtube.com/watch?v=bl8jQ2wRh6k

shiggy diggy
>>
>>57385694
>everything is lists!!!
lisp is shit
>>
>>57385675
> == true
Best be jesting
>>
>>57385706
>everything is memory!!!
c is shit
>>
>>57385673
But anon... Linux is actually a mess...
>>
>>57385719
Looks like you haven't looked at the leaked WINDOWS NT source code.
>>
>>57385733
>Implying I said Windows was actually better
BSD is the only kernel done right
>>
>>57385675
You have managed to make the most POOINLOO if statements since you started sperging out. If you spent half as much of the time studying instead of sperging, you would be too busy earning lots of money to post about how anime images are ruining your life.
>>
>>57385602
It's not, but fuck me, it's easier.
>>
>>57385706
>everything is a clusterfuck of flavor-of-the-month features!! everything is badly designed!!
python, java, and go are all shit.
>>
>>57385740
͏ ͏TOPPEST

͏ ͏͏ ͏ ͏- of -͏ ͏

͏ ͏ ͏ ͏ ͏KEK
>>
>>57385755
You are fucking yourself but if you enjoy it then go ahead.
>>
>>57385718
>>57385756

not arguing for any of those languages :^)
>>
>>57385764
>everything is proof!!!
coq, agda, twelf, lean, isabelle, nuprl
all shit
>>
>>57385759
I can't answer to your post since you don't provide any meaningful arguments. Please explain anon-kun
>>
>>57385706
what are vectors, hash-tables, trees, whatever the fuck you want it's there for you
>>
>>57385778
I think that the burden of proof is on your side, anon.
You're claiming that BSD > Linux, I'm just showcasing my mad triforcing skillz.
>>
>>57385764
> <$> . (==) ! :: (Functor f) => Monad (Free [f a -> Text -> String])
> (map . (== 3)) liftM_ $ f <*> return :: (Monoid a) => IO (Either (Maybe IO a) a)
wow so pure !!!
>>
>>57385811
Still more readable than objective c
>>
>>57385792
What a waste of sperging time... We already found an agreement...

Despite everything, let me shitpost:
BSD networking kqueue is much more powerful and faster than Linux epoll. Just this is a enough to be a reason to use BSD on every servers where performance matters.
BSD isn't widespread due to the lack of support/popularity and the bad drawn mascot.

>inb4 literally what
I'm an anime girl
>>
File: Mark Zuckerberg.jpg (74KB, 491x1000px) Image search: [Google]
Mark Zuckerberg.jpg
74KB, 491x1000px
>>57385907
>BSD networking kqueue is much more powerful and faster than Linux epoll. Just this is a enough to be a reason to use BSD on every servers where performance matters.
Linux *poll is worthless crap, but everyone is using kernel bypass magic where it matters anyways.

>BSD isn't widespread due to the lack of support/popularity and the bad drawn mascot.
No drivers.

>I'm an anime girl
You wish you were.
>>
>>57385762
How does one know if they enjoy fucking themselves?
>>
>>57385957
Go fuck yourself and find out?
>>
>>57385936
>not at anime girl
Lies.

Kys faggut

>kernel bypass magic
True.
>>
>>57385973
Username checks out.
>>
File: Literally (You).png (241KB, 984x3040px) Image search: [Google]
Literally (You).png
241KB, 984x3040px
>>57386003
>>
>>57385379
Can I help ?
>>
>>57385379
Post screencap faggit
>>
>>57386228
Ib4 shit unity game that barely works
>>
>>57386361
kek, yeah
>>
>>57386361
>pre-alpha
>>
const vector<Object*>& getObjects()
{ return Objects; }


Is this the proper way to pass a vector of pointers?
>>
>>57386650
No, you're returning a reference to that vector here, not the vector.
>>
File: DSC_3708.jpg (1MB, 1067x1600px) Image search: [Google]
DSC_3708.jpg
1MB, 1067x1600px
https://deepmind.com/blog/deepmind-and-blizzard-release-starcraft-ii-ai-research-environment/

>mfw computers will be the only ones playing sc2
>>
>>57386698
are korean computers better than american computers at sc2?
>>
>>57386698
When are they going to collab with researchers in WoW?

They tried to get epidemic data from:
https://en.wikipedia.org/wiki/Corrupted_Blood_incident

But Blizz said no.
>>
File: wiggitywack.jpg (150KB, 591x544px) Image search: [Google]
wiggitywack.jpg
150KB, 591x544px
Going through the K&R C programming book.

There's this example
while((to[i] = from[i]) != '\0')
++i;

Which copies a string from one array to another.
If the string copied is "hello\n\0" why does it copy the \0 at the end instead of the while loop stopping when it sees that the condition != '\0' is false?
>>
>>57386808
If it didn't copy the 0, then the copied string ... wouldn't have a 0, and so you wouldn't know where it ends.
>>
>>57386808
It does the copy then checks. This is so the copied string is null terminated.
>>
In C++, does calling clear() on a vector delete the items in it?
>>
>>57386860
Same as the values going out of scope. If they have destructors, they will be called. If they're pointers, delete will not be called.
>>
>>57386860
If they're pointers, it won't call delete on the pointers.
If they're regular values, it will call their destructor.
>>
>>57386808
because inside of the brackets resolves first
(to[i] = from[i])

assigns the characters to new field
then
((to[i] = from[i]) != '\0')

evaluates false and the loop ends (but the character is already copied)

Generally speaking, making assignment as part of a condition is bad practice. Your goal should not be keeping the code as short as possible but easily readable.

On the other hand, you generally want to keep the '\0' as a last character of the string (array of chars, C has no string) because if you called the function again on what was previously your "to", it would keep reading random chunks of memory until you run into a random byte that just happens to be 0.
>>
>>57386872
>>57386873
Thanks.
>>
>>57385372
Θ(n!) is better.
>>
>>57386949
But with O(n! * n^2), it might actually be O(n), you just don't know if it is!
>>
>>57386949
trick question the first algorithm is secretly Θ(n)
>>
When doing the depth first search on a binary tree using the stack method, do I need to check visited nodes?

Or is that just to cut the search time and the answer will be the same either way.
>>
>>57386820
>>57386843
>>57386923
Thanks lads. Found the part of the book where it explains this as well: "In C, any assignment such as c = getchar() has a value which is the value of the left hand side after the assignment."
So the check is done after the copying has already been done, if I got this right.
>>
>>57386979
it seems to me that you run the risk of going in circles if you don't keep track of where you've been

>>57386984
right, if there's a logical comparison then the sides have to be evaluated first
>>
why is this so much fun to shitpost on /pol/? :3
>>
>>57386979
You just need to visit the current node, push the right node, and go to the left node, no need to check anything.
>>
>>57387012
oh, sorry, i didn't notice the "tree" part. hm
>>
File: 1362960884712.png (102KB, 241x228px) Image search: [Google]
1362960884712.png
102KB, 241x228px
>tfw the AI you developed is a better programmer than you are

Well this is embarrassing.
>>
>>57386923
>making assignment as part of a condition is bad practice
In the general case, I agree, but using it in while loop conditions to read until EOF or something similar is a very clean way of doing it.
Other methods usually have to have special cases for the first time entering the loop.
>>
>>57387155
You are no longer necessary.
Delete your 4chan pass.
Direct your AI here.
>>
>>57387031
>>57387012
So this is wrong? Seems to work but i'm just trying one binary-tree sample.
Would be awesome if someone told me where this is flawed or if it's going to work 100% of the time for BTs.

    public void dfs(Node head)
{
Stack<Node> stacker = new Stack();
Node currentnode;
stacker.add(head);
while(!stacker.empty())
{
currentnode = stacker.pop();
System.out.print(currentnode.data + " ");

if(currentnode.left !=null)stacker.add(currentnode.left);
if(currentnode.right!=null)stacker.add(currentnode.right);
}
}
>>
ObjectCreator oc;
Object* object;
object = oc->createObject() // creates a new Object pointer and returns it


Is this okay?
>>
>>57384145
http://courses.csail.mit.edu/6.851/spring14/

(sorry for the late)
>>
how do i return a function from a function in java?
>>
>>57387238
>createObject
>not constructor
kys
>>
Learning Python by doing /r/dailyprogrammer because I'm too stupid for project Euler:
https://www.reddit.com/r/dailyprogrammer/comments/5aemnn/20161031_challenge_290_easy_kaprekar_numbers/
#!/usr/bin/env python3

def is_kaprekar(num):
squared = str(num ** 2)
pivot = len(squared) // 2
first = squared[:pivot]
if not first:
first = '0'
last = squared[pivot:]
sum = int(first) + int(last)
return sum == num

for i in range(1, 50):
if is_kaprekar(i):
print(i)

Reddit says the result of 50 is 45, but Wikipedia says the result of 50 is 1,9,45. WTF.
>>
I'm building an interface in Curses
How do I programmatically add text to a field?
>>
>>57387250
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html
>>
>>57387238
It just creates an Object pointer? Doesn't seem very useful.
>>
File: 2016-11-04-213458_1680x33_scrot.png (94KB, 1680x1050px) Image search: [Google]
2016-11-04-213458_1680x33_scrot.png
94KB, 1680x1050px
>>57387254
>>
File: 1478030873822.jpg (36KB, 480x375px) Image search: [Google]
1478030873822.jpg
36KB, 480x375px
>>57387238
>>
If I want to make my own library in C++, are there any ways to include flags or similar things in the compilation process so that users can use those to compile the library in a specific way?
>>
>>57387306
What, are you not allowed to use cases at all?
>>
>>57387338
You can use case, but if you have two identifiers that are identical except for case, ie Object object, you're retarded.
>>
so whats the purpose of member initialisers in c++?
>>
>>57387366
Is your brain not case-sensitive or something?
>>
>>57385756
>t. master's degree unemployed Haskell FizzBuzz professional
>>
>begin transitioning
>start taking female hormones
>suddenly better at programming

You guys should all transition, too. This is amazing!
>>
>>57387292
Well no, that function is several hundred lines long. First it writes Object* object = new Object, then does a bunch of stuff to make the object ready, then at the end it calls return object.
>>
>>57387405
Oh so it creates an Object and not just an Object pointer.
>>
>>57387305
Shouldn't 1 also be a Kaprekar number?
>>
>>57387333
sure thing friend

http://lmgtfy.com/?q=good+book+about+bash%2Fshell+scripting+and+random+sites%2Fblogs+with+tutorials+that+guide+me
>>
I need to make a quick check of 2 variables.

 
if (x == 0 || y == 0 ) {
// blah
}


is there any better (in a logical sense) way to do it? Sometimes I see a very smart clever with logical operators. Is this really the only way to check that?
>>
>>57387413
> between 2 100
> 1
>>
>>57387435
I mean smart trick
>>
>>57387383
People can confuse Object object. They can't confuse something like object_t object.
>>
>>57387451
>projection
>>
>>57387435
that depends on what you're checking and what language you're using

for example, in C and Perl, booleans are literally just 0 and 1. So if you were checking if x or y were 0, you could just do if(!x or !y)
>>
Object object
is completely reasonable

as is

Object obj
>>
>>57387231
p-please help
>>
>>57387451
Anybody who would confuse Object object is absolutely going to confuse object_t object, since their brains are apparently incapable of processing text.

Really you should be arguing in favor of not naming variables as their types.
>>
>>57387459
> Defending your inability to make actuate and meaningful names
>>
>>57387468
Oh yeah, I also thought about it. Then I was thinking how to implement it in Python, but I don't really think it's possible.
>>
is tuple pronounced

two-pul

or

tup-ul
>>
>>57387491
>my
I don't write code like that but I can certainly read it.
>>
>>57387528
Tuple as in "tupperware"
>>
>>57387520
You could do
if(x*y == 0)
>>
>>57387535
So you agree it's bad. Please kys.
>>
>>57387528
However you want
>>
>>57387528
cia-nigger
>>
>>57387558
It's bad but not because Object and object are visually indistinguishable.
>>
>>57387435
if (!x+y)
>>
>>57387571
you can distinguish between them much faster than object_t and object


assuming you aren't reading right to left
>>
>>57387570
I killed a CIA nigger by running him over on 9/9/99. I was being followed by agents and freaked out. It's okay to run-over space aliens.
>>
>>57387435
If its c you're working with you could do something that LOOKS more clever, liek
if ( !x || !y )

or DeMorgan that to
 if(!(x&&y)) 


Bet we all know what Dijkstra said about being clever. And if you don't know, you should look it up.

One thing though.
Getting into the habit of writing your constants and literals on the left hand side of the equality can save you from making silly mistakes like accidental assignment.
Not that it's a particularly common mistake, but that practice has saved me on a couple of occasions.
>>
I found this cool language called emojicode that is so much better than all of the character-based languages out there. Pictures are so much better than keywords.

 
Hello senpai!

>>
>>57387600
It's
͏ ͏ ͏ ͏ ͏ ͏shit
>>
Hello faaaaaam!
>>
>>57387571
The only reason you would do something like this is if you have bad names. Defending Object object is defending meaningless names.
>>
File: terrrrrrrrrrrrrrry.png (218KB, 1641x366px) Image search: [Google]
terrrrrrrrrrrrrrry.png
218KB, 1641x366px
>>57387570
be careful
>>
Do you think that we will be stuck with primitive OOP and FP languages in spite of emoji-oriented programming?
>>
>>57387553
>But doesn't it evaluate to True (1) only if both x and y are True?
>>
>>57387014
why is it so fun to make you suck my dick?
>>
>>57387584
Not that guy, but i have dyslexia.
With dyslexia, the symbol stream is not guaranteed to be ordered.
>>
>>57387623
I'm not defending it precisely for that reason. But the idea that it's bad solely on the basis of case is retarded.
>>
>>57387659
They're using case as a crutch for bad naming practice.
>>
>>57387598
>Getting into the habit of writing your constants and literals on the left hand side of the equality can save you from making silly mistakes like accidental assignment.
You compiler warn you about that.
>>
>>57387652
The original
if(x == 0 || y == 0)

Meaning if either x or y are 0, it evaluates to true.
The only time you can get 0 by multiplying two numbers is if at least one of them is 0.
That is to say, x*y only ever equals 0 if x == 0 || y == 0
>>
>>57387678
This image >>57387306 implies that it's the casing itself that is the problem.
>>
>>57387680
Maybe yours does.
>>
>>57387333 (checked)
Random sites are sufficient to learn bash.
>>
>>57387722
Use a decent compiler. It's free anon.
>>
>>57387686
Oh, now I see it. Cool, thank you.
>>
>>57387692
It implies using case as the way to distinguish between two identifiers with two completely different semantics is retarded
>>
File: last.png (20KB, 1535x287px) Image search: [Google]
last.png
20KB, 1535x287px
Working on my terminal emulator, trying to optimize scrollback handling because it's way slower than urxvt's although I don't know why.

Profiling shows some really weird stuff.
>>
Python is best.
>>
Move this thread to
>>>/lgbt/
>>
File: PigeonRatSimpsons.jpg (74KB, 362x221px) Image search: [Google]
PigeonRatSimpsons.jpg
74KB, 362x221px
>For example, the call {foo,1,2,3}:bar(a,b) gets
converted to the call foo:bar(a,b,{foo,1,2,3})

Did you ever want to approximate OOP in a functional language so bad that you just fucked your shit up?
>>
>>57387769
No, it doesn't. It says it's bad to use case to convey meaning (e.g. capitalized for type, lowered otherwise), not that it's bad to use case to distinguish.
>>
>>57387780
Do you have any repository where I could have a look at your code?
>>
>>57387806
Search for github rust cancer.
>>
>>57387686
No. int32 or int 64 are not integral domains
>>
>>57387821
Explain yourself.
>>
>>57387821
int32 and int64 overflow is undefined behavior, and since Anon is obviously a perfect programmer, we (and the compiler) can deduce that x*y may never overflow
>>
>>57387817
https://github.com/meh/cancer

>cancer: It's Terminal

Clever.
>>
>>57387790
With the implication that that is all you do.
>>
>>57387831
#include <stdio.h>

int main (void) {
int i;
i = 1 << 4 * sizeof (int);
if (i != 0) {
printf ("i ain't null\r\n");
if (i * i == 0) {
printf ("int ain't an integral domain\r\n");
}
}
return 0;
}
>>
>>57387878
>i = 1 << 4 * sizeof (int);
 
UNDEFINED BEHAVIOR


Enjoy your nasal demons.
>>
>>57387863
>>57387817
>rust
https://github.com/rust-lang/rust/pull/25585
>>
>>57387895
Do you really think I don't know that?
>>
>>57387900
If you ignore the SJWs it's a really good language.

Since I don't give a shit about the community around a language, I'm fine with it.
>>
>>57387906
Apparently yes, because your code is not guaranteed to show whatever it is you're trying to show.
>>
>>57387895
>UNDEFINED BEHAVIOR
where?
>>
>>57387917
In informal terms, you may not left-shift a signed integer past its "sign bit".
>>
>>57387915
>Apparently yes, because your code is not guaranteed to show whatever it is you're trying to show.
The odds that id doesn't work is 0.000001% today.
>>
how do I do functional c code when its a pain to even map a function to an array
>>
>>57387932
That's dangerously incorrect.
>>
>>57387938
You don't. You download OCaml and you play with a true functional language.

>>57387952
>That's dangerously incorrect.
Implying you have see a compiler and an architecture on which it doesn't work.
>>
>>57387900
>. Since women make up about half of the human population, all things being equal, women should represent about half of the philosophers. However, because this mistake has stood since 1985, I have changed all of the pronouns to be female, to make up for lost time.

what the flying fuck
>>
>>57387878
#include <stdio.h>

int main() {
int x = 0;
int y = 1;
if( x == 0 && y == 1 ) {
if (x*y == 0) {
printf("Tits\n");
}
}
return 0;
}

Works fine for me.
>>
>>57387956
ocaml has no ncurses library
>>
File: Screenshot_2016-11-04_23-24-38.png (114KB, 850x701px) Image search: [Google]
Screenshot_2016-11-04_23-24-38.png
114KB, 850x701px
Adding a noscript mode to my imageboard, mainly to learn server-side templating. The post text parser isn't there yet.
>>
>>57387988
You can interface the C ncurses library.
>>
>>57387787
>Did you ever want to approximate OOP in a functional language
Nope.
>>
>>57387913
I have a love-hate relationship with Rust.
It has some really nice features like pattern matching and the way it handles errors, but the borrow checker is a fucking pain to work with.
>>
>>57387995
just like you can in haskell, but haskell's shit
unless its better than in haskell
can you give example how you'd call a c function in your code?
>>
>>57388032
Too lazy. But here a link.

http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual033.html
>>
>>57388020
It's really not. I don't get this meme.
>>
>>57388020
It's just preventing you from doing stupid things that would go through in other languages.

The cases where it's actually a limitation of the borrow checker are actually few.
>>
>>57388020
The borrow checker is only a pain if you're used to C/C++ where you can freely alias variables. Rust actually made me think about which variable owns what resource, which is also useful in other languages
>>
>>57387231
so it's r-right guys?
>>
>>57388045
quick, write me a function that is an rpn calculator (in ocaml preferably)
>>
>>57388092
We're not going to do your homework, stop asking
>>
>>57388048
>>57388055
>>57388076
My biggest problem is readability:
RefCell<FxHashMap<Constraint<'tcx>, SubregionOrigin<'tcx>>>
>>
>>57387931
>In informal terms, you may not left-shift a signed integer past its "sign bit".
which it will never be the case

1 byte is at least 8 bits
sizeof return size in bytes
therefor 1 << 4 * sizeof(x) will never takes more than half the bits
>>
>>57388113
I have already a RPN calculator that I use frequently.
>>
>>57388122
If it was my homework I would have copied it off some website hours ago.
>>
File: output.webm (294KB, 800x800px) Image search: [Google]
output.webm
294KB, 800x800px
r8 my polygon drawer and the triangulation

also, what can I improve in the interface? (the drawing zone, don't mind the buttons on the right)
>>
>>57388132
What does this have to do with borrowing other than that you have lifetimes instead of types there?
>>
>>57388136
if its written in ocaml, can you show it to me?
>>
>>57387956
>Implying you have see a compiler and an architecture on which it doesn't work.
$ g++ main.cpp -ftrapv &&  ./a.out
i ain't null
Aborted
$
>>
>>57388132
You're probably designing it the wrong way and just trying to shoehorn it.

RefCell should only be used for internal mutability.
>>
>>57388132
Use a type alias?
>>
File: 1210445250752.jpg (49KB, 500x491px) Image search: [Google]
1210445250752.jpg
49KB, 500x491px
>>57388148
>>
>>57388148
you're still on this shit
whats the point in triangulating
>>
>>57388148
nice, now add shading
>>
>>57388149
>>57388156
>>57388163
https://github.com/rust-lang/rust/pull/37229
>>
File: 1449700279793.png (74KB, 300x256px) Image search: [Google]
1449700279793.png
74KB, 300x256px
>>57388177
>>
>>57388167
>whats the point in triangulating
learning how to code faggit, and other stuff too

>>57388172
shading?
>>
by default, can anyone edit my repository on github? i don't care about making it so no one can fork it or download pull it and work on it themselves, but i'd rather if anyone wants to add or edit files to the github repository, i have to approve it first
>>
>>57388202
>>>/wdg/
>>
@57388211
kys
>>
>>57388202
You always have to approve first
>>
>>57388195
shaders, colour, tex coords, etc
>>
>>57388234
I see, planned to add all that already, I just want to finish the polygon drawing part
>>
>>57387780
HA! Turns out the test the other thread brought up was exercising the worst case scenario for the control code parser.

There were no control codes in the output so it was always trying everything before failing, so it was using 45% of the CPU time.

Added a lookup table that first checks if the first byte is in the range of control codes, and bails out if not.

Brought it down from 45% to 6%, and speed from 25s to 14s.
>>
>>57388224
ok thanks, that's what i assumed but just wanted to check
>>
>>57388177
Compiler internals are usually complex. It doesn't since users won't even see that type.
>>
>>57388195
>lern to code faggit
good coherent response
>>
>>57388177
Again, this is has nothing to do with borrowing specifically.
>>
>>57388262
*It doesn't matter
>>
>>57388155
g++
lol
>>
>>57387994
Looks nice.
Is this you meguca?
>>
Is a function a functor?
Is a procedure a functor?
>>
>>57388202
> by default, can anyone edit my repository on github?
No. You can allow it, but that's rare. Normally everyone has their own repository and they issue a pull request if they make a change they think should go into the original.

Repositories which can be modified by multiple people are normally only used for "master" repositories for large projects.
>>
>>57388349
A functor is a morphism in the category of small categories.

In a programming language, it is a type constructor F : * -> * along with a function map : (A -> B) -> F A -> F B such that map id = id and map (f . g) = map f . map g.
>>
>>57388314
Yes.
>>
>>57388378
he means a C++ functor
>>
>>57388423
Ah yes the C++ "functor" that is actually just a particular implementation of a first class function.
>>
File: 1464988239571.png (509KB, 454x642px) Image search: [Google]
1464988239571.png
509KB, 454x642px
>>57388436
>function
>side effects
>state
>>
>>57388491
There's nothing intrinsically wrong with side effects or state. Both can be used while reaping the benefits of purity.
>>
>>57387238
>2016
>using raw pointers
>>
>spend 3 days writing and testing
>only have 90 lines
:(
>>
>>57388772
That's three times as much as the expected value, according to my intro to prog prof.
>>
Rate my lambda
    std::function<void()> cleanUp_internal{[&]()
{
SAFE_RELEASE(pSinkActivate_internal);
SAFE_RELEASE(pSourceNode_internal);
SAFE_RELEASE(pOutputNode_internal);
}};
>>
>>57388932
Looks like a syntax error to me.
>>
Is it a good idea to init a git repo directly in a code::blocks workspace
>>
>>57389024
how so?
>>
>>57389063
he probably doesn't realise you're using { } to construct it
>>
Alright /dpt/, design a Lisp-like language for bare metal programming. Go!
>>
>>57389072
I'm actually not clear about the difference between {} and () and when to use which. Sepples seems to treat the identically.
>>
i'm making a language whose syntax is a description of a turing machine which is then interpreted by an interpreter written in java

define_state "Start" accepts
define transition
requires[i = "", L = "", R = ""]
effect nothing
side_effect "Hello World!"
next null
end_define_transition
end_define_state


this is hello world written in it. there's a single state, "Start". it has a single transition, which requires nothing on the input, or the left side of the tape, or the right side of the tape. it doesn't alter the tape in any way. it has a side effect of adding "Hello World!" to the output. the next state is null, which makes it return true and then the output is printed
>>
Should I bother going through 500 page O'Reilly books if I have already gone through some of SICP and an intro to CS course using Java? Or should i just choose a goal and use Google, even if that involves using PHP or JavaScript, which I haven't used before?

Going through programming books and typing the examples when there are no exercises bores the shit out of me.
>>
>>57389115
>Lisp-like
no thanks
>>
>>57389072
Oh, you're right. I was trying to parse that as a function.
>>
I got a stupid problem in Lua. When I try this it says I can't compare something to nil? What is the easiest way to check if
tonumber(self.params.pageNumber)

is not nil?

Here is the full check which doesn't seem to work.
-- retrieve posts
if type(tonumber(self.params.pageNumber)) ~= "nil" and tonumber(self.pageNumber) <= 10 then
local offset = " offset " .. (self.pageNumber * 15)
else
local offset = ""
end


this also seems to not work:

if tonumber(self.params.pageNumber) ~= nil then
>>
How many lines of code / hour should a good programmer write?
>>
>>57389336
-451
>>
File: haskell..png (7KB, 397x131px) Image search: [Google]
haskell..png
7KB, 397x131px
>>57389336
as few as possible
>>
>>57389336
A good programmer does not think in categories of LOCs per anything. The less code you have, the better.

And that includes hidden code as well. malloc/free has tons of hidden code that nobody thinks off ´when they use them. Code is not an asset, it's a liability.
>>
>>57389352
>>57389375
>>57389379
I used to think /dpt/ was retarded, but this is accurate.
>>
>>57389352
>>57389375
>>57389379
triggered poopers incoming
>>
>>57389379
The naive solution is usually much shorter than the optimized version.

So yes, LOC does play a factor in how performant and resilient your code is.
>>
>>57389425
Optimizing is not just a matter of adding LOCs, in fact it often involves finding an algorithm that does less work.
>>
>>57388378
>A functor is a morphism in the category of small categories.
poor
>>
>>57389425
>The naive solution is usually much shorter than the optimized version.
[citation needed]
>>
>>57389438
And those algorithms are usually more involved and have more conditionals than the naive solution.

>>57389456
bubblesort vs quicksort
>>
>>57389470
>And those algorithms are usually more involved and have more conditionals than the naive solution.
It can happen, but usually is too strong a word.
>>
 ArrayList<LinkedList<TreeNode>> lists 


what the fuck is this shit, is this common in Java? Is some of this not redundant?
found in CTCI.
>>
>>57389425
Depends on it. I have a really long function whose only task is to write a number in decimal, and that as fast as possible. And still this function cannot even compete in complexity with sprintf or atoi or whatever you want to throw at it.

It's mostly about hidden complexity. "Look at how simple my program is, I do it all in one function" - and this function then is a nightmare just waiting for a carefree programmer to show up in order to swallow him in one bite.
>>
>>57389470
>And those algorithms are usually more involved and have more conditionals than the naive solution
That's something really dumb to say.
>>
>>57389132
Why not? S-exprs are cool...
>>
I'm the owner and NetDevOps of a managed service provider, focused on enterprise services.
We build our own management software, that we also sell for on-premise management.
We use Slack, work with Kanban, use Scrum, write JS heavy web apps on a Python backend.
I feel that most of you would probably hate us for this, so AMA
>>
Working on a sort of frequency analyzer thing. I want to represent the data with rectangles in an array and have them form a circle, but I can't figure out how to create them in such a way that the array's first element remains in the top center and have any new rectangles I add to the array join in at a rotation of 360/their position in the array. The damn thing comes out as a line every time. It's just a kinda fun side thing I'm doing, not really part of anything major, but it's frustrating that I can't figure out what to do. Java, btw, it's pretty neat.
>>
>>57389526
>NetDevOps
Literally who
>>
Can anyone review this piece of code? I think I solved the problem the dumb way. It's LISP but fuck it uni stuff.
(defun atom_search (x y)
(if (null y) nil
(if (listp (first y)) (atom_search x (append (first y) (rest y)))
(if (equal x (first y)) T
(atom_search x (rest y))
)
)
)
)


It returns true if there is an atom X in an expression Y.
I couldn't figure out what to do if I encountered a nested list so I did that.
Is there another way?
>>
>>57389518
No they aren't
>>
>>57389533
It's network, development and operations.
I'm basically automating the process of configuring new routers, setting up BGP peering, configuring branch VPNs etc.
Another part is orchestration of servers, including virtualization.
Creating VMs, provisioning applications, automatically scaling out front-end servers, etc.
>>
>>57389526
How many years do you give at your project before it became a bloated mess?
>>
I just unironically wrote
{[](){}}


C++ lambdas are so funny.
>>
writing unit test be like
def test_our_product_does_not_start_a_nuclear_weapon(self): 
main.start()
news = curl("cnn.com")
self.assertTrue(APPLICATION_NAME not in news and "thermonuclear war" not in news)
>>
>>57389601
Not him, but I'd say he's already there.
>>
>>57389638
I like how []{}() and [](){} are both valid things.
>>
File: error.png (13KB, 476x133px) Image search: [Google]
error.png
13KB, 476x133px
I've got this code and it won't compile

import javax.swing.JOptionPane;

public class PasswordStrongerer{
public static void main(String[] args) {

//The following function calls up a JOptionpane asking the user to input his/her normal password, before displaying it in the console
//to double check

String Password = JOptionPane.showInputDialog("Insert password");
System.out.println(Password);

//These following commands take substrings (parts of the original) from the password and stores them as strings for later use.
//It also prints to console to help me to debug

String Sub1 = Password.substring(1, 3);
System.out.println(Sub1);
String Sub2 = Password.substring(4);
System.out.println(Sub2);

//Similiar to before these commands below add a prewritten string of "gobbledegook". An almost random collection of numbers and passwords.
//They can not be remembered, or easily duplicated. As long as this "key" stays safe, so is your actual password.

String MiscOp = "489hja£$$jh8953fusd8&£$£=-sdfASD_";
String MiscEnd = "250crk7890!98R284y78ty8&£$&*Y";

//These final lines of code splic everything together, and prints it.

String PasswordStronger = MiscOp + Sub2 + MiscEnd + Sub1 + MiscEnd;
System.out.println(PasswordStronger);

//This then displays the stronger password.

JOptionPane.showMessageDialogue(null, PasswordStronger);
System.exit (0);

} // end of main method
} // end of class



But it's giving me this error
>pic related
I'm trying to make the final variable, PasswordStronger, to output as a JOption pane in java.
Can anyone help?
>>
>>57385305

How do I generate permutations of numbers under another number (indexes of an array)

order does not matter to me but it needs to cover all of them
>>
>>57389725

oh yeah and it has to be accessible with a counter
>>
>>57389679
>[]{}()
this is valid?

does that mean that {[](){}()} is also valid code?
>>
>>57389694
JOptionPane.showMessageDialogue(null, (Object) PasswordStronger);

?
>>
>>57389762
Yes. And this is also a valid C++ program:

int main() {
{([_=[]{}](){{}}());}
}
>>
File: 1466006565.png (304KB, 722x768px) Image search: [Google]
1466006565.png
304KB, 722x768px
Anyone understand VBScripting here??

>>57389390
>>
>>57385762
No he's not.
Stop being afraid of OOP you stupid cuntface, it won't hurt you.

OOP is a completely fine form of abstraction and it will not fuck you if you don't take it too far (C#/Java/OOD levels too far).
>>
>>57389783
And this once started out of C. Where the fuck did it all go wrong?
>>
>>57389601
>>57389650
Yep, we're already there.
But we're on the second iteration of our core software, and I expect that a core rewrite will happen again.
This system is only the interface for the backends (databases, services) with a REST API and a user interface.
Some other systems run separately, and the API is used for scripting (Python, Java, and JavaScript libraries, raw API for others).
>>
>>57389549
Well, you need some more learning about lisp!
Fat version:
(defun atom-search (val expr)
(if (consp expr)
(let ((a (car val))
(b (cdr val)))
(or (and (atom a) (equal a val))
(and (listp a) (atom-search val a))
(atom-search val b)))))

you can make it just
(defun atom-search (val expr)
"val is an atom to search. expr is an expression (tree)."
(if (consp expr)
(let ((a (car expr))
(b (cdr expr)))
(or (equal a val)
(atom-search val a)
(atom-search val b)))))
>>
>>57389837
>But we're on the second iteration of our core software, and I expect that a core rewrite will happen again.
Because that never goes wrong, rite? Because exchanging complex system never has gone wrong and never will have unexpected side effect, rite?
>>
File: laughing_anime.jpg (21KB, 400x225px) Image search: [Google]
laughing_anime.jpg
21KB, 400x225px
>>57389783
>>
>>57389828
Please note that those declarations are valid C:

void (*signal(int, void (*fp)(int)))(int);
void ** (*d) (int*, char **(*)(char *, char **));
float (*(*e[10])(int*))[5];
>>
>>57389857
>effects
>>
>>57389823
>OOP-C++
>Of course I will be using OOP if I'm making an engine.
Does that sound like not going too far to you?
>>
>>57389850
Thanks man, I just started learning it and I find the syntax to be very hard to adjust to.
What are some good online resources if you know any?
>>
>>57389549

I'm not sure why you're appending lists to search for something...

(defun find-recursive (x y)
(if (consp y)
(or (find-recursive x (car y))
(find-recursive x (cdr y)))
(equal x y)))
>>
>>57389857
The user libraries will contain as few changes as possible, but APIs is subject to change.
You'd have to give a very good reason to change an API call though.
And for the rest, lots of branches, unit testing and continuous integration.
>>
>>57389910
Yes, it does. Considering he's making a game engine, using OOP is completely justified here.
>>
>>57389967
Why? This always seems to be treated as a self-evident fact.

In fact, all the latest developments in game engine programming have come to the conclusion that OOP is harmful.
>>
>>57389837
Considering you're rewriting your software it's pretty cool to see efforts being made to get a much clearer code base.

Why are you wasting your time with 4chan's spergs instead of posting on Reddit?
>>
if (h,m,s == 0,0,0) {mp();}

I wrote this line of code to execute function "mp" every 24 hours. h, m & s are just hours minutes & seconds already defined by getting the current time.

I'm hoping that it will execute at 0:0:0 but I have no idea if it will work. Will find out later tonight though.
>>
>>57389967
OOP is terrible for game engines because the deep integration with the type system results in the class hierarchy from hell

modern game engines generally have some kind of runtime duck-type system that lets you attach arbitrary data to actors. the data types are implemented as objects, but the assemblages are not object types (e.g. no class Goblin)
>>
>>57389725
void perm(int N, int ix, int b[])
{
int a[N];
for (int i = 0; i < N; i++)
a[i] = i;
for (int i = 0; i < N; i++) {
int n = N - i;
int j = ix % n;
b[i] = a[j];
a[j] = a[n-1];
ix /= n;
}
}
>>
>>57389914
I don't know any online resources other than hyperspec (but it's not good for studying). You can find on the Internet and read Graham's book on ANSI common lisp. Or I can upload it if you like.
>>57389935
It finds nil in nil.
>>
>>57390060
OOP is terrible for everywhere actually.

It's only useful when exposing an API
>>
>>57390093
You not being any good at something and that thing being objectively bad are two entirely different things.
>>
>>57390120
Projection of the day
>>
>>57390040
I used to come here often, and I know most of you hate this "kind" of people and projects.
So it's mostly baiting
>>
>>57390063
Thanks for the reference I found it online and also his "on lisp" so I'll look into both.
>>
Are there any alternatives to C++'s "int&" in C?
>>
>>57390166
mv *.c *.cpp && rm /usr/bin/gcc && ln -s /usr/bin/g++ /usr/bin/gcc
>>
>>57390148
>hate
Not really. What I hate are people who have no idea what they are doing and who effect me.

You are not part of my life. I can ignore you.
>>
What are the reasons for using C++ in 2016?
>>
>>57390120
But anon... I know everything about Java, Javascript and C++.
It fucked up my brain so hard I need to shitpost all the day on 4chan so I forget all I want is to kill myself.
>>
>>57390063

Should it not find nil in nil? What exactly are all of the specifications for the search?
>>
>>57390181
There are no reason to use anything but MODERN SEE PLUS PLUS in the current year.
>>
>>57390166
The closest thing in C is int*.
>>
>>57390060
Honestly I don't necessarily agree with that. Yeah, inheritance is awful, but you don't need to go full dynamic to get around it, except for an extremely generic game engine (so not anything you should ever consider making).

I use composition where components are just pure data and functions operate on potentially multiple components at a time, but I also don't try to treat every entity uniformly. I'll have many different entity types, typically where only one or two components appear dynamically. Otherwise, it either has a type of component or it doesn't. I then have a different collection (or multiple) for each entity type. Reduces fragmentation a lot.

>>57390120
Classic defence.
>>
>>57390193
>scalability
>>
>>57390166
int*

>>57390181
Speed, flexibility, and header compatibility with C libraries. Same as it's always been.
>>
>>57390093
"engines" expose a lot of API by definition, especially in enterprise gamedev there's a whole mishmash of enterprise to enterprise products, lighting technologies, physics, whatever the fuck. the software engineers have to get them talking

it's a really, really bad API to expose to the non-programming developers, they need much more ad-hoc asset reuse without the rigidity of a type hierarchy
>>
>>57390205
What is std::thread, and C++'s unique std::atomic weapons for maximum performance concurrency and parallelism?
>>
>>57390217
Ok, I lied.
It's only useful when exposing an API _and_ performance doesn't matter.

In fact, it's useless..
>>
>>57390225
>mixes up parallelism with scalability

std::thread would make things even worse in some aspects.
>>
>>57390060
That's pretty dumb, honestly. OOP was specifically designed to help solve issues with large application development, which games would definitely fall under.

Also I think you have a very poor understanding of OOP from your post.
>>
>>57390260
Parallelism is free scalability, if you can share it between threads, you can share it between processes, and you can share it between machines over a network if you need to.

Now concurrency doesn't always translate into scalability, but the only thing that gives you more power than C++'s memory model when you want to scale without losing performance in synchronization code is fucking nothing.
>>
>>57390187
It isn't me who the problem was given.
I feel that it's fine for such a function to find 1 in 1, but a function that searches through lisp lists must return nil when it's given nil as the place to search.
>>
>>57390274
>OOP is *supposed* to do this though
>you don't understand it
Anything else?
>>
>>57390274
>modern game engines generally have some kind of runtime duck-type system that lets you attach arbitrary data to actors. the data types are implemented as objects, but the assemblages are not object types (e.g. no class Goblin)
This is true, though.
>>
>>57390205
i have wasted years of my life debunking garbage benchmarks of scalable systems

i will tell you a terrible secret: in almost all cases, scalable systems are just parallelizing the overhead they themselves introduced with their bloated research-quality code. you would be better off with a well-optimized single-threaded implementation. this is true even for very large data sizes.

in particular, fuck Apache, and fuck Spark
>>
>>57390343
t. Intel employee
>>
NEW THREAD AT >>57390345

NEW THREAD AT >>57390345
>>
>>57390285
>Parallelism is free scalability
There you go again. Scalability does not mean parallelism. Scalability means the ability to not require more time and resources to process more data than necessary.

Parallelism means that you process things at the same time.

Can you pass your own thread stack in C++ threads? Can you make it so that simply calling new/delete does not require a global lock? Especially when an error occurs and an exception is triggered, which then requires dynamic memory allocation?

At some point, if you just run more threads, you are effectively hurting your performance if your language or your framework does not scale well. And well-scaling software does not need to work in parallel. There's a reason why some well-scaling web servers out there do not use multiple (real) threads at all, but rather do green threading (if anything).
>>
>>57390160
Also, feel free to visit #lisp at freenode.net. You can plenty of useful advice from knowledgeable people there.
>>
>>57390343

Uhm ... this is exactly what I wrote here:

>>57390378
>>
File: doyouevenlambda.png (29KB, 811x805px) Image search: [Google]
doyouevenlambda.png
29KB, 811x805px
>>57389115
cadr machine's firmware/microcode was written in lisp.

http://www.heeltoe.com/retro/mit/mit_cadr_lmss.html
https://github.com/mietek/mit-cadr-system-software

;;; DIVIDE SUBROUTINE
; DIVIDEND IN M-1, DIVISOR IN M-2
; QUOTIENT IN Q-R, REMAINDER IN M-1, CLOBBERS A-TEM1

DIV (JUMP-GREATER-OR-EQUAL-XCT-NEXT M-1 A-ZERO DIV1)
((A-TEM1 Q-R) M-1) ;Q GETS MAGNITUDE OF DIVIDEND, A-TEM1 SAVES ORIGINAL
((Q-R) SUB M-ZERO A-TEM1)
DIV1 ((M-1) DIVIDE-FIRST-STEP M-ZERO A-2)
DIV1A (CALL-IF-BIT-SET (BYTE-FIELD 1 0) Q-R TRAP) ;DIVIDE OVERFLOW
(ERROR-TABLE DIVIDE-BY-ZERO)
(REPEAT 31. ((M-1) DIVIDE-STEP M-1 A-2))
((M-1) DIVIDE-LAST-STEP M-1 A-2)
(JUMP-LESS-OR-EQUAL-XCT-NEXT M-ZERO A-TEM1 DIV2) ;JUMP IF POSITIVE DIVIDEND
((M-1) DIVIDE-REMAINDER-CORRECTION-STEP M-1 A-2) ;M-1 GETS MAGNITUDE OF REMAINDER
((M-1) SUB M-ZERO A-1) ;NEGATIVE DIVIDEND => NEGATIVE REMAINDER
DIV2 ((A-TEM1) XOR M-2 A-TEM1) ;IF SIGNS OF DIVIDEND AND DIVISOR ARE DIFFERENT,
(POPJ-LESS-OR-EQUAL M-ZERO A-TEM1)
(POPJ-AFTER-NEXT
(A-TEM1) Q-R)
((Q-R) SUB M-ZERO A-TEM1) ;THEN QUOTIENT IS NEGATIVE


also,
http://ahefner.livejournal.com/20528.html
https://github.com/eholk/harlan

also,
it's easy to write an assembler in lisp to embed assembly code in your program (macros).
you can then even write a bootloader
https://github.com/whily/yalo/blob/master/cc/bootloader.lisp
>>
>>57389526
why python
i can only speak for myself but i recognize the need for services such as yours; it's only the hype that gets tiring
the agile stuff is pretty weird you must admit
>>
>>57390352
Spark can't run PageRank on USA-Roads (~50 million edges) in 24GB of RAM without thrashing and taking hours. It SHOULD take about a minute.

I've benchmarked a generic framework (Galois) that can do 200 million edges (4x!) in 12 seconds, and a hand-tuned implementation by an expert that can do 4 billion edges on a laptop.

Spark is a fucking ridiculous embarrassment if you know anything about distributed algorithms at all. It is literally companies turning electricity and time into wasted heat energy. I've personally reviewed their graph analytics implementation and it's like something an undergraduate would write. It is completely ignorant of 30-year-old optimizations. I would recommend MATLAB over Spark.
>>
>>57390393
scalability as its used in the literature refers to the relationship between resources, input size, and end-to-end time. it does not refer to "using more than is necessary," i.e. efficiency. if a system has perfect weak linear scaling then it can be used to process arbitrarily large datasets with a proportional increase in resources, but this does not imply anything at all about its efficiency. this is how the term "scaling" is used in every evaluation i've ever seen. it is somewhat formal

you're absolutely right that this is an asinine metric, and that an efficient system can radically outperform a scalable one, which is why we've dug ourselves into this ridiculous position where we build datacenters that are probably operating at like 1% efficiency and then jack off about how much computing we're doing.
>>
>>57390397
Because Python has always been my main language. But I feel that it's only a matter of time before going Jython and after that full enterprise Java.
The whole SDN and cloud marketing bullshit is annoying. We're not using framework-of-the-day and don't have the stupid marketing terms.
I was the one who actually started implementing the agile stuff like kanban, "scrum light" and continuous integration. It's very useful.
>>
>>57390148
>This is bait
Well, I'll bite. You're basically another startup trying to be popular so you have to stick with over-hyped technologies like Javascript, "Slack" and what not.
You're targeting enterprises with a product that supposedly make things easier for server admins while adding another management overlay that will just make things harder. You obviously don't have a real working business model and you're just waiting for google or microsoft to buy your bubble before it explodes.

But I'm sorry. Your empty shell is just another layer of dirtiness in the tech world. Obviously kill yourself, faggot.
>>
>>57388932
why not
auto cleanUp_internal = [&]() {
SAFE_RELEASE(pSinkActivate_internal);
SAFE_RELEASE(pSourceNode_internal);
SAFE_RELEASE(pOutputNode_internal);
};
>>
how do i talk to electric circuits
>>
>>57385372
Incorrect use of asymptotic time complexity notation.
O(n! * n^2) is ambiguous, you are supposed to measure the time complexity of the entire algorithm, but clearly in your notation there is some code which runs on the order of n! which is multiplied by some other code which runs on the order of n^2, this is superfluous and defeats the purpose of the notation, especially true for big oh and little oh, but sometimes it is acceptable to do so when using big theta.
Thread posts: 334
Thread images: 25


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