[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: 323
Thread images: 36

File: 1479924984307.jpg (98KB, 800x1098px) Image search: [Google]
1479924984307.jpg
98KB, 800x1098px
Previous thread: >>57684107

What are you working on, /g/?
>>
Not sure whether to post you guys a question I made
>>
foo = new Foo(1);
foo = new Foo(2);
delete foo;


I've only deleted the second Foo now, and the first one is still floating around in memory without a pointer. Is that right?
>>
>>57689654
No. This is very wrong.
You should be ashamed.
>>
>>57689654
Yes.
>>
>>57689662
Well that's why I posted it. What's the right answer then, anon?
>>
>>57689596
so I have a folder filled with 20+ scripts all made by 10+ people (some made by me) would it be scummy to compile them all into one script and put it on my github (assuming I give credit for everything not written by me)

it's my first ethical dilemma, I mean one unified script would be very useful to me ( and a lot of people) but is this a scummy thing to do?
>>
>>57689654
Depends what language this is.
>>
>>57689654
Yes. This is very right.
You should be proud.
>>
Why is Java (and to a lesser extent, C#) considered a Pajeet language?
>>
>>57689701
C++. Should've specified that I forgot other OO languages existed there for a sec.

Seems right to me though, since the pointer isn't ref counting it wouldn't implicitly free the old memory right?
>>
>>57689708
memes and jealousy
>>
>>57689708
Because even the IDE lags while u code if your brain cant sense this delay compared to something like VS or Vim you are literally Pajeet tier
>>
>>57689717
>>57689699
>>
>>57689654
>I've only deleted the second Foo now, and the first one is still floating around in memory without a pointer. Is that right?

Yes, all calls to new must be deleted. Foo(1) would still be on the heap without any pointer to it in your program.
>>
File: 1478671756241.png (3KB, 154x67px) Image search: [Google]
1478671756241.png
3KB, 154x67px
>>57689718
yes way

>>57689726
only if you have too little RAM
>>
>>57689741
no, java IDEs and anything that runs on Java just feels like every its going to crash and spawn a black hole every WndProc
>>
File: 1480107962550.png (54KB, 1344x770px) Image search: [Google]
1480107962550.png
54KB, 1344x770px
>>57689754
lol k
>>
>>57689717
Then yes, the first allocation will not be freed.
>>
>>57689766
nice bait u fucking CIA Nigger
>2014 benchmark based on 3 for loops and 1 add instruction
>>
>>57689708
Java is an enterprise-tier language that gets farmed out to the lowest bidder in (literally) shitty countries like India. Very few people will code in Java on pet projects because they enjoy the language.
>>
File: temple_os.jpg (237KB, 960x540px) Image search: [Google]
temple_os.jpg
237KB, 960x540px
>>57689774
>>
>>57689766
source for this graph?
>>
>>57689726
Try it with Scala... I'm often half a minute ahead of the IDE. A significant amount of the time it fails completely to realize an expression typechecks.
>>
>>57689797
blog.carlesmateo.com/2014/10/13/performance-of-several-languages/
>>
>>57689741
LMAO
just looked it up
seems like you are correct
>>
I haven't done any personal/pleasure programming since I got a job as a software engineer.
Is that typical?
>>
>>57689652
Fuck you m8.
>>
>>57689754
You've clearly never used IntelliJ.
>>
>>57689106
I'm not sure but, would this work?

            unsafe{
fixed (int*** parr = new int**[9]){
for (int i = 0; i < 9; i++) {
fixed (int** a = new int*[9])
{
parr[i] = a;

}
//parr[i] = new int*[9]; //this part doesnt work
}
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
parr[i][j] = null;
}
}

}
}
>>
File: 1478725028723.jpg (89KB, 622x818px) Image search: [Google]
1478725028723.jpg
89KB, 622x818px
>>57689830
feels good doesn't it

https://www.youtube.com/watch?v=_6HT_AqXL-o
>>
>>57689893
it sure does
are there any militias forming already to deport h*llary and her supporters?
>>
>>57689766
>ruby outperforming python
>>
File: the delegates dahnald.png (2MB, 1200x905px) Image search: [Google]
the delegates dahnald.png
2MB, 1200x905px
Trying to figure out if my overlay blend mode is actually working correctly.
>>
>>57689952
Are those bell peppers?
>>
>>57689990
fucking newfag
>>
Terry is streaming btw
>>
>>57690031
Yeah don't link it or anything.
>>
>>57690056
Ok I won't
>>
>>57690056
Sorry i forgot there are javascript programmers on here that have < 100 IQ and cant search for youtube templeOS
>>
>>57689952
>Google this pic.
>Get .Net framework results.
wew
>>
>>57689654

That is correct. The memory initially allocated in the first call to new is no longer accessible, but still allocated. We call this situation a memory leak. Over time, a memory leak can grow as new memory is allocated and not freed in successive function calls. The solution is to pair each new to a delete, and each malloc to a free. Of course, this can be tedious to remember, so in C++, there's two alternative solutions. One is to simply use stack memory, rather than heap memory. If the size of the data can be bounded to a small enough amount, the stack can be a rather fast method of obtaining memory. Alternatively, one can encapsulate a pointer inside of some sort of struct, and merely write constructors and destructors to handle memory allocation for one's self. RAII automates this process by calling an object's constructor when it comes into scope, and its destructor when it leaves scope.
>>
>>57690087
not those delegates, dahnald
>>
>>57690012
Chill out nigger, it's not like I'm autistic enough to know all the memes.
>>
File: tumblr_nddczo9sj21r8h9ijo1_1280.jpg (191KB, 720x480px) Image search: [Google]
tumblr_nddczo9sj21r8h9ijo1_1280.jpg
191KB, 720x480px
Posted from other thread:
Writing a CHIP-8 Emulator to practice over the weekend, but have absolutely no idea about OpenGL, SDL, and DirectX
Using this guide,
http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/

And I have no idea which books/references I could use to read up on them... I tried the OpenGL SuperBible, but that's written for Windows (would it still work for Mac, despite it using Visual Basic)?

Thanks in advance!
>>
File: trump2.png (1MB, 1180x842px) Image search: [Google]
trump2.png
1MB, 1180x842px
>>57689990

