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

/dpt/ - Daily Programming Thread

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

Thread replies: 319
Thread images: 34

File: compsci2.png (73KB, 694x801px) Image search: [Google]
compsci2.png
73KB, 694x801px
What are you working on /g/?

Last thread: >>56161932
>>
Summer is kill, /g/ is kill.
>>
is US ANSI the best layout for programming? it's almost as if it was literally designed by programmers? obviously you amerilards are gonna be in favor of it but even as a swede i think i will get a US ANSI-ish keyboard because the selection of good nordic ISO keyboards is almost non-existent and it seems better and more ergonomic for programming anyway
>>
(do ((num (random 100))
(guess (progn (princ "\nguess number:") (read))
(progn (princ "\nguess number:") (read)))
(count 0 (1+ count)))
((= guess num) (format t "~%correct, took you ~D tries" count))
(if (< guess num)
(princ "\nlolnope, too low")
(princ "\nlolnope, too high")))
>>
Can someone make a post on how to do fixed point math?
>>
>>56169918
step 1
git gud
>>
File: le hwhite asking hwhy.jpg (21KB, 290x400px) Image search: [Google]
le hwhite asking hwhy.jpg
21KB, 290x400px
>>56169906
>\n before line
>>
>>56169933
how do I git gud if theres no gud to see
>>
>>56169685
>reverse the string

#include <string>
#include <iterator>
#include <algorithm>
using std::string;

//option -1
string ReverseString(string str) {
string result;
for (auto it : str){
result=it + result;
}
return result;
}

//option 0
string ReverseString(string str) {
string result;
for (auto rit = str.rbegin(); rit != str.rend(); rit++){
result.push_back(*rit);
}
return result;
}

//option 1
string ReverseString(string str) {
string result=str;
std::reverse(std::begin(result), std::end(result));
return result;
}

//option 2
string ReverseString(string str) {
string result;
std::reverse_copy(std::begin(str), std::end(str), std::begin(result));
return result;
}

//option 3
string ReverseString(string str) {
string result;
result.assign(str.rbegin(), str.rend());
return result;
}

//option 4chan
string ReverseString(string str) {
return string(str.rbegin(), str.rend());
}


Which is the best /g/?
>>
>>56162521
Error: Undefined type []
>>
Functional autistes can't do this
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(int c, char **v)
{
while (--c > 1 && !fork());
sleep(c = atoi(v[c]));
printf("%d\n", c);
wait(0);
return 0;
}
>>
>>56170115
We know what a sleep sort is asshole.
>>
File: triggered megyn.jpg (45KB, 386x494px) Image search: [Google]
triggered megyn.jpg
45KB, 386x494px
>>56170130
>asshole
>>
>>56169889
US Dvorak master race!
>>
>>56170115
The accuracy of a non-realtime scheduler's sleep function is generally around 10ms.
>>
>>56170287
do you actually use dvorak or are you memeing? seems hard to beat US ANSI for programming since you don't even have to move to type a semicolon it's on your right pinky (or ring finger if your pinky is at curly braces or something)
>>
>>56169918
Create a class for it.
>>
>>56170307
C's sleep function takes seconds, not miliseconds.
>>
>>56170287
Dvorak is a meme, and the free market knows it. Eat shit autist.
>>
>>56170365
I use [spoiler]C [/spoiler]
>>
File: reinhard u mad.jpg (31KB, 640x480px) Image search: [Google]
reinhard u mad.jpg
31KB, 640x480px
>>56170401
>>
>>56170381
>>56170307
use nanosleep