gnu is my pepper
>>
WHERE WERE U WHEN TERRY SENT CIA A LETTER TO SURRENDER BY DECEMBER 15TH
>>
File: rmNTDzk.png (990KB, 1467x761px) Image search: [Google]
rmNTDzk.png
990KB, 1467x761px
>>
>>57690031
>>57690251
This is some fucking crazy shit right here m8s.
Mental illnesses are scary.
>>
>>57690289
>he doesn't even use his own OS
>>
Which one of you faggots keep calling him?
>>
>>57690410
it's those CIA niggers
>>
>>57689882
well shit. it worked.
and here i am 2 hours in trying to find a workaround
>>
How does it feel to know that this fucking nutcase has achieved more than you ever will in your life? Are you as ashamed as I am?
>>
Someone call terry and tell him to turn the cam back on
>>
>>57690289
>kids' zone
lmao
>>
http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf

Why haven't you read this paper yet, /dpt/?
>>
File: 1479935554316.png (208KB, 807x935px) Image search: [Google]
1479935554316.png
208KB, 807x935px
Why haven't you embraced functional programming, /dpt/?
>>
>>57690666
I have.

Dependent types, higher-kinded types, all feel so natural to me now.
>>
>>57690666
because it's shit
>>
>>57690666
Functional programming is, and I say this unsarcastically, not any more intelligent than any other form of programming. In fact, you could say it's the opposite.
>>
>>57690144
Okay, started trying to program with OpenGL, and asked XCode to link the OpenGL Framework, but it isn't being recognized (see pic related for the error)
>>
>>57690737
Functional programming is DRY taken seriously.
>>
File: emacs.png (33KB, 256x258px) Image search: [Google]
emacs.png
33KB, 256x258px
Any emacs users here?
What kind of environment do you guys use for C programming?

Right now, I am using irony-mode for autocomplete, and flycheck for showing errors and warnings, and gtags for jumping around with GLOBAL tag files.

What do you guys do? Any cool packages you all could recommend?
>>
@57690752
why would anyone use that piece of shit "software"?
>>
>>57690752
Just use CLion.
>>
File: indexed monads.png (39KB, 739x378px) Image search: [Google]
indexed monads.png
39KB, 739x378px
>>57690666
>>57690679

>indexed monads
has strongly typed pure FP gone too far?
>>
>>57690790
Indexed monads are perfectly natural.
>>
who /verilog/ here?
>>
>>57690808
monads are a social construct
>>
>>57690829
monads are endofunctors in the category of monoids
>>
File: intelligent-rage-feels.jpg (110KB, 601x601px) Image search: [Google]
intelligent-rage-feels.jpg
110KB, 601x601px
my pajeet software development 2 professor who can barely speak english keeps making fun of haskell and functional languages
>>
>>57690657
I've read part of it. I have it on my computer at least
>>
is terry like this everyday?
>>
>>57690832
yes
which means they are a social construct
>>
>>57690808
Realistically, these extensions should all be enabled by default:

GADTs, TypeInType, KindSignatures, RebindableSyntax,
NoMonomorphismRestriction, ConstraintKinds,
ExistentialQuantification, RankNTypes, TypeFamilies

__maybe__ NoImplicitPrelude

Type and Constraint should be in Prelude

There's really no excuse for not enabling them

>>57690832
indexed monads aren't
>>
>>57690838
Why don't you tell him why he's wrong? For example:
>haha you just hate fp because you're a brainlet pajeet
>look at my code golfy one-liner
>>
>>57690838
Implement monads in his favourite language.
>>
>>57690868
haha you just hate fp because you're a brainlet pajeet
look at my code golfy one-liner

main = interact (unlines . map (unwords . reverse . words) . lines)



>readability edition
withLines f = unlines . f . lines
withWords f = unwords . f . words
main = interact . withLines $ map (withWords reverse)
>>
>>57690910
You can't implement monads in C# or Java
>>
>>57690951
>
>>
>>57690951
in fact C# has LINQ so you're literally wrong

selectMany is >>=
>>
>>57690743
vgl.h is not in the same directory as main.cpp
>>
>>57689766
>go and java are faster than c++ and asm

right
>>
>>57689766
>how to know your test is shite, loops edition
>>
>>57690838
He's right tho FP is just for niche applications and mostly basement neets
>>
>>57691047
how do you assess?
>>
>>57691047
what about >>57690790
>>
>>57691060
that looks awful and slow
>>
>>57690838
Just BTFO him like you do all successful and productive people anon! Call him pahjeet, and say that you can write anything in FP, just because you haven't, you're just more intellectual and understand, it's totally not that pure FP is unsuitable past math algorithms and fizzbuzzes!
>>
>>57691060
Needless complexity, in all real-life applications you can eyeball it and see that it's not broken.
>>
>>57691099
it's just an example, and needn't be slow, especially since that transformation (FilePath -> FileIO Clsd Clsd ~> IO) could be done at compile time
the typechecking is clearly at compile time

>>57691111
that's just one example
>>
converting my C++ wxwidgets project to a C GTK+ 3 project like an absolute mentalist

feel my willy getting stiff just at the thought of this profane and unnatural conversion
>>
>>57691141
alright, show me an example that is actually useful in real life and couldn't be written in a better way using a normal language
>>
File: feels bad man.jpg (6KB, 250x169px) Image search: [Google]
feels bad man.jpg
6KB, 250x169px
Tfw can design for web, but can't wrap my head around shitty languages like PHP for Wordpress.
>>
If someone asked you what the general design of your program is how would you respond?
>>
going through the slides posted online to fill out my study guide. this one's a gem

Functional versus imperative style
• What is a purely functional method? Why would
you want to use one? How would you define it?
How should it behave? Examples?
• What is a method if it isn’t purely functional?
What does this mean? How would you define it?
How should it behave? Examples?

this is basically all of what the slides are
>>
>>57691199
MVC
>>
>>57691197
use asp.net
>inb4 pajeet
>>
File: Feels Boom.png (293KB, 633x758px) Image search: [Google]
Feels Boom.png
293KB, 633x758px
>>57691213
Tfw I'm on a Mac.
>>
>>57691156
well the point is that you turn more errors into compile time errors by making your program more well defined (capturing more invariants)

in this case the type doesn't just capture the side effect (File IO) but it also captures preconditions and postconditions in the type.
This is what makes { CloseF; CloseF } invalid - because CloseF is Open -> Closed, you can't do it again (unless you open again)

You can also get other cool stuff, like the type-changing state monad.
It's like a statically typed variable, that changes types throughout its context, while still being strongly typed.
>>
JsonNode node = parser.readValueAsTree();
String gsonString = mapper.writeValueAsString(node);
>>
>>57690790
row polymorhpism offers a better solution
>>
>>57691365
?

>>57691370
this isn't anything like row polymorphism
>>
>>57690825
I don't do it for fun, but I do it.
>>
>>57691199
big ball of sepples
>>
>>57691538
cucked by shitty language design
>>
>>57690790
>approximating substructural types
>>
>>57690969
You cannot implement the idea of a monad in an abstract sense. You can implement operations on types, forming monads, but that's it. You can't e.g. write a function that works for any monad without some kind of dynamic typing.
>>
>>57691374
shh, row polymorphism is the only thing he knows
>>
>>57690969
>>57691680
Actually, I suppose you could write a function that works for any monad applied to a specific type, e.g. Monad<int> or Monad<Object> or something. But not Monad<T> for any T. You need higher kinded polymorphism for this.
>>
Fidel Castro just died

how does this affect programming?
>>
>increases chance to dodge the lower your hp is
>increases damage you take the higher your hp is
How would you implement this? Someone said it would be badly coded but couldn't you do something like
dodge = 1/hp
damage taken = hp

https://boards.fireden.net/v/thread/358679002/#q358683141
Where I saw it, it's probably simple but it bothered me
>>
>>57691374
row polymorhpism lets you express state transitions with much more expressiveness than indexed monads
>>
>>57691661
?

>>57691741
such as?
>>
>>57689708
>king of job creation == king of pajeets
>>
Can you hook functions in Linux processes like you can do in windows via DLL injection?
>>
>>57691748
Linear types in particular. Monads (with regions a la ST) are still good for borrowing, though.
>>
>>57691732
just have a damage variable default to 100 and a dodge variable default to 0?
>dodge = 1/hp
sounds like a 1 hp character dodges 100% of the time, seems broken
>>
>>57691199
>DAO
>Factory
>MVC
>whatever buzzword I can think of
>>
>>57690752
I had irony set up but it was annoying so I just use company & flycheck (C++, not C, but basically same thing).
I have a really janky .dir-locals.el file for when the project I'm working on needs specific -I paths, is there any way to make this more pleasant?
>>
>>57691732
You can generalize both of these cases to an exponential function. When you want the output to decrease as the input increases, you use a negative exponent (i.e. division). Like >>57691782 says, you would want to multiply by a coefficient and probably also add/subtract a constant to the dodge function so there's no 100% dodge.
>>
>>57691800
cache aware
scaleable
>>
>>57689814
>creates a test, runs it once or twice
>presents big graph
>draws 18 different points in conclusion
This is why computer scientists can't be trusted with statistics
>>
>>57691782
That was just an example

>>57691813
This was what I wanted thanks. I knew it wasn't a hard problem
>>
>>57691772
>muh linear types
No, they can't
>>
>>57691772
Give an implementation or something
How do you use row polymorphism for indexed monads?
>>
>>57691884
That particular use of the indexed monad to track whether a given resource is alive or not while ensuring it's used only once at a time (all operations on it are sequential) is precisely what linear types do, but the monad does it less elegantly.

Linear (or affine) types for resource ownership and monads with regions for borrowing make a good team.

>>57691908
I'm not the OCaml wanker.
>>
>>57691939
>the monad does it less elegantly
By this, do you mean
A) "the monad does it differently"
B) "the monad doesn't use functionality pre-built into the language"
>>
>>57691939
>I'm not the OCaml wanker.
Good.

OCaml is a toy language.
>>
>>57691939
Also, you can override <*> to not be defined in terms of >>= so an immutable (shared) borrow allows parallelism.

>>57691966
Linear types (substructural types in general) are very little baggage, though. All it takes is counting the number of times a free variable occurs and extending type quantification to allow you to say e.g. "for all linear types" instead of the more general "for all types". It's also much more natural to use them than an indexed monad.

If your language doesn't have linear types, then an indexed monad is fine.
>>
>>57689654
floating around in your memory.. this is a floating variable correct? still new to C#, using it to script unity..
>>
File: 331792.jpg (195KB, 800x450px) Image search: [Google]
331792.jpg
195KB, 800x450px
When should I use currying?
>>
>>57692049
>it's much more natural to use them than an indexed monad
[citation needed]

this is literally a perfect use case for indexed types
it's like state transitions


>>57692070
all the time
>>
>>57692065
No, the code example was C++. It's implied foo is a pointer to a Foo object, which is the memory address of the instance of Foo that is allocated in memory. When I said floating, I meant there is still leftover memory allocated on the heap and no pointer to it, causing a memory leak, because I've only reassigned the pointer in that example, without deleting the older memory through that pointer.

This is not generally something to worry about in C# or Java as they don't use pointers and manual allocation, instead they use implicit references and copy constructors on everything.
>>
>>57691966
>>57692049
Like, with linear types you just create and destroy the resource as you would were it unchecked and the type system "automagically" makes sure you're not doing it wrong.

Whereas with an indexed monad you have to surround usage in a lambda passed to runResource, state the precondition and postcondition (alive/dead) with functions that use the resource, lift functions that don't use the resource, etc.
>>
>>57692100
>side effects
>>
>>57692096
It's a perfect use case for indexed types but it's also a perfect case for linear types and linear types do it better.
>>
>>57691908
Well, not to write the indexed monads. You could technically use both together actually, but thinking of the state of a resource (e.g. whether a linear type has been consumed) as part of the monadic operation is the wrong approach. with row polymorphism you can define a state transition:
{-
L = linear type constructor
a = the type of data being stored
c = constraints on that type (as the state)
Read/Write are the operations to change the state
Consumed = the empty state (transitions are over)

in this case, Read consumes the variable, but Write lets it keep working.
e.g. with some variable x:
let x = x `write` 5
let x = x `write` 6
let (_, value) = read x
-- x can no longer be used, so just dispose of it
-}
L a (Read :: L a Consumed, Write :: L a c | c)