>>56170410
make a struct perhaps?
>>
found this(what i'm going to assume is malware) on /b/, does anyone know what it does? I am guessing it's obfuscated but I have never worked with javascript so i wouldn't know.

http://pastebin.com/FUU1hpmz
>>
>>56170014
str[::-1]
>>
>>56170689
python is a lovely thing
>>
>>56170699
>>56170689
desu
>>> str = "This is in reverse"
>>> str[::-1]
'esrever ni si sihT'

Prelude> let str = "This is in reverse"
Prelude> unwords . reverse . words $ str
"reverse in is This"
>>
>>56170625
>use nanosleep
i'll use TURBOSLEEP
>>
>>56170625
what about http://stackoverflow.com/a/11816993 this didn't make very much sense though, i just want something to learn right now and i've decided I want to learn this
>>
>>56170689
>>56170699
>>56170741
senpai
(require srfi/13)
(string-reverse "This is in reverse")
;=> ".esrever ni si sihT"
>>
File: implementation is three lines.png (22KB, 584x313px) Image search: [Google]
implementation is three lines.png
22KB, 584x313px
rate my extremely limited verbose and awkward row polymorphism (order is important)
>>
>>56170682
Creates an ActiveX object and uses it to download and run an .exe payload. Probably a virus but virustotal found nothing and I'm not going to run it myself obviously so I can't be sure of what it is.
ActiveXObject only works on IE8 and below though so it's kinda pointless.
>>
>>56170976
>>56170741
>>56170689
>>56170014
lads...

reverse=.|.
reverse 'Fuck this shit'
tihs siht kcuF
>>
>>56171049
Wow, finally someone usefull, thank you.
>>
Repostan

What is the best C build system and why?
>>
>>56170412
>reinhard
kys
>>
>>56171049
>>56171216
I found the thread it was posted in. It's in a downloadable .zip so if you ran it on your desktop it would work and run the file.

Those threads are posted/bumped by spambots trying to spread malware, if you haven't realized it yet.
>>
>>56171006
>types
>in [current year]
function addToSecond(array) {
array[1]++;
}


>inb4 muh purity, muh autism
>>
File: 1451839338017.jpg (85KB, 1280x960px) Image search: [Google]
1451839338017.jpg
85KB, 1280x960px
>>56171219
>c
>>
>>56171330
Literally the best, most useful, most popular language.
>>
>>56171314
that's not the same thing

also
>addToSecond(notAnArray)
>runtime error
>addToSecond(lengthOneArray)
>runtime error
>>
So a lot of people like OOP just because it gives them something to hold onto. A method for designing programs. You construct your classes based on the real world and say 'fuck it'.

So are there any good alternatives to this that I can learn?
>>
>>56171389
FP
>>
i need to build a graphical interface for accessing shit off a server. I want to use python because anyone can download and use python on any computer. I was planning on using TkInter but I don't think that module comes shipped with python, which means it is going to be a bitch to set up for the user (the people I'm making this for are not very computer savvy, hence why i'm making a gui).

If I compile the python script will it automatically import TkInter? That way I don't have to deal with installing TkInter on dozens of machines.
>>
>>56171343
Jshit is just not expressive enough for that.

(defun add-to-second (seq)
(declare (type (satisfies seq-with-2nd-elt) seq))
(incf (elt seq 1)))
(defun seq-with-2nd-elt (seq)
(and (typep seq 'sequence)
(> (length seq) 1)))


There, this should do compile-time computation and prevent code that calls it with a wrong type from being compiled.

Does that satiate your autism?
>>
File: 2016-08-20-021013_344x467_scrot.png (21KB, 344x467px) Image search: [Google]
2016-08-20-021013_344x467_scrot.png
21KB, 344x467px
how can I make my average' function faster?
>>
>>56171407
It doesn't guide you. It's a method for writing parts of a program.
>>
>>56171420
ghc -o2 -threaded -rts-opts=-N4

>>56171430
OOP doesn't guide you, it's a silly method for writing parts of a program
>>
>>56171420
You don't overload the stack with useless data for the sake of muh purity, and switch to a real language.
>>
>>56171445
b-but you can use evaluation in haskell using seq
b-but evaluaiton has nothing to do with purity
>>
>>56171420
You start using state, use SIMD and do threaded programming.
>>56171437
>OOP doesn't guide you
Well it does. It's a poor guide. But I'm looking for a guide that's better.
OOP guides you by arbitrarily saying you should model things after the real world. FP doesn't say anything like that. Procedural programming has nothing like that either.
>>
>>56171455
How does OOP guide you?

>i want to make a calculator
>a calculator is an object and it probably has messages n shit
>thank you for the guidance senpai

OOP is nothing like the real world
>>
Working on becoming a better linux user,
added a plugin to vim for rust syntax highlighting, updating the JDK because I have version without swing.
Simple sounding stuff but I still don't know a lot!
>>
>>56171468
>I want to make a calculator
>I can make an object representing the memory/CPU of the calculator, and input panel object and a display object
>Display object presents the user with the data via rendering
>Input processes user input into a format the memory can accept
>Upon certain input the memory/CPU object handles what it has in memory and creates output which it sends to the display that presents the data to the user every frame
And there we have a calculator.

A calculator is a silly stupid example of course. Should be way simpler. But I want a generic guide. We don't have to discuss how viable OOP is. It's a very common feeling among OOP users though.
>>
>>56171496
Where's the OOP?

You can't seriously say every object is OOP. The word object in C describes an instance of a struct or union. Structs or unions are not OOP objects.

Where's the message passing?
Why did you decide the calculator has memory and CPU? It might not. What makes you think it's got an input panel and not a text input?

Whoops, looks like you need some AbstractInputOutputFactoryInterfaces!
>>
File: 1403736317687.jpg (111KB, 500x382px) Image search: [Google]
1403736317687.jpg
111KB, 500x382px
Threadly reminder that if you need comments in order to understand your code then you're not using descriptive enough function and variable names.
>>
>>56169685
can someone explain this, there's a whackton of errors.
>>
can somebody time how long it takes to average 1 to 10000000 in their respective language?
>>
>>56171559
O(1), in pretty much every language.
>>
>>56171526
the thing is, most people write generic functions so descriptive variable names makes no sense
>>
>>56171559
ill test it out for you
>>
>>56171514
>we segmented our problem arbitrary based on our perception of what parts make up a calculator
>computer (cpu/memory), display, input
>we gave them corresponding roles
>everything is done through message passing, input is not directed directly at the place that requires the input.
It's certainly object oriented. Its a terrible method. But in contrast to a sensible procedural solution that'd be something more straight forward it has been a guided process.
>>56171570
>someone talks about time, he responds with big-O
Not a programmer.
>>
>>56171526
>string firstCommandLineArg
>string firstCommandLineValue
>string secondCommandLineArg
>string secondCommandLineValue
>string thirdCommandLineArg
>string thirdCommandLineValue

does i good variable names?
>>
>>56171559
const startTime = Date.getTime()
const average = (1 + 1000000) / 2
const endTime = Date.getTime()
console.log('Elapsed milliseconds ' + (endTime - startTime))

Time to refresh your basic math
>>
>>56171612
Name them after what they do, not what they are
>>
>>56171612
Make two arrays containing the two and just index instead?
Maybe ignore naming until you've found convenient solutions to your problems.
>>
>>56171614
1 to a 1000000, i.e. all the numbers from 1 to 1000000
not 1 and 1000000
>>
File: OOP.png (69KB, 1210x467px) Image search: [Google]
OOP.png
69KB, 1210x467px
>>56171598
You are assuming so much that has nothing to do with OOP.
Deciding that a calculator consists of a cpu + memory + display + input isn't OOP
The only OOP part is the idea that they themselves have "roles" rather than being part of a system that acts upon them, which would give you the exact same thing

The majority of OOP taught today is probably 10% OOP.
The OOP part is shit like desgin patterns.
This is why you get people who think C++ is an OOP language. It's not.

OOP doesn't even need to be procedural, and it shouldn't be. It's just message passing, with potentially ordered messages.
>>
>>56171559
i don't even understand what you want. the average of what? the previous values? the average of i and 1000000 ?


for ( i = 1; i < 10000000; i++ ) {
???
}
.
>>
>>56171652
Lol, you're serious, aren't you?

>CS majors in charge of not being retarded
>>
>>56171659
>OOP doesn't even need to be procedural
Shows that you can't read/don't know OOP. OOP is not procedural period. Which is one of the reasons I contrasted it to OOP.
>>
>>56171559
>>56171660

it's (n+1)/2
even if you summed all the elements and divided by the number:

the sum of [1..n] is n(n+1)/2
the number of elements is n
n(n+1)/2n = (n+1)/2
>>
>>56171420
google
import qualified Data.Vector.Unboxed as U

data Pair = Pair {-# UNPACK #-}!Int {-# UNPACK #-}!Double

mean :: U.Vector Double -> Double
mean xs = s / fromIntegral n
where
Pair n s = U.foldl' k (Pair 0 0) xs
k (Pair n s) x = Pair (n+1) (s+x)

main = print (mean $ U.enumFromN 1 (10^7))
>>
File: 1465793495393 (1).jpg (20KB, 377x331px) Image search: [Google]
1465793495393 (1).jpg
20KB, 377x331px
>>56171677
>>OOP is not procedural
>Shows you don't know OOP. OOP is not procedural.
>>
>>56171660
>>56171664
ok you fucking niggers
what if you want to calculate the average of all the primes betwen an arbitrary range
there's no easy formula for that,
>>
>>56171685
anon

main = print $ (10^7 + 1)/2
>>
>>56171688
>OOP doesn't even need to be procedural
Rather than
>OOP CAN'T be procedural.
Again, those reading skills are being problematic anon.
>>
>>56171708
OOP can be procedural though.
You just enforce an ordering on the messages.
>>
>>56171559
Actually, why is this displaying 85 seconds (85k miliseconds)
clock_t begin = clock();
double average = avg(); //function that does the work
clock_t end = clock();
double time = double(end - begin);

Haven't used this ctime library before.
>>
>>56171699
how about for an array of arbitrary length and arbitrary integers
>>
>>56171741
in the form [1..n] ?
>>
>>56171754
arbitrary integers, so no
>>
>>56171680
I know that you stupid nigger
try to understand that im averaging a list of integers that can be not in the form of [1..n]
>>
>>56171773
*also averaging
>>
>>56171412
2 seconds on google:
http://www.pyinstaller.org/
>>
>>56171412
>graphical interface
>accessing shit off a server
>anyone can download and use
java
>>
File: justin@Taisho: ~_010.png (55KB, 562x335px) Image search: [Google]
justin@Taisho: ~_010.png
55KB, 562x335px
>>56171559
python 3.4
>>
>>56171925
>Anonymous 08/20/16(Sat)03:08:23 No.56171
YOURE DOING THIS ON PURPOSE AREN"T YOU
>>
>>56171773
rude
>>
>>56171934
I wish I was that clever.
>>
>>56171559
cout<<5000000;
>>
>>56172062
.5
>>
>>56171559
>>56171691
Ok
http://pastebin.com/63UDZTDu
My attempt. Using O2 on MSVC
Doesn't fit your specification exactly though.
9594 ints.
12520 cycles
1.30498 cycles per int..
I'm not very good at this i think. I'l have to look at the throughput in detail though..
>>
>>56172231
so the last column is in miliseconds?
>>
>>56172272
Last column is the rdtsc timestamp. Basically the processor has a counter it increments every time it goes through a cycle.
My processor says it's a 2 300 000 000hz processor in windows. So straight up trusting that, and assuming my process isn't being messed with in any way.
0.00000544347 seconds
Or
5.44347 microseconds
>>
>>56172288
cpp? or c
>>
>>56172317
This is C++. I'm using a std::vector. But what makes this kinda fast is using SIMD intel compiler intrinsics.

I prefer writing C-like C++ code but for some silly thing like this I just don't care to write my own dynamic array or whatever. So yeah. But it's pretty close to C-code. You could easily rewrite it. Not that it matters because MSVC only compiled C++ anyway.
>>
def histogram(a, qtPasso):
passo = (max(a)-min(a))/qtPasso
final = []
for i in range(0,qtPasso):
resultado = []
for x in a:
if(x > ((min(a)+passo)*i)-1 and x < (min(a)+passo)*(i+1)):
resultado.append(x)
final.append(resultado)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(final,qtPasso,alpha=0.8)
plt.show()
>>
File: 2016-08-20-040340_942x414_scrot.png (24KB, 942x414px) Image search: [Google]
2016-08-20-040340_942x414_scrot.png
24KB, 942x414px
>>56172338
im sorry, i tried to run ur code
but, pic related
>>
>>56172338
Also that first run is a bit slower because there were some cache-line misses. That's likely the most accurate result honestly.
>>
File: output.webm (2MB, 260x462px) Image search: [Google]
output.webm
2MB, 260x462px
Alright /g/uys, give me advice and r8 muh gaymen
>>
>>56172365
Yeah I'm using MSVC.
Include stdio.h and change size_t to std::size_t
I think. That should be most of it..

But I'm not sure how to do compiler intrinsics on Linux/GCC. I suspect you do that asm("something in asm") stuff.
>>
>>56172365
>>56172389
http://www.linuxjournal.com/content/introduction-gcc-compiler-intrinsics-vector-processing?page=0,1
This is SSE2.
>>
My project at Amzn.
>>
>depth first traversal
no idea how to do
halp
>>
>>56172419
it's easier than breadth first transversal
>>
Is CE a better career choice than CS? I believe that I could learn CS on my own. While I would learn a ton about hardware in CE. What do you guys think?
>>
>>56172419
Instance a queue datastructure. Put the treet root inside. Loop until the queue is empty. Add all the children to the queue.
>>
>>56172433
CE certainly has knowledge you can't learn on your own because it's inaccessible in the practical sense.

But it's not really a choice you should base on that unless you're planning to be a superscientist/supervillain. You should focus on what you enjoy more.
>>
>>56172419
It's easy as fuck
void do_thing(struct tree *t)
{
if (t == NULL)
return;

do_thing(t->left);

// Actually do something

do_thing(t->right);
}
>>
>>56172453
The runnable should be above the left traversal and where in the problem statement does it say the branching factor is 2?
>>
>>56172428
???
pretty easy senpai
data Rose a = Node { value :: a
, children :: [Rose a]
} deriving (Show)

r = Node 0 [r,r]

deep 0 r = Node (value r) []
deep (n+1) (Node v cs) = Node v (map (deep n) cs)
>>
>>56172470
>The runnable should be above the left traversal
Not necessarily. If you were going to traverse a binary search tree, you would do it this way.
>where in the problem statement does it say the branching factor is 2
It generalises, you know.
>>
>>56171559
wouldn't that be entirely dependent on cpu clockspeed

since its essentially 10000000 cycles?
>>
>>56172452
I certainly enjoy developing software more, but I think that learning about making hardware could come in handy. I understand what you mean tho.
>>
>>56172484
It's not that simple.
And you're assuming a division and an add is 1 cycle.

It's far slower in languages that don't boil down to native code well.
>>
>>56172490
>but I think that learning about making hardware could come in handy.
Well depends on to what degree really. This guy:
https://hero.handmade.network/episodes
Knows a lot of about that stuff from the software side of it. If you ask him or on the forums you can probably get an answer.
>>
>>56172482
No you shouldn't because youre firing the nodes in an odd order.

This does not genearilize.
>>
>>56172475
why are you not defining it as an instance of traverse, or defining a traverse function? that would be much better since you could use it with arbitrary side effects
>>
>>56169918
Your language doesn't support fixed points?
>>
>>56172509
Oh thanks for the link mate. I will go there and check it out.
>>
>>56172522
so just
deep f (n+1) (Node v cs) = Node (f v) (map (deep f n) cs)
>>
>>56172339
>Not using filters or list comprehensions
def histogram(a, qtPasso):
passo = (max(a)-min(a))/qtPasso
final = []
for i in xrange(0,qtPasso):
sub = min(a) + passo
check = lambda x: x > (sub*i)-1 and x < (sub*i)*(i+1)
final.append(filter(check, a))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(final,qtPasso,alpha=0.8)
plt.show()


I don't feel like fixing the other one.
>>
>>56172512
>in an odd order
It's the order of the elements in a binary search tree. Yes, I know the question wasn't about BSTs, but trees in general, however that was the example I decided to use. I probably should have picked the more general answer, but the principle is still the same.
>>
>>56169918
I saw some video that was good about that a while back. Give me a while.
>>
>>56172540
https://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Traversable.html

class Traversable t where
traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
>>
File: 1430136256407.jpg (76KB, 617x932px) Image search: [Google]
1430136256407.jpg
76KB, 617x932px
>advanced data structures and algorithms class starting soon
>uses java
>>
holy shit, I imagine its pretty hard doing IO with complicated strucutres such as trees

I had a pair where the first element is a filepath of a file, and the second is an IO action that gives me the filesize of that same file
of course, I could've just sequence . snd, but I needed to keep the context of pairs otherwise, the filesizes would've had no meaning, so I needed to unpack and repack

I can't imagine doing this with a tree in a way that one unpacks and repacks into a tree, yet still keep the same strucutre and order
>>
>>56172581
at least it's not lisp
could you imagine a data structures and algorithms book using lisp?
that would be fucking dumb
>>
>>56172587
is >>56172575 not what you want?

(a -> IO b) -> Rose a -> IO (Rose b)
e.g.
print `traverse_` tree

-- print the tree in whatever the traverse_ order is (prelude does DFS)
counter x = do
modify (+1)
count <- get
return (count, x)
evalState (counter `traverse` tree) 0
>>
>>56169685
>What are you working on /g/?
I'm currently splitting my old application code I pulled from the cloud into actions, stores and components following one directional data flow, rewriting it with ES6+ code which will allow me to use the latest features and let me write clean code, use babel to transpile this ES6+ code into ES5 code which all browsers can parse, use webpack to join all the files written as node modules installable through npm, use ImmutableJS to represent all my data and RxJS for all my events and other asynchronous functions. This will be followed by minification.
Then I'll configure some loaders, plugins to import component level stylesheets. This is all done in an agile working environment pursuing the ideal of 10x engineering.
>>
>>56172557
I'm new to python, could you explaint the lambda part?
>>
What is the best way to learn from books? One chapter a day? So that you don't cramp a lot of information in your brain with loads of things. Or 2 to 3 chapters a day? I like the first approach better, because that way I TRULY learn what I just read(and because I am lazy), but I feel like it takes longer for me to learn. What is a more effective way of learning, lads?
>>
>>56172649
it's an inline function definition

lambda x: expression
-- function with a parameter <x> and body <expression>
>>
>>56172659
Have a project, make up features to fit what you learn.

Point isn't to make it good. Applying makes you understand it better because you may get the wrong idea otherwise.
>>
>>56172649
Lambda is quick function definition
filter uses a function (or any callable) to filter a list, which is what the inner for loop was doing.
Avoid calling min(a) twice.
Also I fucked up the last part of the lambda.
>>
>>56172692
Nice, I will start doing that from now on. Thanks famalan.
>>
>>56172581
>advanced data structures and algorithms
what does advanced teach?
>>
>>56172590
what does lisp use?
>>
>>56172873
what do you mean?
>>
>>56172899
u said its dumb to use lisp for data structures
how does lisp do it then
how would one make a tree in lisp
>>
>>56171685
Interesting: GHC has unboxed tuples, so you could potentially use (# –, – #) instead of Pair, but it seems that Vector requires the parameter to be of kind *, and doesn't allow #.
>>
File: required reading for (You).png (381KB, 528x528px) Image search: [Google]
required reading for (You).png
381KB, 528x528px
>>56172932
god damn newfags
>>
I bet /dpt/ cannot program basic network programs.

Prove your worth:
>>56172029
>>
>>56172379
Cool, I like the style
>>
I'm writing a console emulator and have a cpu-side buffer I write into. I'm using sdl2 as the backend.

Am I better off using the old cpu-based surface apis to draw with here? Or going through all the overhead of uploading to the gpu every single frame to use the newer gpu-based texture/renderer stuff?
>>
sir my code are working properly in Mozilla Firefox ..but I m facing problem in nav bar in chrome the button are slightly moving out side of the nav bar section .. are there any code that I could write to specify that when I am viewing the page in chrome only be use ... and ignore by the other browsers and different set of code will be use by other browsers is there any way to do that. thank you sir
>>
>>56173314
>>>/wdg/
>>
>>56170976
where does the . come from?
>>
>>56173314
hi pajeet my friend

there is a function, google it
>>
now doing hacking any blog
>>
What language to learn first time anons ?
>>
>>56173738
It doesnt matter just STICK WITH IT!
>>
>>56173738

in the following order sir

-HTML
-CSS
-Javascript
-jQuery
-C
-C++
>>
File: &&.png (7KB, 272x130px) Image search: [Google]
&&.png
7KB, 272x130px
>>56173738
Haskell
>>
>>56171445
>thinking haskell uses the stack
>>
>>56171559
About as long as it takes to print the number
#include <stdint.h>
#include <stdio.h>

typedef uint64_t u64;
typedef uint32_t u32;

u64 avg() {
u64 sum = 0;
for (u32 i = 1; i <= 10000000; ++i) {
sum += i;
}
return sum;
}

int main(void) {
printf("%zd\n", avg());
}


$ gcc mavg.c -Ofast
$ time ./a.out
50000005000000

real 0m0.003s
user 0m0.000s
sys 0m0.000s
>>
File: 1471677595326.jpg (29KB, 412x430px) Image search: [Google]
1471677595326.jpg
29KB, 412x430px
QUICK! DECRYPT THE STRING OR THIS BIRD WILL STAB YOU!

#include <iostream>
#include <conio.h>

int main() {
char o[4] = {0};
char v[25] = "\xe3\x3a\x58\xed\xa7\xb2\xb2\xf4\xf0\xfa\xe8\xef\xb3\xfe\xf2\xf0\xb2\xc8\xa8\xfe\xd3\x63\xbc\xe4";
long p = 238569011;
long cs = ~0;

printf("Enter a password: ");

for (int i = 0; i < 4; i++) {
o[i] = (char) _getch();
p *= o[i];
putchar(o[i]);
}

for (int i = 0; i < 21; i++) {
for (int k = 0, d = 0; k < 4; k++, d++) {
v[i + k] = (char) (v[i + k] ^ ((p >> d) & 0xFF));
}

cs ^= v[i] << i;
}

printf("\r\n");

if (cs == 0xF877E32F) {
printf("%s\r\n", v);
} else {
printf("WRONG!\r\n");
}

return 0;
}
>>
>>56173738
Python
>>
>>56173758
Half of those aren't even programming languages.
>>
>>56171341
>best
lol
>most useful
lol
>most popular
lol
>>
>>56173867
good introduction courses sir
>>
>>56173738
Probably Python. I'd say Lua, but there aren't many 'Lua as a first programming language' books. Knowing at least one scripting language can come in handy during development later on, even if you don't use the language itself. For your second language you would specialize based on your interests.
C then the sane subset of C++ for embedded systems, portable libraries, performance critical applications, and operating systems.
Java for making money because you don't find programming fun enough to pursue as a hobby.
JS/CSS/HTML for web development. (However, there has been talk about wasm allowing any language (not just JS) to be used for development as long as there is a wasm compiler for the language)
Haskell and maybe ML or OCaml if you're into academic research. Many Dissertations and Thesis utilize FP languages, except for the embedded systems research (which is mainly C or C++).
There is more areas, but I'm done with this post.
>>
>>56172581
What did you expect for an algorithm class, assembly?
>>
>>56173838
>#include <iostream>
>#include <conio.h>
Kill yourself, you fucking bird.
>>
>>56173738
C++ (general purpose) ⇒ Python/Lua (scripting) ⇒ Lisp/Scheme (functional) ⇒ whatever: Prolog (logic), Forth (stack), Haskell (functional) ⇒ Programming language theory, Compiler design

C/C++ (system programming) ⇒ AMD64/ARM/MIPS (assembly) ⇒ VHDL/Verilog (FPGAs/Hardware)

whatever APIs: OpenGL (graphics), OpenCL (GPGPU), MPI/OpenMP (parallel)
>>
>>56171652
are you an idiot?
>>56172484
>since its essentially 10000000 cycles
why did you assume that?
>>
>>56173915
I misread it and thought it was summing 1 + 1 10000000 times.
>>
>>56173838
>
#include <conio.h>

haha
>>
File: maxresdefault.jpg (95KB, 1024x768px) Image search: [Google]
maxresdefault.jpg
95KB, 1024x768px
>>56173899
>>56173931
Is this the best you can do, human?
>>
>>56172231
>Anon makes silly request
>Take it super serious and write unreadable solution that's fairly optimal
I like it.
>>56173837
Well actually that just does it at compile time.
>>
>>56173926
oh ok
>>
>>56173879
>>56173907
Thanks anons, these are good options I'll look into Lua/Python.
I know shell scripting quite abit let's see how far I can come with one of those <3
>>
>>56173758
Meme languages except C/C++
>>56173761
Interesting but new for me
>>
>>56173907
This is pretty good. I don't think there's that much point in learning the different assemblys like that but. Yeah.
>>
>>56173969
>C/C++
Why are you grouping two completely different languages together?
>>
>>56174085
'/' obviously means 'or'
>>
Guys I want to write something with Python+Kivy and put and put it on my resume. I want to have something substantial before applying for an entry level job. Any suggestions?
>>
>>56174145
Also check out my daily repo:

github.com/chubek/codingchallenges
>>
>>56173947
>Well actually that just does it at compile time
that's the point

compared to Haskell:
$ cat msum.hs 
main = putStrLn $ show $ s
where s = sum [1..10000000]
$ ghc msum.hs -threaded -O2
$ time ./msum
50000005000000

real 0m0.186s
user 0m0.184s
sys 0m0.000s
>>
>>56174216
Oh and if you add more 0's it takes longer.
So much for "higher level optimizations"
>>
http://www.dreamincode.net/forums/topic/78802-martyr2s-mega-project-ideas-list/

Thoughts?
>>
Okay my colleague's code is making my head hurt again guys:

positions = [pos for result_sublist in results for pos in result_sublist]


What the fuck is going on here? I didn't know you could multiple loops in a single list comprehension.
>>
File: IMG_0265.jpg (1MB, 2592x1728px) Image search: [Google]
IMG_0265.jpg
1MB, 2592x1728px
top kek lel,
I wanted to build a display into an old crankcase. Today the oled display arrived and apperently it is even smaller than I fucking though kek.
Maybe it is enough for displaying temperature decently. Will see
>>
>>56174309
This should make it more clear:

[(i,j) for i in [1,2] for j in [1,2,3]] 
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]
>>
>>56174309
He's flattening a list of lists into a single list.
>>
>>56171006
what font it is ? Looks sexy
>>
document.write ("Hello World");
>>
>>56174405
WOW.
did you figure that out you'reself?
>>
>>56174394
firacode
>>
>>56174422
to think pajjeet, one must become pajjeet
>>
>>56174216
>That's the point
Yeah if you compared it to a crappy compiled language maybe. But you just posted it.

I'm a bit surprised that haskell doesn't do this well given that eliminating code is one of the things functional programs can do extremely well in theory.
>>56173947
Well it's not really unreadable.. You just need https://software.intel.com/sites/landingpage/IntrinsicsGuide/ to understand it pretty much.

Imo it's pretty straight forward. I didn't make an optimal solution at all. It's just basic SIMD. I haven't even compared it to a super naive solution..
>>
File: MVI_0272.webm (3MB, 1280x720px) Image search: [Google]
MVI_0272.webm
3MB, 1280x720px
it does something
>>
>>56174394
Look up Coding Font Ligatures. They make programming quite nice.
>>
>>56170014
I like the one liner at the end.
>>
File: MVI_0274.webm (3MB, 1280x720px) Image search: [Google]
MVI_0274.webm
3MB, 1280x720px
>>56174664
it does more
>>
>>56171691
fampai (MPIR)
let avg = uncurry (/) << List.fold (fun (s,l) x -> (s+x, l+1.0)) (0.0, 0.0)

let primed p =
let fact = mpz_t.Factorial (p-1) + 1
if mpz_t.op_Modulus(fact, p) = 0Z then Some(float p) else None

let primenum n y =
[n..y] |> List.choose (fun i -> primed i)

printfn "%A" (primenum 1 100 |> avg)


without using mpir factorial
let Factorial n =
let rec loop (i:bigint) (acc:bigint) :bigint =
match i with
| i when i = 0I || i = 1I -> acc
| _ -> loop (i - 1I) (acc * i)
loop n 1I
>>
>>56175095
the || i = 1I bit is redundant

fun i -> primed i
seems like an oversight, eta reduce it
primed
>>
>>56175095
>>56175149
also for your second line in primed, i sometimes use a function

cond :: Bool -> a -> Maybe a
(cond as in conditional)
the idea is
cond True = Just
cond False _ = Nothing

or in ML

cond b x = if b then Some(x) else None

let suitable = mpz_t.op_Modulus(fact, p) = 0Z)
cond suitable (float p)

your avg function is needlessly obfuscated too
>>
>>56175203
of course it could be done with reduce (+) or sum
>>
>>56175149
and I should add, doing 1 checks in factorial should be considered a bad thought process
it's nice that you could be thinking "1 is the identity for multiplication, this might be a nice optimisation" (e.g. <=1) but in reality you're probably thinking of 1 as a kind of base case, rather than 0 giving the empty product (because it's an empty list)
>>
I can't think of a nice way to do error handling.
Exceptions are apparently bad, and macros and gotos are bad.

I've been following this example
https://msdn.microsoft.com/en-us/library/windows/desktop/dd316756(v=vs.85).aspx
but i don't the use of macros and goto.

inb4 expand the macros. That's even worse and makes the code more unreadable.
>>
>>56175285
Continuation passing all the way.
>>
>>56175299
What does this mean?
>>
>>56175285
Use the Exception monad. It's like a non-builtin form of exceptions that works similarly to continuations as >>56175299 suggested.

in do notation:

x <- possibleError
if (x < 0) then
throw "Invalid parameter!"
else
pure x
>>
>>56175325
Continuations. Look them up. They aren't available in your shitty language. But C++ will have coroutines soon. You can implement continuations with stackful asynchronous coroutines.
>>
Holy shit sepples is such trash. Can't handle a simple union because an element has a nontrivial default constructor.
>>
>>56175351
>monads
Stop, C++ is already way too bloated without that functional autism.
>>
>>56170741
str = "This is in reverse"
' '.join(str.split()[::-1])
>>
>>56175354
>They aren't available in your shitty language.
Well, that doesn't seem helpful right now.
>>
File: ok.png (2KB, 512x512px) Image search: [Google]
ok.png
2KB, 512x512px
from PIL import Image
from random import choice

g=512
colors = [(255,0,0),(0,255,0),(0,0,255)]
im = Image.new("RGB", (g, g), "white")

new,b = [],[]

for i in range(g):
a = choice(colors)
for i in range(g):
b.append(a)
for ik in b:
new.append(ik)
b=[]
im.putdata(new)
im.save("ok.png")
>>
>>56175351
throwError* but you could alias it, that's a trivial difference

The way it works is like this:

possibleError is either a valid result (pure x) or an error (throwError err)
In this case, we're using strings as errors. The type of result will vary.

do { x <- possibleError; ... }
This desugars to:
possibleError >>= (\x -> ...)
-- \x -> ... -- is a lambda/inline, anonymous function
-- it's grabbed straight from the rest of the do notation


When it's evaluated, the >>= operator will look at possibleError and either see a "pure x" or a "throwError e"
If it's a throwError, it will simply skip execution, and the result will be the same error
If it's a "pure x", it will pass the x to the function/lambda and get the result from that

>>56175381
Higher order functions are quite trivial things, monads aren't much more
And monads are the opposite of bloat. C++ already has a monad in std::future, which has a >>= operator (andThen)
>>
>>56175285
railway oriented programming
>>
>>56172231
You could optimize that by doing:
arr.reserve(100000);


Before pushing the values in the loop.
>>
Trying to build an OS X app for practice (d-don't judge me).

Since OS X development was already in heavy decline by the time Swift came out, there's very little tutorials out there. Deciphering Objective C is a fucking pain in the ass.
>>
>>56175448
just use swift
>>
>>56175095
>printfn "%A"
danm, didn't know ocaml had printf like function
I wish haskell did something similar
I know Text.Printf is a thing, but not as good as being in the prelude
>>
>>56175365
Generally speaking, you can't put anything non-POD (plain old data) in unions. IIRC compilers won't even let you do that, because it just won't work. The reason for this should be self-evident if you understand how data is stored in memory and what a union does.

The moment you start adding constructors to something it stops being a POD.
>>
>>56175459
it's f# kek
>>
>>56175459
why are you voting for trump? do you think he has chances to win?
>>
Where to start with some kind of A-life or evolution simulator?
>>
>>56175465
oh, jeez, I always though ocaml was the one with let beggining every statement
sorry
>>
>>56175454
I am using Swift. But there's very little "OS X with Swift" info out there, the vast majority is Objective C.
>>
>>56175095
>List.fold (fun
wait, so is fun like lambda in f#
>>
>>56175459
Printf is in GHC's base package though

Chances are you don't care about _regular_ "standard" haskell

>>56175487
yes, and function | is \case
>>
>>56175095
tell me about f# senpai
it seems like it has lots of support
>>
Can someone recommend me a good book or article on parametric equations?
>>
>>56175472
because hes better than shillary
he has slim chances now
>>
>>56175427
Yeah but I decided on not timing that bit because it's creating a list of primes. Not part of the averaging process.

And I don't know how many primes there were. Certainly wasn't that many.
>>
>>56175405
In C++ and all similar C-like languages error handling does not and should not have a ubiquitous solution, every error can be handled differently. Some errors are fatal and unrecoverable, in that case uncatchable exceptions should be thrown to retrieve a stack trace. If the error is recoverable, but the error would cause the program to follow a completely different code path, use exceptions (closest thing to continuations). If the error is recoverable and relates not to a change in code execution, but the mishandling of a resource, do C-style error codes, check the error code, and run fix-up-or-die functions.

Those are some common idioms.
>>
>>56175299
>>56175351
>>56175354
>>56175381
>>56175415
>>56175416

Honestly i have no idea what any of you guys are talking about. Even after Googling. This is all out of my sphere of experience.

All i get is you're trying to get me into functional programing.
>>
>>56175527
Have you used andThen from C++'s future library?
e.g.

asyncTask1.andThen([&]
(auto& result) {

...
someAsyncTaskProducer(result)
.andThen([&]
(auto& someOtherResult) {

...

}});
it's like that

>>56175523
This is what monads transformers are for
>>
>>56175543
i haven't
>>
why does c seem comfy?
I want to learn it, but, it seems like no software is built with it anymore
>>
>>56175572
embedded stuff, linux kernel and so on
>>
>>56175572
>no software is built with it anymore
*laughs at dumb starposter*
>>
>>56175499
you can start here
https://fsharpforfunandprofit.com/

it's ok for real world shit since you can use .NET libs, has tail call optimization, mutable with for loops for performance and so on

but might as well learn haskell
>>
>>56171918
No.
>>
>>56175523
>uncatchable exceptions
never heard of such a thing
>>
>>56171219
GNU Make. Because its the only one I know how to use.
>>
>>56175615
I did, but haskell is not good for real world
I want comfy job with fp
if f# gibs that, its enough for me
>>
>>56175553
whoops, might have been wrong, that might have been a proposal
but anyway, the idea is like this

uncertainValue.ifValid(doThis);

this gives you back another uncertain value

if the uncertainValue is an exception, it simply doesn't execute "doThis"
otherwise, if it's a good value, it will return doThis(value)

you can chain them

uncertainValue
.ifValid(doThis)
.ifValid(thenDoThis)
.ifValid(doThisLast);
if, at any stage, there is an error, it will stop there and then
>>
>>56175619
kys
>>
File: ss (2016-08-20 at 04.00.30).png (127KB, 884x644px) Image search: [Google]
ss (2016-08-20 at 04.00.30).png
127KB, 884x644px
we need to go deeper
>>
>>56175620
SIGSEGV with a handler that prints a stack trace on POSIX systems or the StackWalker library on Wangblows. No other systems matter.
>>
var organ = "Penis";

if (organ == "Hard) {

alert ("I am ready to fuck");

}

else {

alert ("But not today");
}
>>
>>56175631
Haskell and OCaml are the only FPL that have real jobs.
>>
>>56175710
really?
I had this notion that since f# was a microsoft product that there would be jobs for it
>>
>>56175710
>haskell
>real jobs
This is the complete opposite of what i've heard about haskell
>>
>>56175705
if organ is penis, then organ cannot be hard as well.
And your second message does not make sense unless people got the first message.
Your code does not make sense.
>>
>>56175710
>>56175722
F# is used in finance, for example
https://twitter.com/nrichards10/status/763446302264926212
>>
>>56175743
>if organ is penis, then organ cannot be hard as well.
You need viagra.
>>
>>56175705

var organ = "Soft";

if (organ = "Hard") {

alert ("I am ready to fuck");

}

else {

alert (''But not today");
}
>>
Haskell a shit.
>>
>>56175767
proof?
>>
>>56175777
data Shit
data Haskell

proof :: Haskell -> Shit
proof = undefined
>>
>>56175765

var penis = "Soft"

if (penis = "Soft"){

Alert ("I cannot fuck");

}

else {

alert ("I can");
}
>>
File: ss (2016-08-19 at 07.55.55).png (3KB, 437x68px) Image search: [Google]
ss (2016-08-19 at 07.55.55).png
3KB, 437x68px
>>56175777
>hasklelfags will defend this
>>
>>56175794
What's your complaint?
Non-termination?
>>
>>56175461
Points are POD.
>>
My master thesis:

var penis = "Soft";

if (penis = "Soft"){

alert ("I cannot fuck");

}

else {

alert ("I can fuck");
}
>>
can your language do this?
fact = lambda x: x if x < 2 else x*fact(x-1)
>>
who else likes their code to look nice too
and I mean aesthetically

i use haskell and I can't stand stuff like
Data.List.map (+(10^7)) ([1..20]++[1..90])


id rather
map (+10^7) $ [1..20] ++ [1..90]
>>
>>56175821
fact = \n -> product [1..n]
>>
>>56175794
>he doesn't know what the y-combinator is
>>
File: bunny stop.jpg (113KB, 444x453px) Image search: [Google]
bunny stop.jpg
113KB, 444x453px
>>56175835
>fact = \n ->
>>
>>56175821
fact = \x -> (x < 2) ? x :> x * fact (x-1)
>>
>>56175832
of course haskell would rather use pipe operators

i can't stand lisp and their (((((((()))))))))))))))))))
>>
>>56175864
this is what >>56175821 wanted
nice reddit.jpg though
>>
>>56175864
>he'd rather type "lambda"
>>
>>56175872
>what i don't like is reddit
>>
>>56175892
>standard image macro "MAKE IT STOP"
>saved as "bunny stop.jpg"
>response is misdirection

if that's not reddit i dont know what is

python maybe?
>>
>>56175875
fact n = 

It amounts to exactly the same thing as
fact = \n ->
, unlike in le meme snek
>>
>>56175904
>being this triggered
kek
>>
>>56175904
>response is misdirection
>he says, as he does just that
>>
File: circularly linked lists.png (6KB, 400x89px) Image search: [Google]
circularly linked lists.png
6KB, 400x89px
>>56175913
>greentexting your own post
:^)
>>
>>56175928
lol wut
>>
File: ebin benis.png (29KB, 511x137px) Image search: [Google]
ebin benis.png
29KB, 511x137px
>>56175928
I've done better
>>
>>56175944
>ebin benis
>>pol
>>
>>56175847
>>56175928
[Y]test[/Y]

no good, I guess 4chan is well typed
>>
File: bye bye remnant.jpg (14KB, 255x225px) Image search: [Google]
bye bye remnant.jpg
14KB, 255x225px
>>56175957
>can't link to another board
>>>/reddit/
>>
>>56175986
>>>/mlp/
>>
File: WYxOXjD - Imgur.jpg (661KB, 1706x2064px) Image search: [Google]
WYxOXjD - Imgur.jpg
661KB, 1706x2064px
>>56175986
> Posts Trump
> Implies someone else is from reddit

Yeah, whatever stormcuck.
>>
>>56170287
>Using Dvorak
Colemak is better in every way. Z, x, C, and v all retain their original position so you can use your muscle memory for hotkeys which use those keys. Plus turning caps lock into backspace is incredibly helpful since you have to move your hand less
>>
>>56176039
What board was that on? I need to read the reactions
>>
File: QE6IQS0 - Imgur.png (247KB, 999x1200px) Image search: [Google]
QE6IQS0 - Imgur.png
247KB, 999x1200px
>>56175986
Stormfags are not allowed here, buddy. Go back to your containment board before it's too late.
>>
Why use OOP over procedural in Python? I just kinda got used to solve everything with functions and no classes/methods, but I often feel like I just missed the boat
>>
>>56176039
>>56176080
nice filenames faggot
>>
>>56176088
Why use Python at all?
>>
>>56176102
>trying to derail questions with language wars
Same old /dpt/
>>
>>56176112
>Language wars
You must be mistaken
You can't call something so one sided a war
>>
>>56176112
>implying your post wouldn't have derailed into an "OOP sucks" circlejerk
>>
File: 1464632537832.png (152KB, 1948x858px) Image search: [Google]
1464632537832.png
152KB, 1948x858px
>>56176122
>all consensus is circlejerking
Nobody likes OOP. Especially the people that use it.
>>
>>56176122
Too much curry made your butthurt, Pajeet?
>>
>>56174309
"""__pythonic__"""
>>
>>56171275
that's kircheis you absolute fucking cunt
>>
>>56171275
>>56176157
Are you frustrated ?
>>
>>56176157
That's his point. See filename.
>>
God /dpt/ has become such a shithole lately. Boy am I looking forward to summer ending.
>>
>>56176122
Idk what it'd have derailed into, I'm just trying to force myself use OOP so I don't feel left out, but I never managed to find a good use case for OOP in my tools
>>
>>56175788
var penis = "Soft"

class DickInspector {
constructor(dickStatus) {
if (penis = "Soft"){
this.penisIsSoft()

}

else if Penis != Soft {
this.penisIsNotSoft()
}

penisIsSoft() {
Alert ("I cannot fuck");
}

penisIsNotSoft() { alert ("I can");}

}

new DickInspector(penis)
>>
>>56174309
Change it to
import itertools
positions = itertools.chain.from_iterable(results)
>>
>>56176131
Were the titles supposed to be:
>OOP
>Java OOP

struct Animal {
bool brain = true;
uint8_t legs = 0;
};

struct Human: public Animal {
Human(): Animal{} { legs = 2; }
};

struct Pet: public Animal {
uint8_t fleas = 0;
Pet(): Animal{} { legs = 4; }
};

struct Dog: public Pet {
Dog(): Pet{} { fleas = 8; }
};
>>
File: 1470284474790.jpg (186KB, 743x743px) Image search: [Google]
1470284474790.jpg
186KB, 743x743px
>>56176282
>uint8_t legs = 0;
>all Animal need a leg count because one person decided they wanted to count a given animal's legs
>uint8_t fleas = 0 in all pets
>"how many ears does the animal have?"
>wait, shouldn't legs be in Vertebrate?
>>
>>56176274
Then tell him to fuck off with hard to read stuff unless he comments intent.

Or she, shouldn't presume gender.
>>
>>56176301
List comprehensions are hard to read only for Java monkeys
>>
>>56176300
Complain here >>56176131
>>
>>56176233
Indeed. So much OOP fighting because students don't know what OOP is.
>>
>>56176324
Oh come now.
I thought you said the first was OOP, while the second was Java OOP?


Are you recommending Java OOP?
>>
File: asm.png (5KB, 252x248px) Image search: [Google]
asm.png
5KB, 252x248px
Learning x86 assembly. Pretty fun. Although there is way to little registers.
>>
>>56176088
The OOP fad is ending anon. Don't worry about it. Now people mainly use OOP because they prefer that syntax for dynamic dispatch.
>>
>>56176345
That's not the whole part of the story. OOP object.action() syntax is great for smart code completion and saved people from opening the API doc.
>>
New thread: >>56176367
>>
>>56176338
All I did was create structs that represent the left frame on the picture senpai.
>>
>>56176323
And anyone who doesn't deal with stupid pythonic crap all the time. Or people who constantly work in languages that actually don't go at a snails pace and have to suffer with a very limited set of high level constructs because they care about the quality of software.
>>
>>56176362
OH. So you mean that the lack of decent IDE's is a plus of member functions now? And that has something to do with OOP? I swear you faggots grow more retarded every day. You can do
 
(Type arg)

Hit autocompete and have just as good aurocompletion as you would with member functions. Not that it's of any relevance since this has nothing to do with OOP at all.
>>
>>56176423
>being this dumb
wew
>>
>>56176423
>Not that it's of any relevance since this has nothing to do with OOP at all.

Neither does dynamic dispatch.
>>
>>56176339
Then learn the x86_64 extensions. You get 8 more general purpose registers and are guaranteed xmm registers.
>>
>>56176339
>to little registers
*too few

You should learn English too.
Thread posts: 319
Thread images: 34


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