Obviously, this can be combined with an indexed monad for a slightly smoother syntax and more generalized composability, but it also replaces the fact that you need a monad in those specific cases.

instead of "FILE: READ -> READ" and "FILE: CLSD -> READ" you can define much more complex "shapes" for the state to follow, which using an indexed monad (on its own) won't allow.
>>
>>57692111
not according to what >>57692100 said they don't
>>
>>57692110
Linear types control side effects like monads do. The difference is monads make things pure by having you return a computation instead of a result, and linear types make things pure by strategically disallowing calling the function with the same input more than once.

You can yammer on about how they're equivalent all day, you're not wrong, but linear types are way fucking nicer to use.
>>
>>57692127
All me. It's a perfect use case for indexed monads but you'd use linear types instead if they were available.
>>
>>57692128
I'm not having this discussion again.
Linear types are not nicer.
You want to perform side effects everywhere.
It's not pure just because it's done once.

Some of us like that our stuff has to end up in something like an IO.
>>
>>57691232

>Implying you can't use ASP.NET on a Mac
>>
>>57692147
It literally is pure just because it's done once. Purity is same inputs in, same inputs out. If you can't put the same input in more than once, you can do cool things with your output without breaking any promises.
>>
File: iq 140.jpg (30KB, 374x379px) Image search: [Google]
iq 140.jpg
30KB, 374x379px
Why do ML-niggers think functional programming is synonymous with type wankery?
>>
>>57692147
>>57692162
IO can be modeled with a linear world resource (or finer grained). Since the program itself doesn't create nor destroy it (it would be passed in and returned from main, like how main is IO in Haskell) there would be little difference and you would generally use a state monad to hide away the passing around.

They're two sides of the same coin and depending on the scenario one can be better than the other.
>>
>>57692162
>purity is same in, same out
No, that's referential transparency.

>>57692183
No, they are not "two sides of the same coin", they are fundamentally different.
>>
File: 1480103102163.jpg (45KB, 640x727px) Image search: [Google]
1480103102163.jpg
45KB, 640x727px
been working on a cheat framework, a bit more shit had to be done than i expected but i'll probably be done in time for nostalrius release

also got a math re-exam in 45 minutes, if i fail im dropping out of uni
>>
>>57692173
There's little value in functional programming without type wankery to be truthful my kin.
>>
File: 1480131076678.png (478KB, 1800x1600px) Image search: [Google]
1480131076678.png
478KB, 1800x1600px
>>57690666
>tfw too intelligent to waste time with functional languages
>>
>>57692196
Referential transparency means you can replace an expression with its value. It follows from purity.

Monads and linear types are categorically (heh) not fundamentally different, either. If you disagree, ask Philip Wadler. His paper about linear types for effects even came before his paper about monads for effects, and there's a later paper he co-authored that talks specifically about the correspondence (albeit in terms of logic).

Ever looked at how IO is implemented in GHC? It's essentially a state monad passing around a (dummy) linear world state.
>>
>>57692251
main = print "Hello, World!"
print "Goodbye, World!"


main = print "Hello, World!"


Are these exactly the same?
>>
>>57692265
What does this have to do with anything? And I assume you meant
main = do
print "Hello, world!"
print "Goodbye, world!"

They both have the same type in Haskell, IO ().

A linear types version would look like this.
print :: String -> World -> World

main :: World -> World
main w = let
w' = print "Hello, world!" w
in print "Goodbye, world!" w'

Hence my comment about the state monad, which would be just fine since you can neither create a new world nor destroy the existing one. I suppose destroying the existing one would make sense if you wanted to allow the program to panic, in which case you would want it to be affine instead (must be used 0 or 1 times).
>>
>>57692314
No, I did not mean that.
I meant

main = print "Hello, World!"
print "Goodbye, World!"
>>
>>57692326
That top level print statement is both nonsensical and irrelevant given the context.

What exactly are you trying to say?
>>
>>57692334
Is your point supposed to be that you can tell it performs some action because it returns World?

Regardless, even if you preferred linear types that syntax is awful and you should use do notation
>>
>>57692199

basically this, it's neat to know but having readabe code is far more useful than autistically efficient code
>>
>>57692358
It's readable if you're willing to learn
>>
is there a way I can edit a file directly from gdb's tui?

that would be extremely convenient
>>
>>57692350
Yes? Having a function take the World and return the World (plus some a) is equivalent to it being IO a.
http://blog.ezyang.com/2011/05/unraveling-the-mystery-of-the-io-monad/
newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
>>
>>57692383
Usually it's the other way around, people want to integrate gdb into their editor.
>>
>>57692363

it's neat to have in your own projects, but god help you if you want to collaborate with others.
>>
>>57692409
I'm not fond of it and it seems like it only really applies to state.
I like indexed monads, especially that they aren't built in.
>>
Can someone give me some good heuristics to decided whether a given string is in English?

Right now I'm just using the frequency of letters in the English language. I'm doing something like

Score = Sum over all characters { (freq_actual - freq_exp)^2 / freq_exp }

The lesser the score, the more viable the string is.
>>
>>57692444
What is a side effect if not something that changes the state of the "world"?

Also, do-notation is built in.
>>
>>57692454
just hire some indians to do it for you for 12 cents an hour. make an API to upload strings to india and have a boolean response. much greater accuracy than what you're doing.
alternatively, you could probably train up a neural net or something
>>
I learned about vardiac functions in C++. So I just finished rewriting half my code because the logging library I wrote 1 year ago didn't include a wrapper to a sprintf, so I just had to type that in right now and update my code.
>>
>>57692471
A lot of things are.

Nothing stops (nor should) someone making a VM in the language that can simulate IO actions
>>
File: 1452755022140.png (696KB, 633x758px) Image search: [Google]
1452755022140.png
696KB, 633x758px
>>57692454
throw it into google translator. Google translator has a detection method. Im pretty sure its in their api. It will be far better than anything you come up with.
>>
>>57692492
Yeah, with linear types you just give the type actual content instead of being a dummy. Instead of having a free monad with various interpreters, you abstract over the type.
>>
>>57692519
You're just spouting off buzzwords
Nothing you say will convince anyone that doesn't already agree with you
>>
File: Capture.jpg (27KB, 750x198px) Image search: [Google]
Capture.jpg
27KB, 750x198px
>>57692454
pic related is what im talking about
>>
>>57692541
That looks promising, I'll try it out.
>>
>>57692529
I know you know what a free monad is. Stop playing dumb.

The free monad has constructors that correspond to primitive operations. The linear type equivalent is to have an "ADT" with "methods" that correspond to the operations. Oops, I've invoked the object-oriented demon.
>>
>>57692568
And now I know you're meming me.
You're purely motivated by your hatred for monads.
>>
>>57692579
Where do you get the idea I hate monads? I've said all along that linear types and monads complement each other nicely when it comes to side effects and resource management.
>>
>>57692593
It's true, you do.

Anyway, this idea that side effects must be defined in terms of IO is nonsensical.
Is it impossible for you to think about subprograms?
>>
>>57692632
ok you caught me, i do hate monads.
>>
>>57692632
You mean like splitting up effects so you can do file I/O concurrently with networking? Of course you can do that. As I've said, there's a correspondence.

If I'm wrong, elaborate on what you mean by subprograms.
>>
>>57692664
data MyIO a = ...
execute :: MyIO a -> IO a
simulate :: VM -> MyIO a -> (VM, a)
>>
>>57692173
Because they've convinced VCs, Computer Engineering departments, and the like that mathematical-correctness is the key to solving the current software crisis. The same way that the LispM companies convinced them that Expert Systems were the key to automating everything and cutting uneeded labor.

Maybe it'll blow up the same way, or maybe they'll keep a homeostasis with enough hand-waving and pretty graphs as long as the papers on more-and-more niche topics keep getting produced.
In any case, it'll be neat to see what the next hegemonic trend in CS is.
>>
in the man page select(2), it says
A file descriptor is considered ready if it is possible to perform a corresponding I/O operation (e.g., read(2) without blocking,  or  a sufficiently small write(2)).


what exactly is a "sufficiently small write"?
>>
>>57692684
So you do know what a free monad is, nice.

I think I explained myself already with regard to that: >>57692568
>>
>>57692708
No you didn't, you just said a bunch of words and asserted superiority, as you normally do.
>>
>>57692723
-- where 'a' is linear, I won't make up notation for this
class MyWorld a where
read :: a -> (String, a)
write :: String -> a -> a

echo :: MyWorld a => a -> a
echo w = let
(s, w') = read w
in write s w'

Instead of having the different interpreters like execute and simulate there, you have different instances of the class.
>>
What happened to desktop threads?
>>
>>57692779
That wouldn't work with something that isn't linear though
>>
>>57692784
Got killed because a turbo autist spammed the board with anime threads and the turbo autist mod deleted every desktop thread until it died
>>
>>57692815
If it worked with any type, a function that uses it would be allowed to use the state non-linearly. That means the implementation has to be thread safe, for instance, and it would have to do reference counting or be garbage collected to ensure appropriate freeing of any resources.
>>
>>57692815
>>57692909
Oh, and any "normal" type can be used linearly, of course.
>>
>>57692909
It wouldn't work with [], for instance.

And in order to actually build up an AST you would still need to create a datatype of actions (what you call "the dummy free monad approach").
>>
>>57692940
You don't need to build up an AST though. I mean, if you wanted to, you could.
>>
>>57692948
That's what you think.
What if it's more complicated than a series of state transformations?

Besides, datafag isn't here but it's still nice to have code as data :^)
>>
>>57692962
You could very well have an instance of MyWorld that builds a MyIO AST, and conversely, an interpreter for MyIO that runs it with an instance of MyWorld.
>>
>>57693010
which would be the same as the Haskell version
>>
>>57693023
I've been saying all along there is a correspondence, do you get it now?
>>
>>57693023
and the type class would be pointless, too

at some point GHC had Linear Implicit Parameters
interesting fact
>>
>>57692486

unless it's an establish company, you have a really high chance of getting ripped off when paying programmers from india desu.
>>
>>57693033
linear types are like a form of pollution in your type system

better off without
>>
>>57693051
Now this is just getting touchy-feely.
>>
>>57693058
if they're identical, why do you want duplication in the type system
>>
>>57689596
your mom
>>
File: 1480099234803.png (65KB, 563x712px) Image search: [Google]
1480099234803.png
65KB, 563x712px
>>
>>57693079
They're not identical, they're equivalent. And like I've been saying all along, it's often easier to give something a linear type and use it directly rather than hiding it behind a monad.

Why pollute the language with type classes instead of just using records?
class Functor f where
fmap :: (a -> b) -> f a -> f b

class Monad m where
return :: a -> m a
(>>=) :: m a -> (a -> m b) -> m b


data Functor f = Functor { fmap :: (a -> b) -> f a -> f b }

data Monad m = Monad
{ super :: Functor m
, return :: a -> m a
, (>>=) :: m a -> (a -> m b) -> m b
}

Why pollute the language with records instead of just using tuples? Why pollute the language with tuples and data types instead of just using Church encoding? And so on.

Another benefit of linear types compared to monads is faster compilation (or faster runtime if you don't do any constant folding).
>>
NEET Haskell programmer checking in
>>
>>57693193
Type classes were a good idea though
Linear types are extremely specific
Next you'll be asking for linear functions that can be modified or copied indefinitely but only called so many times
Or markov values that can only be used in combination with other markov values in differing amounts
Or that meme comonad stuff about previous values


>tuples
>records
should be syntax only desu, can be implemented in terms of the language
>>
>>57693253
>Linear types are extremely specific
No more so than monads are.

>Next you'll be asking for...
Ah yes, the so-called "slippery slope" fallacy.
>>
>>57690666
Does clojure count? Python is sort of functional since you can use higher order functions, but for some reason you can't parallelize code inside of a higher order function... I got some kind of error like that a few weeks ago..
>>
>>57689697

Why not put all of the scripts individually on your github AND compile them all into one script and put that on your github too?
>>
>>57693293
This.
>>
>>57693233
The "NEET" isn't necessary; Haskell implies that.
>>
File: 1461985639901.gif (3MB, 200x200px) Image search: [Google]
1461985639901.gif
3MB, 200x200px
>>57689596
I need to compile something on cygwin, but the provided version of gcc is too old, so I'm trying to compile the latest gcc on cygwin

I've been fiddling with the same error for a few hours now
>>
In gdb, how do I send my program some input on stdin?
>>
>>57693403
Start typing
>>
>>57693372
>I need to compile something on cygwin
y tho?
>>
I have attention span of a gnat, any /INTERESTING/ ways to learn SDL? I'm reading Lazy Foo productions atm but I just write the code he puts but don't actually understand it or could replicate it on my own. Yeah I'm pretty trash
>>
>>57693430
it's taking the input, but gdb isn't presenting the output

well, it is but it's all fucked up
>>
>>57693518
$ gcc -g main.c
$ gdb -q a.out
// Inside gdb prompt
> r
// Now your program is running, give it input like you normally give
>>
>>57693048
I dont mean programmers. Just have them read the English text and tick "yes" or "no", then send that value back to the application sending the query.
>>
>>57690838
>professor pajeet
Geez man, why do you allow that shit, that is pathetic and sad
>street shitter as professor
>>
Can I use a pragma to get the c version of a file?
>>
>>57693638
*set
>>
>>57690838
>your professor teaches you how to code
>you teach your teacher how to use the toilet

Why can't you try to be nice to him anon?
>>
>>57693547
Reading symbols from a.out...done.
(gdb) b 58
Breakpoint 1 at 0x400c35: file test.c, line 58.
(gdb) r
Starting program: /home/SploogeMaster420/Projects/C/seq/a.out

Breakpoint 1, main () at test.c:58
(gdb) c
Continuing.
This is my input, does this look good to you?

Breakpoint 1, main () at test.c:58
(gdb)
(gdb) his is my input, does this look good to you?Undefined command: "his". Try "help".
(gdb)
>>
>>57693669
the program just echos the input btw
>>
File: aaa.png (22KB, 944x665px) Image search: [Google]
aaa.png
22KB, 944x665px
Is there a better way to do this?

I need to choose 3 unique rows of a 10 by 12 array, then iterate through each row individually and multiply the single elements together.

3 and 12 are arbitrary but the number of rows chosen won't exceed 10. tion and tioff are the two arrays that I'm puling data from.

What I have works but I don't want to type out so many nested for loops
>>
>>57693669
oh, I know what's going on.

since the program read one character, it continued on through and is now waiting for a second, but gdb sent the 'T' to the program but tried to run the rest of the string as a command

that is pretty fucking gay, gdb should have an input buffer
>>
>>57693638
No.
>>
>>57693403
If you want to interact with a program open another terminal, get its device name with tty, and use gdb's -tty option:

e.g.
gdb prog -tty /dev/pts/1
>>
>>57693850
now bash is getting in the way
>>
Anyone else got bullied out of agdg for writing their own renderer?
>>
>>57693940
Working on bash over here
>>
>>57689596
I'm disgusted this homophobic asshole even owns a Mac. I just fucking ...can't !
>>
>>57693977
warning: GDB: Failed to set controlling terminal: Operation not permitted
>>
>>57694007
I got that as well. Just ignore it, it should work anyway. Also stop using that image.
>>
>>57694015
is it triggering you?
>>
File: 1453304848381.jpg (42KB, 712x712px) Image search: [Google]
1453304848381.jpg
42KB, 712x712px
>>57693669
>>57694007
>>57694022
>Questioning circle
>Not having a collection of inquisitive animu girls
>>
>>57694037
>wanting to use boring anime images when there are so many fun emojis
>>
File: bane.jpg (23KB, 1280x715px) Image search: [Google]
bane.jpg
23KB, 1280x715px
>>57694037
>anime girls
>not having highly aliased JPEGs of CIA
>>
>>57694050
im crashing this thread...
with no survivors!!!
>>
>>57690861
>TypeInType, RebindableSyntax
>default
"no"
>>
>>57694050
>>57694058
I got this reference!
>>
>>57694067
you're a big guy haha
>>
>>57694050
>>57694067
who is this guy? I keep seeing him everywhere
>>
>>57694169
An actor who played the character called Littlefinger in the TV show called Game of Thrones which is based on a book called A Song of Ice and Fire
>>
The scene is from the show iirc
>>
>>57690666
something something joke about high functioning autism
>>
who wins?

setitimer() or timerfd or POSIX timers?
>>
>>57688962
That comment triggers me hard.
>>
https://www.youtube.com/watch?v=qWJpI2adCcs&feature=youtu.be&t=3700
What open source project should I repeatedly optimize and then throw away the source code to?
>>
HOLY FUCKING SHIT I FUCKING SPENT THE WHOLE DAY TRING TO DEBUG MY FUCKING PROJECT THAT I'M DOING IN C AND I THOUGHT THAT I'LL MAKE A STATIC LIBRARY BECAUSE I'D BE USING SOME OF THE FUNCTIONS AT MAN PLACES SO I GOOGLED HOW TO MAKE A STATIC LIBRARY AND IT SAID USE $ar -cvq ... AND I USED IT AND EVERYTHING WAS WORKING FINE BUT THEN I HAD TO CHANGE SOMETHING IN THE LIBRARY CODE SO I CHANGED AND THEN RECOMPILED BUT IT DIDNT WORK AND I FUCKING SPENT 6 HOURS ON IT TURNS OUT THE q OPTION JUST APPENDS THE CODE TO THE LIBRARY LIKE HOLY SHIT WHAT AUTIST THOUGHT OF THAT THEN I FINALLY FUCKING REALISED THAT YOU GOTTA USE -r OH MY FUCKING GOD
>>
>>57695158
>not reading and memorizing the entire compiler reference guide before even touching a language
Pleb
>>
>>57690752
YASnippet
>>
>>57695158
Developers are dumb. You should always check everything when it came from developers mind.
>>
>>57695158
>C
>devs has to debug the fucking compiler
C needs to die
>>
>>57695370
I spend more time making my Makefiles, handling me dependencies and making sure I put my libraries in the right order in the linker than actually writing C code.
>>
File: man_page.png (95KB, 527x1079px) Image search: [Google]
man_page.png
95KB, 527x1079px
>>57695178
>>
File: image.png (199KB, 1680x1050px) Image search: [Google]
image.png
199KB, 1680x1050px
>>57689596
>What are you working on, /g/?

r/dailyprogrammer Challenge #293 [Easy] Defusing the bomb

exploring the deepest, darkest corners of Racket.
>>
>>57695158
haha i just choose static library in visual studio then build :^)
>>
>>57695665
font?
>>
>>57695678
https://www.fontsquirrel.com/fonts/verily-serif-mono
>>
>>57695668
I think it's about time I learn to use a good IDE.
So fucking sick of meticulously writing my own Makefiles.
>>
File: bored-emoticons-clipart-1.jpg (102KB, 1300x977px) Image search: [Google]
bored-emoticons-clipart-1.jpg
102KB, 1300x977px
>>57695696
>(((.otf)))
>>
>>57695710
>using those meme parenthesis
So edgy
>>
>>57695710
what's the problem?
>>
>>57695721
>calling people edgy for using a common meme
>>
>>57695721
>my cover is blown, shut it down!
>oy vey
>>
this new meme emoji is pretty funny famalam
>>
What's the best meme language?
>>
>>57695813
https://pyos.github.io/dg/
>>
>>57695370
>>devs has to debug the fucking compiler
That has nothing to do with compilers.
It's a complaint about the unix archive program.
>>
Is it okay to call realloc on something that has not been malloc'ed yet?
>>
>>57695158
Just C problems.
>>
>>57695832
No. The only exception is the NULL pointer.
>>
>>57695848
So it's okay if I init my pointer to 0.
>>
>>57695665
>exploring the deepest, darkest corners of Racket.

with code that looks like the first intro lab assignment of any shit tier unis sicp course
>>
>>57695867
If ptr is NULL, realloc() is identical to a call to malloc() for size bytes.


So, yes, also read the man page.
>>
>>57695879
what's a man page
>>
>>57695892
man = manual
You can read a man page by typing
man <command/function name>

on the command line/shell.

If you don't work on a shell, I highly recommend you get used to it and get to know at least some of the basic commands.

You can also view the man pages online over here https://linux.die.net/man/ but some tools are machine dependent, so it's best to read them on your own system.
>>
>>57695158
GCC?
Yeah GCC and all other GNU projects are shit.
It's because it's written by literal autists who don't realize what good UX is.

>-cvq
>q
What does q do?
>-r
I don't think that even exists. That's not on the man-page.
>>57695668
>>57695697
These are good solutions.
Make files and "build systems" are the bane of productivity.

It's a shame there's no good DE that builds into your editor.
>>57695843
Just a problem with letting you do specific things.

A good solution to all of this would be a "make it fucking work" flag. Which has some kind of 'newbie' settings. Like for instance, avoid any need for a make file in most newbie projects by automatically compiling all .c files up to a certain directory depth from the working directory.
Which trips up a lot of new people.
It doesn't matter if they learn this specific compiler, they're aiming to learn C or C++.
>>
>>57695892
This >>57695920 applies on unix mostly.
Go here on other platforms if you've cross compiled your shit https://linux.die.net/
>>
>>57696088
>It's because it's written by literal autists who don't realize what good UX is.
ar is a POSIX standard command. They're just following the spec.
>What does q do?
Read the man page.
>That's not on the man-page
It's in mine.
>Make files and "build systems" are the bane of productivity.
That's obviously because you don't know how to write makefiles.
You can write a makefile in like 5 minutes that will compiler 95% of projects, and in less than about 20 lines.
It's only when you get into weird shit (that you inflict upon yourself) and requiring portability for stupid shit like Windows where shit gets complicated.
>>
>>57696088
1. I'm using clang/clang++, not gcc/g++
2. q,r flags are there in "ar", not "gcc". "ar" is a tool used for making libraries.

>These are good solutions.
What exactly are you referring to?
>>
>>57689596
I've just completed a few minor projects
Human Resource Project in a team
Unique Serial Key Generator that creates reversibly encrypted keys
Web Crawler that collects and navigates all hyper links in a seed page and creates a graph using links as edges and pages as nodes in trivial graph format (tgf)
Little web agent that polls an NTP server
Windows Performance monitoring that collects a configurable set of metrics and charts and records (in csv format)

I'm currently trying to think of another project to do - I'm looking at intermediate complexity projects that I can do over the summer break (final year CompSci student majoring in Software Development, ICT Professionalism, and Networking)
>>
>>57696207
>and requiring portability
Oh man that's great.
>>What does q do?
>Read the man page.
Well it doesn't fit the context at all.
>You can write a makefile in like 5 minutes that will compiler 95% of projects, and in less than about 20 lines.
Yes but first of all you need to know the make system to do that. The problem isn't that it's not possible. It's that you require users to know a lot to go and do the common use-cases.
It's rare to have source files with associated object files files get linked into your program and you don't want to recompile those if they've changed. This is the inverted case of your "It's only when you get into weird shit"-argument. The default is the weird shit. At the very least it should inform you directly about that.
>>57696342
IDE's are one of the things that tend to handle a lot of options for you while simultaneously allowing you to reach all of them (usually). That's all I'm saying.
>>
File: f93.png (279KB, 898x790px) Image search: [Google]
f93.png
279KB, 898x790px
>tfw too intelligent to use haskell
>>
I think its fascinating that there is such a split between those who love and hate this book. For most books, the review is a bell-shaped curve of star ratings; this one has a peak at 1, a peak at 5, and very little in between. How could this be? I think it is because SICP is a very personal message that works only if the reader is at heart a computer scientist (or willing to become one). So I agree that the book's odds of success are better if you read it after having some experience.

To use an analogy, if SICP were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate SICP are the ones who just want to know how to drive their car on the highway, just like everyone else.

Those who hate SICP think it doesn't deliver enough tips and tricks for the amount of time it takes to read. But if you're like me, you're not looking for one more trick, rather you're looking for a way of synthesizing what you already know, and building a rich framework onto which you can add new learning over a career. That's what SICP has done for me. I read a draft version of the book around 1982, when I was in grad school, and it changed the way I think about my profession. If you're a thoughtful computer scientist (or want to be one), it will change your life too.
>>
>bug disappears when compiling in debug mode
i can already tell this will be a fun weekend
>>
Some of the reviewers complain that SICP doesn't teach the basics of OO design, and so on. In a sense they are right. The book doesn't directly tell you how to design and write an object-oriented program using the subset of object-oriented principles that show up in the syntax of Java or C++. Rather, the book tells you what those principles are, how they came to be selected as worthwhile, how they can be implemented from the ground up, and how a different combination of principles might be more appropriate for some particular problems. This approach requires you to understand the range of possibilities, and to think about trade-offs as you go through the design process. Programming is a craft that is subject to frequent failure: many projects are started and abandoned because the designers do not have the flexibility, experience and understanding to come up with a suitable design and implementation. SICP gives you an approach that will succeed, but it is an approach based on principles and wisdom, not on a checklist. If you don't understand the principles, or if you are the kind of person who wants to be given a cookbook of what to do rather than to think creatively, or if you only want to work on problems that are pretty much like the problem you worked on last time, then this approach will not work for you. There are other approaches that will be more reproducible for a limited range of simple problems, but there is no better way than SICP to learn how to address the truly hard problems.
>>
Donald Knuth says he wrote his books for "the one person in 50 who has this strange way of thinking that makes a programmer". I think the most amazing thing about SICP is that there are so FEW people who hate it: if Knuth were right, then only 1 out of 50 people would be giving this 5 stars, instead of about 25 out of 50. Now, a big part of the explanation is that the audience is self-selected, and is not a representative sample. But I think part of it is because Sussman and Abelson have succeeded grandly in communicating "this strange way of thinking" to (some but not all) people who otherwise would never get there.
>>
>>57696446
>Those who hate SICP think it doesn't deliver enough tips and tricks for the amount of time it takes to read.
I dislike it because it doesn't concern itself with the practical reality whatsoever.
As you said, it's a computer scientists book.
I wouldn't give it a 1 star and i recognize it's purpouse but it's not for me and it can be damaging in many ways.
>>57696457
>>57696469
Ah it was pasta.
>>
>>57690768
not affordable
>>
>>57696474
>it's purpose
Yeah I don't think you have the intellectual capabilities to understand the book
>>
I'm planning to begin a computer science degree in the second half of 2017. What are the best ways or things I can study in the meantime?
>>
>>57690914
I will just let this here:
--source: Haskell Data Analysis Cookbook
import Text.CSV

-- Parses a CSV file
main :: IO ()
main = do
let fileName = "input.csv"
input <- readFile fileName
let csv = parseCSV fileName input
either handleError doWork csv

handleError csv = putStrLn "not a CSV"
doWork csv = (print.findOldest.tail) (filter (\x -> length x == 2) csv)

-- Finds oldest person.
findOldest :: [Record] -> Record
findOldest [] = []
findOldest items = foldl1 (\a x -> if age x > age a then x else a) items

age [a,b] = toInt b

toInt :: String -> Int
toInt = read

import pandas as pd 
table = pd.read_csv("input.csv")
print(table[table.age==max(table.age)])
>>
>>57696498
Well I'l give you this little bit from the preface:
>"[...]Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. [...]"

Maybe you didn't exactly understand it if you can't agree with my very mild statement about the book.
>>
>>57696533
Maybe you didn't exactly understand my post
>>
>>57696552
Maybe. You just insulted me and to me it looked like you said it didn't have a clear purpose.
I find it has very clear purpose, but I can understand how some wouldn't view it that way given the rest of the book.

It's not obvious at least.
>>
>>57696574
Maybe this will help http://mocomi.com/its-vs-its/
>>
>>57696592
Lame. I'm not a native speaker, I make mistakes.
>>
>>57696455
>bug appears when compiling in debug mode
Had this happen before, but specifically on the 32-bit debug builds. I think it was just 'cause MinGW is glitchy as fuck.
>>
NEW THREAD >>57696619
NEW THREAD >>57696619
NEW THREAD >>57696619
NEW THREAD >>57696619
>>
>>57696455
look for uninitialized variables
>>
>>57696630
Too early
>>
>>57696630
Bump limit is 320 m8
>>
File: Image_Forcing.png (205KB, 1021x680px) Image search: [Google]
Image_Forcing.png
205KB, 1021x680px
>>57696639
>>57696650
B-but muh anime image in OP
>>
can't seem to find a recent tutorial on how to write FindModule scripts for cmake, anyone got one?
>>
Should I learn Python or C as my first language?
>>
>>57696701
>cmake
stop reading there
>>
Why do people love python but hate vb.net and java?
>>
NEW THREAD

>>57696721
>>57696721
>>57696721
>>57696721
>>57696721
>>57696721
>>
>>57696717
>Why do people love python
Only retards do
>>
>>57696723
Too late
>>57696630
>>57696619
>>
>>57696733
posted before the bump limit. Doesn't count.
>>
>>57696731
you don't seem to love it, disproving your hipothesis
>>
>>57696716
the alternatives are even worse
>>
>>57696747
You have incorrectly assumed I'm a retard.

Have you tried python btw? I think you might like it.
>>
>>57696716
>>57696751
non-shit automagically generating build system when?
>>
>>57696771
hopefully when C++ imports become a thing, if it ever will
>>
NEW THREAD >>57696619
>>
>>57696474
every abstraction techniques i encounter in today code have roots in sicp, i regularly refer back to the book to refresh my mind. it's really the Principia Mathematica of programming.
>>
>>57696897
>abstraction techniques
Yeah I disagree a lot about those usually.
I really don't see enough useful abstractions. Hardly ever do they help solve coupling and code reuse in any sizable manner.
I think books like that mostly creates dogma, but the detail in the book is nice, it's not invasive like a design principle book where it's basically preaching to you.

It's all worth consideration but, nah.
Thread posts: 323
Thread images: 36


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