[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: 313
Thread images: 24

What are you working on, /g/?

Previous thread: >>61516462
>>
first for Rust

show me your Rust code
>>
>>61521278
Its really not desu, UDAs would really help sepples.
>>
>>61521326
?
>>
>>61521343
Not so much user defined, but attributes in general. So all the legacy stuff can be tagged as such and not be a burden.
>>
>>61521137
One advantage of domain specific languages is saner defaults for implicit behavior depending on the domain. This reduces mental overhead and makes things easier to read. Rust's immutable-by-default is an example of this.
There might be other types of default behaviors that are more appropriate to other domains,
>>
>>61521423
>using a general purpose language as an example of a domain specific argument
nani?
>>
>>61521315
Can confirm. Rust is good.
>>
File: indentation.png (66KB, 597x255px) Image search: [Google]
indentation.png
66KB, 597x255px
Event polling vs Event waiting in a seperate thread?

Which one is best?
>>
>>61521486
Event waiting in a separate thread.
>>
>>61521486
anythin > polling
>>
File: 1488784024859.gif (800KB, 500x500px) Image search: [Google]
1488784024859.gif
800KB, 500x500px
>>61521503
>>61521502
Thanks. Time to restructure everything then!

(I actually do appreciate your help)
>>
>>61521486
It completely depends on the situation. For example, a multiplayer action game using a UDP connection may well be polling where as a web server will probably wait on a call to recv.
>>
>>61521538
It's just for window events like close requests and window resize events. Not really game related.
>>
Is the space complexity of this algorithm O(1) or O(n + m), where n and m are the lengths of the strings passed?
function foo(strOne, strTwo) {
// create arrays based on strings
strOne = strOne.split('');
strTwo = strTwo.split('');
}


I want to say that it's O(1). However, consider a language that passes by value rather than reference during the assignment of the arguments to the function parameters. Is that technically not linear space then?
>>
>>61521573
Then sure, waiting on a blocking call is likely fine. Its mostly only real time applications that are concerned with the possible loss of time associated with waking a thread up after an event occurs (though doing non-blocking calls on the main thread does reduce complexity in small , non-performance heavy applications).
>>
>>61521619
Depends on the implementation of the split method.
>>
>>61521005
>o(1)
>runtime doesn't vary based on input
No this is not O(1)
>>
>>61521435
>>61521315
We joke around a lot about people shilling languages.
But are you people seriously shilling a language?
>>
>>61521903
I'm not a shill. I've tried so many languages (C++, Go, Python, Rust, Clojure, Racket, Haskell), but Rust strikes a good balance between a practical language and a fun language.
>>
>>61521894
S P A C E
P
A
C
E

Are you legally blind?
>>
>>61521903
What incentive would there be to shill a language? The creators of the language receive no real benefit just from people using their language unless it's something like C# which locks the user into the MS ecosystem (mono sucks and .NET core is worthless in its current state)
>>
>>61521903
Rust shills have pretty much given up here.
>>
>>61521295
I just started the book.
fn main() {
for i in 1 .. 100 {
match (i%15, i%3, i%5) {
(0, _, _) => println!("Fizzbuzz"),
(_, 1, _) => println!("Fizz"),
(_, _, 1) => println!("Buzz"),
(_, _, _) => println!("{}", i),
}
}
}
>>
>>61522033
Oh shit I meant
fn main() {
for i in 1 .. 101 {
match (i%15, i%3, i%5) {
(0, _, _) => println!("Fizzbuzz"),
(_, 0, _) => println!("Fizz"),
(_, _, 0) => println!("Buzz"),
(_, _, _) => println!("{}", i),
}
}
}
>>
>>61521295
vidya game with Go+SDL2
>>
>>61522054
fn main() {
for i in 1 .. 101 {
match i%3, i%5) {
(0, 0 ) => println!("Fizzbuzz"),
(0, _) => println!("Fizz"),
( _, 0) => println!("Buzz"),
(_, _) => println!("{}", i),
}
}
}

Can't you do this? Never seen this syntax before btw
>>
>>61522066
Can't you replace the last arm of the match expression just with
_ => println!("{}", i),
?
>>
>>61522076
>>61522066
Yes, it works
fn main() {
for i in 1 .. 101 {
match (i%3, i%5) {
(0, 0 ) => println!("Fizzbuzz"),
(0, _) => println!("Fizz"),
( _, 0) => println!("Buzz"),
_ => println!("{}", i),
}
}
}
>>
how do I optimize my objects collisions in a game engine made by me on top of libgdx so I don't have to iterate every object iterating on top of every another object?

how do I optimize that problem?
>>
Automating a PNA for the test of a digital phase shifter. I have a tkinter interface set up with pyVISA to send the SCPI commands. There is a serial interface to shift command bits into the board with the chip. It collects a trace for each of the 64 phase steps and plots them. All I have left is setting pass fail criteria.

My next project will probably be something with image hashing to group dupes on the NAS I've been dumping images to for the past couple years.
>>
File: 1431275938601.jpg (122KB, 755x1024px) Image search: [Google]
1431275938601.jpg
122KB, 755x1024px
powershell backup script using shadowcopy so opened files work

I want to delete old archives created by this script
as is typical for backup programs
keep one weekly backup
keep one monthly

I have files with their creationtime in a variable
but what would be elegant, readable way to select one per month or one per week?

it would be easier if the assumption that theres always a daily backup, but thats not the case.
>>
File: giphy.gif (890KB, 260x146px) Image search: [Google]
giphy.gif
890KB, 260x146px
>mfw using pointers for the first time coming from python
>>
File: heroin.jpg (318KB, 2048x2048px) Image search: [Google]
heroin.jpg
318KB, 2048x2048px
>>61522212
alternative I am thinking is that on creation of the archive I would mark the ones that are first in that month, or first in that week with some string
and deleting all others when cleaning is being done
>>
>>61521640
I haven't seen anywhere mention that JavaScript engines can get this split done in-place, so would it be safe to assume linear space?
>>
>>61522114
The cheap way to save time is to only count each object pair once.

So if you have 3 objects and you bruteforce the possible collisions, you have 3*3= 9 permutations.
Except you don't really. Think of a triangle, there are only 3 lines joining the corners, so 3 permutations.

Visualised as a grid, you remove the diagonal line (an object cant collide with itself) and one half of the grid (a colliding with b is the same as b colliding with a).

Basically just tweak your n^2 loop to only use ((n-1)^2)-n permutations.
>>
>>61522255
If that's true, O(n).
I wouldn't be suprised if the split method runs natively instead of in JavaScript to give it a performance boost.
>>
>>61522286
I guess I can make and use a quadtree.

but is more efficient to create a new quadtree every physics cycle (some 30FPS) that contains all level objects, bullets and shit on libgdx and make it check the collisions that an iterating loop.

It seems so, at first glance, but I'm still not sure about it.
>>
How do I print all three-digit numbers from a document via Python? Some kind of IsDigit arguement or whatever? Google can't help as I can't phrase it well
>>
>>61522337
filter!(n.length == 3).read
or whatever?
>>
>>61522310
Something else to consider, assuming you have to provide the function to determine if the objects collide?

Making that function run faster will get you better returns than trying to reduce the number of calls, because it's going to depend on the number of objects anyway.
For example, if your objects are simple circles, instead of checking for line intersections, just compare the distance between centerpoints and check if 2 objects are 2*radius or less from each other.

Some things are going to be O(n^2) by their nature, instead of trying to hack around assuming best case scenarios, just speed up your comparison/checking method.
>>
What would be a typical set of questions for a Ruby/Python programmer interview??
>>
>>61522397
Can I do that with 'if line in (n.length == 3).read or something?
>>
>>61522448
Do you want your GIL slow or extra slow?
>>
>>61522429
So the quadtree isn't the bottleneck but the main problem is how to speed up the search space?
>>
>>61521315
ok
#[derive(Copy, Clone)]
struct Boy;
#[derive(Copy, Clone)]
struct Girl;

union Trap {
boy: Boy,
girl: Girl,
}

fn main() {
let Hime = unsafe { Trap { boy: Boy }.girl };
}
>>
>>61522450
Not sure, don't even know python but i assume it has some kind of functional stuff.
>>
>>61522502
FUCKING SHITTY BABBYMODE PYTHON REEEE
>>
>>61522485
Might be using JRuby, which has no GIL. Anyway, why respond if it's not anything meaningful to the question.
>>
>>61522490
>a boy and girl sharing the same memory
that just proves trannies are unnatural, desu.
>>
>>61522337
welcome to parsing, i hope you like incomprehensible strings of regex
>>
>>61522448
What is a decorator?
What's the difference between an iterator and a generator?
Are you familiar with virtualenvs?
>>
>>61522526
NEVER RESPOND TO ME OR MY WIFE'S SON EVER AGAIN!
>>
>>61522589
I don't get it.
>>
>>61522587
>What's the difference between an iterator and a generator?
Cant believe this is an actual question.
>>
>>61522628
FUCK YOU
REEEEEEEEEEEEEEEEEEEE
>>
Question: why was Python invented if Lisps already existed?
>>
>>61522787
normies can't comprehend lisp
>>
>>61522787
They werent happy with how much work they had to do so they wanted something even slower.
>>
>>61522828
I thought "normies" use Java and C#.
>>
>>61522849
That's the next step up.
>>
>finish CS degree
>only got taught useless langs like haskell
>can't get a job because all jobs want experience with java, c#, python, js, etc.
>>
>>61522904
>java, c#, python, js
You've been spared torture.
You should thank your CS professors
>>
>>61522915
js is the only one of those which really sounds torturous
>>
>>61522904
>learn the hard parts like math and CS topics
>too retarded to learn braindead lenguages
>"CS grads"
>>
>>61522944
why is js bad?
>>
>>61522967
The whole language just feels hacked together
>>
Iteration > recursion
>>
>>61523028
logical use case > being a brainlet
>>
>>61521295
Automated unit testing for angularJS components.
>>
What is the ISO standard for time? Is it seconds?
>>
File: wut.gif (854KB, 350x197px) Image search: [Google]
wut.gif
854KB, 350x197px
>>61523072
"Time" means more than the base unit you measure it with.

Maybe try to rephrase your question.
>>
>>61521903
It's an interesting language. The traits-based type system and the macro stuff seems cool.
>>
>>61523072
>what is google
>>
why in fuck are do pointer declarations and dereferences use the same symbol? and address and references?

did they WANT to confuse everyone? what fucking mongo invented this syntax?
>>
>>61523209
>no HKTs
>>
>>61523237
Declaration follows usage. It's elegant enough in general, though there are a few holes.
You're right about &-references in C++ though.
>>
>>61523072
computers use planck time dude
>>
Say what you will about Indians shitting in the streets, but I would kill for a good curry
>>
>>61523237
it's intuitive
>>
>>61521967
>space
Not much difference. You're not going to be able to define distinct references in O(1) memory.
Of course you can have many complicated schemes for this which makes it sublinear space (because LRE for instance) but since python just returns an array I'd say it's not really that.
Also it's not sublinear just because you use references. It's still linear it's just that you have a much smaller multiplier on that space use.
>>
>>61523347
asians literally do curry better.
>>
>>61522011
>creators don't gain from people using their language
No that's not true. Bjarne is an influential person, despite not being particularly accomplished.
>>
>>61523237
Look at how Pascal handles addressing and dereferencing, THEN you can complain about C-style pointers.
>>
>>61523369
>LRE
RLE, compression.
>>
>>61523395
I don't remember much about Pascal, seemed pretty reasonable to me.
>>
>>61523072
Does time exist? The laws of physics don't seem to agree that it does.
>>
>>61523395
It's almost the same, only ^ instead of *.
>>
>>61523369
O(1) isn't linear you mong.

A constant is not the same as a proportional relationship.
>>
>>61523237
I agree it's not the best but it's not that bad when you get used to it.
If they wanted to save symbols they could just have used the address-of operator for declarations. Makes more sense to me.
>>
>>61523416
I didn't say that. Legally blind?
The second paragraph was a more general view on by value vs reference. Might be a slight confusion. But it still applies perfectly well to this case.
>>
>>61523414
>>61523401
What I meant is that you use ^token for declaring a pointer, and token^ for dereferencing.

They wanted to distinguish the 2 things, but did it in the laziest way possible. At least C doesn't try to pretend to be descriptive.
>>
>>61523419
What about shit like:

char *buf = malloc(10);


*buf is of type char, but you're assigning to the return of malloc() to buf.

Using "char* buf" syntax is even more hideous, you just can't win.
>>
>>61523482
That's still better than what C++ does with references.

& - lvalue reference
&& - rvalue reference
&& - forwarding reference when the parameter is a template
>>
>>61523521
Initialization is the big problem I have with C declarator syntax.
int *x = malloc(sizeof *x);
*x = malloc(sizeof *x);

The elegant pattern of declaration being identical to usage just breaks down.
>>
In-place quicksort using linear types in a small Racket I built for my research work.
(L ...) means linear restricted language, (U ...) means non-linear (unrestricted) language.

(L (define (partition [pred : (→ Int Bool)]
[lst : (MList Int)]) (⊗ (MList Int) (MList Int))
(match-list lst
[(cons x xs @ l)
(let* ([(yes no) (partition pred xs)])
(if (pred x)
(tup (cons x yes @ l) no)
(tup yes (cons x no @ l))))]
[(nil)
(tup (nil {Int}) (nil {Int}))])))

(L (define (mqsort [lst : (MList Int)] [acc : (MList Int)]) (MList Int)
(match-list lst
[(cons piv xs @ l)
(let* ([(lt gt) (partition (λ (x) (< x piv)) xs)])
(mqsort lt (cons piv (mqsort gt acc) @ l)))]
[(nil) acc])))


(U (define (qsort [lst : (List Int)]) (List Int)
(L (mqsort (U lst) (nil)))))

(U (check-type (qsort (cons 4 (cons 7 (cons 2 (cons 1 (nil {Int}))))))
: (List Int)
⇒ (cons 1 (cons 2 (cons 4 (cons 7 (nil {Int})))))))
>>
>>61523556
C++ makes it worse, but the point is they're adding to an already broken system so who cares?
>>
>>61523556
C++ references were completely unnecessary, the only use case I can think for them is returning lvalues for things like operator[]
>>
>>61523521
Well you get used to it.
>char* buf is more hideous
Only in particular circumstances. Generally it makes more sense.
>>
Tbh Rust's references are much much better than C++'s.
>>
>>61523626
I don't like the
char* buf
style because it falls apart as soon as you declare a C array.
>>
>>61523617
move semantics are handy
>>
Idris will have Linear Types soon.
>>
>>61523637
I think that's more of an issue with arrays being a type that isn't grouped at the front of the declaration rather than the pointer syntax.
 
char*[10] pointerArray;

Would be better imo.
>>
>>61523638
You could have implemented the same shit with type modifiers if it weren't for backwards compatibility.
>>
>>61523659
source?
>>
>>61523666
char[10][20] buf;
buf[19][9];

No, the "declaration follows usage" pattern is still the most clear.
>>
>>61523706
No that's dumb.
Declaration and usage are very different things. There's no reason that one should follow the other.
>>
>>61523687
UniquenessTypes are a start
>>
>>61523751
Thats just speculation unless youre edwin
>>
>>61523659
After implementing linear languages in racket for the past 2 months, it's become clear that adding linear types isn't just a matter of adding a new type syntax; linear types severely affect the type system and all APIs that wish to interact with linear types. In particular it introduces an additional function type (the linear type `a -o b`, which can only be called once). Then you lose compatibility with every higher order function that expects the non-linear function, unless you go in and figure out which instances can accept the linear type and which can't, e.g. mapping an optional can accept a linear function, because there's only one element, but mapping a list can't accept a linear function because there are more elements.

Then if you want to introduce Rust-style borrowing it becomes even worse because now you have an effect system and you need to propogate borrowed usage information, so now all of you function types basically have to include notation for the entire contents of their closure, and now higher order functions need to be parametric over than information too.
Basically it clusterfucks type system because interopability is inherently difficult and messy unless you either 1) severely restrict the scope of the linear language, or 2) propogate linearity into all aspects of the language, which causes you to arrive at something like Rust which is very strict about everything.

I'm curious to see if Idris can figure out a way to solve this neatly.
>>
Would it be possible to create an algorithm that could only be run efficiently on, say, a m68k CPU, or would modern platforms simply be able to emulate said CPU and perform the algorithm faster than the original hardware?
>>
>>61523739
Clearly you disagree, because >>61523666 is declared with the same tokens that represent dereferencing and indexing. It resembles usage but it certainly doesn't follow it.
>>
>>61523596
Man, lisp with types looks really cluttered
>>
>>61523853
>clearly you're a hypocrite because you made the smallest modification possible to explain your view
No. And just because I prefer one thing in one instance it doesn't mean I adhere to a general rule.
>>
>>61523871
I don't understand why but every language with more advanced type system like ocaml, ats, ... they have really fucking ugly and unreadable syntax.
>>
>>61523801
I guess, you'll see
>>
>>61523846
Is there anything special about the design of the m68k? It not, then modern processors are probably just leagues faster than the original 68000 processors and will emulate them extremely efficiently.


>>61523942
ATS is the ugliest fucking language I've ever seen. I think OCaml looks fine, and Haskell can be very nice.
>>
File: st.png (60KB, 639x535px) Image search: [Google]
st.png
60KB, 639x535px
How emotional do you get when you program, guys?
>>
what is your favorite style?

// function declaration
function square(x) {
return x*x;
}

// function expresssion
const square = function(x) {
return x*x;
}

// arrow function expression
const square = (x) => {
return x*x;
}

// concise arrow function expression
const square = x => x*x;
>>
>>61524375
When working I feel emotions but don't care because it's my job.
When doing personal projects I just try to avoid stuff that angers me, that's why I'm programming in C at the moment.
>>
>>61524424
x -> (x * x)
>>
>>61524424
function declartion.
Fuck that fucking => arrow notation is the most retarded thing ever.
>>
>>61524375
>ever hiring womemes for anything but PR shit
>>
File: vero_getty_6.jpg (1006KB, 2000x3000px) Image search: [Google]
vero_getty_6.jpg
1006KB, 2000x3000px
>>61524375
>my code is an extension of me

Truly a code artist!
>>
>>61524444
nice digits
>>
>>61524424
The last three are pretty much identical desu
>>
>>61524424
f x = x
>>
>>61524517
>f x = x
how does this work?

f is a function ? x = x?
>>
>>61524559
f is a function of x which returns x aka the identity function
>>
>>61524559
It's the identity function.
>>
>>61524576
>>61524578
so how would it be for the square function of x?
>>
>>61524559
The syntax is
<function name> <argument patterns> "=" <expression>


There's no need for parenthesis or commas

isZero 0 = True
isZero _ = False

abs x | x < 0 = - x
abs x | x >= 0 = x

length [] = 0
length (first:rest) = 1 + length rest


Why use ugly algol languages when you could use beautiful functional languages?
>>
>>61524597
>Why write anything that people can read when we could just something write only?
But we already have perl.
>>
>>61524609
You don't need to read the code anon, just read the type signatures.
>>
>>61524559
>>61524576
this is better
b = (.) . (.)
>>
>>61524625
λx.x
>>
>>61524595
f x = x * x
f = (^2)
>>
>>61524595
f x = x*x
>>
>>61524643
f = (*) <*> id
>>
>>61524637
K = λxy.x
S = λxyz.(x z (y z))

enjoy
>>
>>61522904
>didn't get internships to build experience

Being a programmer is the easiest life you can have as an office worker
>>
File: apl.gif (7KB, 620x284px) Image search: [Google]
apl.gif
7KB, 620x284px
I really like common lisp syntax because it's basically just (, ), ', and symbol names. When you want to do macro stuff you start using ` and @ but it's still pretty small amount of different kind of characters.
Too bad there's no statically typed common lisp with type inference.
I don't understand why these functional fuckers create the most ugliest programming language syntaxes.
Pic related, basically how haskell looks.
>>
could it be possible to write a lisp interpreter that doesn't need parentheses?
or would the fact that most functions are variadic get in the way?
I guess you could -require- pretty printing and interpret it that way
>>
>>61524702
>Too bad there's no statically typed common lisp with type inference.
Go ahead and make it then.

>>61524764
If all function argument counts were known ahead of time, and you disallowed higher order function, then Lisp would just become backwards Forth and you wouldn't need any parnethesis.
>>
If I'm going to make shared library loader manager in C.
Should the function in the module be defined like
// requires that the user fetches all the function pointers from the shared library
void fn(engine *e, char *some_buf, int buf_len, void* custom);

or
// engine could fetch all automatically the provided functions as long as you know the name
void fn(engine *e, void *user_data);

or
// engine could fetch all automatically the provided functions as long as you know the name
void fn(engine *e, int parameter_count, ...);
>>
>>61524702
Haskell is not a good example of FP.
And Lisp is pretty ugly, desu
>>
>>61524801
>Go ahead and make it then.
>Dude just like write your own compiler bro
>>
>>61524824
>Haskell
Idris
>>
>>61524855
Exactly, lad.
>>
>>61524843
>implying lisp interpreters are as hard to make as compilers
entirely different level m8. kek

granted, having lisp compile down to bytecode before running does make it faster
>>
>>61524843
You got something better to do than complain about worthless syntactic issues?
>>
>>61524820
void fn(engine *e, void *user_data);
>>
BTW typed racket is a statically typed lisp with type inference. If you're just gonna whine about how it's Racket and doesn't have your precious setq's and mapcar's and defmacro's, then you can fuck yourself
>>
>>61524880
Writing efficient compiler is hard, I assume.
And I'm not going maintain a compiler implementation, got better things to do.

>>61524885
The syntax is what makes the language. If the syntax didn't matter everybody would be programming in sepples.
>>
Can someone help out a noob in python? I can't seem how to connect with the api keys. Keep getting "{"status": "error", "message": "Auth failed"}" as output.

It is about this API:
https://novaexchange.com/remote/faq/
>>
>>61524943
>Writing efficient compiler is hard, I assume.
>And I'm not going maintain a compiler implementation, got better things to do.
then make a lisp implementation that only interprets and never compiles down to bytecode
if it saves you headaches, it's worth the mild slowdown due to not being compiled
>>
>>61524929
>racket is a statically typed lisp
scheme
>>
File: screenshot.png (41KB, 722x227px) Image search: [Google]
screenshot.png
41KB, 722x227px
If modern x86 operating systems don't use the segment registers, then WHY THE FUCK do compiled elf binaries sometimes refer to memory with "ds:" and "gs:" prefixes???
>>
>>61525039
DS = DATA-segment
>>
>>61524978
If you copy & pasted either you api secret or key is wrong
>>
Anyone a fan of Linear Types?
>>
>>61525063
But why does that need to be specified?
I'm curious why the following isn't sufficient:

mov eax, DWORD PTR [0x804a034]
>>
>>61525076

The code is python 2 and I use python 3, I am quite noob so don't know how to fully update it. Keep running into the same error.
>>
>>61524985
Haven't you learned anything from /g/, literally the entire point of programming is to produce the most efficient fizzbuzz possible, that's why everyone here exclusively programs in C.
>>
>>61525127
for you
>>
>>61525127
pathetic desu
>>
How do I use Qt with GCC 7? ._.
>>
>>61525142
>>61525132
Have fun with your slow languages, cucks
>>
>>61525109
Not him, but i'm not clicking that link.

How does the API expect you to authenticate (e.g. http basic auth, bearer token, etc) and what does your authentication code look like?
>>
>>61525145
>switch to rolling release sources
>update
>install gcc and qt creator
you should then have the newest versions of everything
>>
>>61525154
>cuck outta nowhere

>>>/the_donald
>>
>>61525154
>
>>
>>61525164
That does not answer my question. I have Qt with GCC on Arch but I cannot do that on other platforms where I have to get ahold of GCC 7 myself as it;s not provided so I'm looking for a solution how to hook up Qt with it that's going to be compatible without having to build Qt myself.
>>
>>61525039
i386 is still segmented
>>
>>61525191
go into your QT creator kit options and manually select the compiler
it will likely be defaulting to whatever your system was installing from its software sources
>>
from a javascript tutorial

"We can read properties like length and toUpperCase from string values. But if you try to add a new property, it doesn’t stick."


isnt toUpperCase a method? is this a mistake in the tutorial?
>>
>>61521295
nothing honestly
i havent any code in over 6 months i dont even remember how to write anything
>>
>waaaaahhhhh some people prefer other lisps it's not fair
Why are Racket users so butthurt?
>>
>>61525219
Will it pick up the libraries that I already have installed for GCC 7 in non-standard paths? That is they're part of my custom GCC 7 distribution that I need to set up with PATH variables in order for the shell to pick it up. Is there anything similar for Qt? Furthermore is there a way to do that without relying on Qt creator so that I can continue using CMake?
>>
>>61525225
var temp = "asdf"
console.log(temp.toUpperCase)


looks like a property to me
>>
>>61525225
There's no difference in javascript.
>>
>>61525257
>Will it pick up the libraries that I already have installed for GCC 7 in non-standard paths? That is they're part of my custom GCC 7 distribution that I need to set up with PATH variables in order for the shell to pick it up. Is there anything similar for Qt?
I think you can add it to the search path and have everything work.
> Furthermore is there a way to do that without relying on Qt creator so that I can continue using CMake?
qt creator uses CMake
besides, it's comfy
>>
Implementing new statically typed lisp language.
Should you define the functions like
;; pt is the type
(def midpoint pt (p1 pt p2 pt) ...)

or
;; pt is the type
(def midpoint:pt (p1:pt p2:pt) ...)
>>
>>61525295
The second makes more sense to me
>>
>>61525311
yeah well you are dumb haskell faggot so nobody cares what makes sense to you.
The second one is more readable though, IMO.
>>
>>61525328
wow rude delet this
>>
>>61525242
it's like riding a bike, you never really forget
if you're claiming to have forgotten, it's likely you never really knew it all that well in the first place
>>
File: 09993938.png (13KB, 729x206px) Image search: [Google]
09993938.png
13KB, 729x206px
>>61525109
I created an account and tested it on Python3. Here's what I needed to do to make it work:

1. You have to give permission (see pic), i.e. turn the functions you want to use to green
2. In the code you have to change

req["signature"] = base64.b64encode( hmac.new( API_SECRET, msg = url, digestmod = hashlib.sha512 ).digest() )


to

req["signature"] = base64.b64encode( hmac.new( API_SECRET.encode("utf8"), msg = url.encode("utf8"), digestmod = hashlib.sha512 ).digest() )


And obviously parenthesis around the print statements. Otherwise it works fine
>>
File: powershell.png (358KB, 1972x1475px) Image search: [Google]
powershell.png
358KB, 1972x1475px
python spoiled me
I feel like suffering when I am dealing here with arrays in powershell

single line in python, removing N elements from front, from end, whatever you want

Now after 20 minutes of googling and switching to arraylists cuz they are mutable
seems that n powershell I have to actually get length of the array, iterate over it and stop when counter is reached...
feels like going back to bronze age..

dont get me wrong, powershell is pretty neat with all its objects, compared to bash miles ahead, but some things seems to went unnoticed
>>
>>61525295
Definitely not the second because usually in lisp 'a:b' would be interpreted as a single symbol.
Seperating type declaration and implementation is the superior style.
(: midpoint (-> pt pt pt))
(def midpoint (a b)
(pt (avg (pt-x a) (pt-x b))
(avg (pt-y a) (pt-y b))))
>>
>>61525295
#2
>>
>>61525039
the disassembler lied to you
>>61525104
>But why does that need to be specified?
it doesn't
>I'm curious why the following isn't sufficient:
it is
>>
what is the value of the toUpperCase hash key of string objects in javascript?

is it a function or value? Im confused
>>
>>61525350
> ->
dumb racket poster
>>
>>61525377
functions are values, anon
>>
File: 920x920.jpg (51KB, 920x583px) Image search: [Google]
920x920.jpg
51KB, 920x583px
>>61525346
Imagine how the lisp programmers back in the day felt
>>
Tell me why I should/shouldn't use Racket
>>
>>61525439
it's weird
>>
>>61525439
Its the least shit lisp, but its still a fools gold rock in a pile of shit.
>>
>>61525475
>Its the least shit lisp, but its still a fools gold rock in a pile of shit.
delet this
>>
>>61525439
Are you a bubee-wallabee?
>>
File: baka.jpg (7KB, 225x225px) Image search: [Google]
baka.jpg
7KB, 225x225px
Who here drunk programming?
Writing C and drinking some Johnnie Walker here.
>>
>>61525497
something like Facebook but for people with no friends
>>
>>61525294
Actually adding GCC 7 to Qt as a kit made Qt Creator unable to link Qt at all. I'm just gonna try to nigger rig it and copy the libs/bins over to my GCC distro and see if it can pick up Qt without complications.
>>
>>61525439
But anon, why would you want to use anything other than C?
>>
>>61525527
>Actually adding GCC 7 to Qt as a kit made Qt Creator unable to link Qt at all.
weird, wonder why
>>
>>61524424
anything but the first is disgusting
>>
Should I learn LISP or Haskell?

Not interested in job prospects, doing it for fun. So in other words which one is more fun?
>>
>>61521619
Javascript is pass by value. That code will be O(1) if your engine eliminates dead code, O(n+m) if not.
>>
>>61521295
Building a terminal 4chan client in python
>>
>>61525572
Haskell is tehnically more fun because you learn more advanced concepts.
Lisp is for people who think theyre above Python.
>>
>>61525514
Beg pardon?
>>
>>61525572
lisp is more fun
haskel is for brainlets

of the various lisps
common lisp is the biggest and can do basically anything
scheme varies like crazy across implementations since the base language is so small, so it's hard to pin down
and racket is just weird
>>
>>61525346
Python is a general purpose language while powershell is mainly a system administration/automation language that doubles as a shell.

You're comparing apples to oranges.
>>
>>61525572
Haskell for sure imo. It has a lot more layers of abstraction and a completely different computing model than lisp (in reality Haskell has no call stack). But you're likely to just get a lot of arguing for answers
>>
File: 9000039.png (9KB, 649x159px) Image search: [Google]
9000039.png
9KB, 649x159px
>>61525576
Please transform the captcha to ascii
>>
>see job posting
>see "Very familiar with concepts such as:"
>Client server networking
>MVCS
>Generics
>Anonymous functions
>Garbage collectors and memory management
>Futures
>Opinions about common OO patterns
>Git


which of these do you know /g/?
>>
>>61525572
I would say Common lisp/Racket.
Common lisp has reader macros which no other languages has.
For implementations there's clasp which should have really easy interface to c++ stuff.
There's also ecl which can embed c++ code, has recent bindings for QT5 and really active maintainer.

Racket has decent C ffi, it has lot of libraries. John Carmack chose racket as scripting language for VR stuff.

Haskell I feel might currently have the most usefull libraries and biggest community because of how fragmented lisp is. The standard language is also statically typed(?) which is good.
>>
>>61525624
4/8
how'd I do
>>
>>61525624
6/8
>>
>>61525624
8/8, maybe 6 or 7 if you're being really strict but I could be at 8 in two hours in that case
>>
>>61525624
I would just research each topic and say I'm familiar with all of them.
>>
>A variable declared as an array of some type acts as a pointer to that type. When used by itself, it points to the first element of the array


Why can't I assign a value to an array with the & operator then?
>>
>>61525696
>>61525681
>>61525668
>>61525663
>>61525646
this is the whole job posting


Requirements
>3+ years mobile experience, ios or android
>Have launched a mobile game
>Have worked on a live game
>Very familiar with concepts such as:
>Client server networking
>MVCS
>Generics
>Anonymous functions
>Garbage collectors and memory management
>Futures
>Opinions about common OO patterns
>Git

Bonus Points
>Familiar with the AS3
>Familiar with Haxe
>Have written much SQL
>Know flash / photoshop
>C++
>Worked on the backend for a game

Benefits
>Private health insurance
>Have a large impact as part of a small, close-knit team.
>>
>>61525711
>3+ years mobile experience, ios or android
im out
>Familiar with the AS3
>Familiar with Haxe
>Have written much SQL
>Know flash / photoshop
Im really out
>>
>>61525711
>>Have a large impact as part of a small, close-knit team.
aka it's lower pay than one would deserve
>>
File: hehh.png (1MB, 1144x1218px) Image search: [Google]
hehh.png
1MB, 1144x1218px
>>61525711
>>
>>61525728
>>61525729
>>61525737
keep in mind this was for a Front End Gameplay Programmer
>>
>>61521295
filling up this directory with all skeleton programs of all the hardware features of this AVR before moving on to another family of mcus and doing the same. This is the first one I've ever used so it will take the longest. Then as I get familiar with common patterns it will be faster with different mcu families.

/*
This program uses the AVR(atmega328pu) ADC on ADC0 to set the brightness of an LED with PWM.
*/
#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int main(void)
{
DDRD |= _BV(PD6);

// Fast PWM. //Set on compare, clear on bottom.
TCCR0A |= _BV(WGM01) | _BV(WGM00) | _BV(COM0A1);
TCCR0B |= _BV(CS00);

// Disable digital input buffers on PORTC, saves power.
DIDR0 |= 0XFF;

// ADMUX: don't forget to enable each input!
// ADC0 is enabled by defualt, that's what I'm using in this case.
ADMUX |= _BV(ADLAR) | _BV(REFS0);
ADCSRA |= _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0);
ADCSRA |= _BV(ADIE) | _BV(ADATE); // interrupt enable, trigger(s) enable.
ADCSRB &= ~_BV(ADTS2) & ~_BV(ADTS1) & ~_BV(ADTS0); // Set triggers (freerunning mode).
ADCSRA |= _BV(ADSC); // Start ADC
sei();

while(1);
}

ISR(ADC_vect)
{
OCR0A = ADCH;
}
>>
>>61525751
sounds gay
>>
>>61525344

Thank you sir, it finally works.
>>
>>61525711
So they're trying to hire an unemployed John Carmack for 40k a year. I fucking hate it when companies do this shit.

It ends up doing them harm too, because it increases the number of useless narcissists that apply, and because the listed requirements are so intense, the end up getting desperate and hiring a useless narcissist that will make the project burn instead of a competent person who knows that he isn't a renaissance man.

They're a mobile game studio though so it's for their own good they burn.
>>
Answer please
>>61525700


Why can't I write int x[1] = &var
>>
so if guile was designed with C in mind, how well does it play with C++?
>>
>>61525851
>int x[1] = &var
x[1] = &var
int x[1] = [&var]
>>
>>61525870
fuck.
x[0] = &var
>>
>>61525842
I always thought they did that so they have an excuse to hire foreigners for nothing

>32 years experience in a program that came out this year
>2 years experience as a job site mathematician
>welp nobody's qualified, better get an h1jeet.
>>
>>61525851
You can.

int * x[3];
x[1] = &var


But I'm guessing you want x to be of type int and not int *

Your statement is saying:

"assign the address of var to the first element of x"

x is an array of ints. It takes ints, not int pointers.
>>
>>61525887
Oh fuck. I forgot about h1bs. You're right it's part of the h1b scam.
>>
>>61525863
I have only experience with guile 1.8 and 2.0 brought lot of changes.
I still would say that it doesn't play well with c++ because it doesn't compile to it.
Chicken scheme and gambit-c can compile to c++ so they can inline c++ code.
For c++ code with guile you might have to first write c++ wrapper that extern "C" some stuff and then write C -> guile wrapper.
I recommend you read the docs at least the FFI part it should clear how things work out.
>>
>>61525916
fug
I guess i'm learning Chicken instead
>>
>>61525904
yeah, this come up every once in a while. When companies don't have 500 applicants, they start saying there's a (((shortage))) of applicants. Because they can't turn down applicants until they get some guy who's basically willing to get shat on to take the job.

>wow nobody will PAY US to do this work, there's a shortage of truck drivers newspapers publish this so people know
>>
>>61525931
this chicken?

http://call-cc.org/
>>
>>61525965
yeah, why
>>
>>61522966
This. Why the fuck would you even want to be a retarded code monkey with a CS degree in the first place?
>>
>>61525883
>>61525883
>>61525870

doesn't work

>>61525892
i'm confused because I was told many times that arrays are pointers themselves.

That if I type down int *x[], I'm not making a pointer to an int, but a pointer to a pointer of an int.
>>
>>61525624
>Client server networking
Simple, everyone should know the basics

>MVCS
Meme

>Generics
Easy. These are taught in second semester at my university.

>Anonymous functions
>Git
You have to live under a rock to not understand/use these in 2017

>Garbage collectors
It's not difficult to understand using GC's because you basically don't have acknowledge their existence. As for implementing, the two main algorithms (mark & sweep and Cheney's algorithm) are very simple.

>Futures
These are kind of weird and don't exist in many language, but are more intuitive if you understand monads.

>Opinions about common OO patterns
Here's an opinion: they're shit
>>
File: happycop.png (1MB, 640x1905px) Image search: [Google]
happycop.png
1MB, 640x1905px
>>61522087
I don't know dis lang from my butt, but
fn main() {
for i in 1 .. 101 {
match (i%3, i%5) {
(0, _) => println!("Fizz"),
( _, 0) => println!("Buzz"),
_ => println!("{}", i),
}
}
}


maybe use print instead of prinln.
Anyhoo, 15 %3 == 0 and 15%5 == 0 so it should print Fizz Buzz
I think your code would print Fizz Buzz FizzBuzz 15 which is wrong according to most sources.
>>
>>61525965
I fucking hate the name "chicken" and that they call libraries "egg"s.
Otherwise it's really good scheme implementation with the biggest or the second biggest community(racket might be top but do we consider is a scheme?).
It does only provide green threads(no native thread support) but I think they are working on that and there is egg with native thread support.

If you really care about portabilily and native thread support you go with bigloo.
>>
Why is go so simple and elegant?

package main

import (
"bufio"
"fmt"
"log"
"os"

"github.com/ipfs/go-ipfs-api" //package shell
)

func main() {
s := shell.NewShell("http://localhost:5001")
sub, err := s.PubSubSubscribe("pubsubsynctest")
if err != nil {
log.Fatal(err)
}

quit := make(chan bool, 1)

fmt.Println("Subbed and waiting...")
go func() {
for {
msg, err := sub.Next()
if err != nil {
log.Println(err)
}
go handleMessage(msg)
}
}()

go func() {
r := bufio.NewReader(os.Stdin)
r.ReadString('q')
quit <- true
}()

<-quit
}
>>
>>61526017
>:=
It's shit
>>
File: blarf.jpg (26KB, 399x388px) Image search: [Google]
blarf.jpg
26KB, 399x388px
>>61526017
>:=
><-
>>
>>61526008
You were lied to. They're roughly the same, but there's subtle differences.

int * x[] is an array to pointers of ints, which is similar to int ** x; a pointer to pointers of ints.
>>
>>61525916
Not him but what about Chibi scheme? It seems comfy. Does it allow me to pause and resume continuations?
>>
>>61526057
If you really care you should read the FFI and call/cc part of the docs of implementations.
Some implementations can inline C, some can inline c++, some support call/cc and some don't.
I think chibi do call/cc but can't inline anything, you have to define every C stuff you want to use.
>>
>>61526040
f : GL ()
f = do
window <- initGL
glViewport 0 0 1080 1920
while !(glfwWindowShouldClose window) $ do
glfwSwapBuffers window
glfwPollEvents
glfwTerminate
>>
>>61526014
>It does only provide green threads(no native thread support) but I think they are working on that and there is egg with native thread support.
I fucking hate that there's only green threads, but they do provide lots of IPC libraries to make up for it.

What egg are you talking about? The only eggs I know about for threading create either c threads or threads with separate nurseries, which might as well be separate processes.

As far as I'm aware of, the reason why there's no real threading is because of the garbage collector.

>>61526057
It's not really scheme without call/cc... I'd be shocked if it didn't have call/cc. Or do you mean something beyond call/cc?
>>
>>61526040
>picks the most sane part and complains about it
sasuga dumb frogposter
>>
>>61526125
>:=
><-
>acceptable language syntax
baka desu senpai
>>
Guys help a brainlet learn c++ please.

class Argument {
public:
bool operator==(const string& other) const {
return other == name_string;
}
/*Constructor, private string "name_string" variable, other stuff*/
}


Later:
vector<Argument> arguments;
char* attacker;
//arguments gets populated
//attacker gets value which is supposed to be a name of one of the arguments, through reading a line from a file then splitting it with strtok (hence char* and not string)
auto attArg = find(arguments.begin(), arguments.end(), string(attacker));

Gets "no matching function call to find". But the documentation says
>find (InputIterator first, InputIterator last, const T& val)
>T shall be a type supporting comparisons with the elements pointed by InputIterator using operator==

So why can I not find one of my Arguments which matches a string even though I defined operator== for argument-string comparisons?
>>
>>61526137
You fucking C nigger, get out of my sight
>>
>>61526137
>it's unacceptable because I'm not familiar with it being a C babby
>>
>>61526137
see >>61526108
>>
File: arrows.png (375KB, 756x728px) Image search: [Google]
arrows.png
375KB, 756x728px
>>61526040
>>61526137
>>
>>61526154
>using 2 character wide symbol for the most common operation
>what is Amdahl's law
>>
>>61526171
>Amdahl's law
not that
i don't see how that could have anything to do with tat in fact
>>
>>61526171
>he doesn't have a := key on his keyboard
are you even a programmer?
>>
>>61526152
>>61526154
>haha, C is dum!! amirite guis?
>>
>>61526192
C IS dumb you fucking child
>if i put it in greentext it's false!!!
>>
>>61526192
nice strawperson
>>
Once again, omitting the lhs type is objectively shit when doing := because its unnatural to read.
>>
>>61526188
I program with the most efficient keylayout, colemak.
If your language is not easy type with colemak your language has failed. Dumb apl programmer.
>>
>>61525766
Is embedded development anything else than just toggling bits on and off, with suitable time delays in between?
>>
>>61526148
Do you have the std namespace in your scope?
>>
>>61526212
but all you program is fizzbuzz. all programmers who do real work are known to use qwerty
>>
>>61526239
Yup.
>>
>>61526148
This is why C++ is a mistake. What are you making?

Anyway are you sure it isn't trying to do string-argument comparisons instead of argument-string comparisons?
>>
>>61526230
I guess it depends what you wanna do. These are really just toy programs since it's the first mcu i've ever programmed like this, so most of them are just exercises in using the inbuilt circuitry that the thing has. And to do that you do just put the right bits in the right registers and make sure stuff is wired up the right way. Other times you'll need to implement things in software which will just be like doing regular C. If I didn't already know C when I started it would have taken a lot longer because everything is really cryptic with everything being an acronym...
>>
>>61526242
>implying
>>
>>61526299
I'm making a thing that's supposed to read a graph in tgf format, find the strongly connected components, and output a graphviz file consisting of the graph of SSCs of the original graph. It's my first ever C++ program.
I'm honestly finding it really fun.

Anyway no, i don't think so. Again, the spec says:
>>T shall be a type supporting comparisons with the elements pointed by InputIterator using operator==
And continues:
>(with the elements as left-hand side operands, and val as right-hand side).
So it sounds like it should work.
>>
>>61526258
Check that you have #include <algorithm>

This works, for example
#include <algorithm>
#include <string>
#include <vector>

struct Blah {
Blah(const std::string& name) : name(name) {}
bool operator==(const std::string& other) {
return name == other;
}
std::string name;
};

int main()
{
std::vector<Blah> arr = {{"foo"}, {"bar"}, {"baz"}};
auto res = std::find(arr.begin(), arr.end(), "foo");
return res != arr.end();
}
>>
>>61526398
I KNEW it would be something stupid like this. Thank you! It's working now.
>>
>>61526212
colemak looks disgusting.
>all those vital keys separate from eachother.
dvorak > qwerty > coleshit
>>
After learning Rust, I want to branch out and learn C++ for contrast. I learned some C years ago. Are there any good resources for learning C++ for someone who already knows several languages?
>>
>>61526414
What about Workman
I'm learning it right now and it's comfy
>>
>>61526419
I asked a similar question a few weeks ago and got recommended A Tour of C++. I can now wholeheartedly pass on this recommendation.

It goes through things very quickly, so you'll probably need an internet connection to look things up all the time, but it does an absolutely amazing job of outlining all the features and pointing you in the right direction, telling you what, exactly, you're supposed to look up.
>>
File: dvorak-lady.jpg (5KB, 300x168px) Image search: [Google]
dvorak-lady.jpg
5KB, 300x168px
>>61526414
dumb dvorak poster
>>
>>61526429
The asymmetrical and skewed vowel split-up is a little odd, but it does look better. And a few other letters id probably swap. Its above colemac though.
>>61526477
dumb arthritis poster
>>
>>61526481
just rewrite linux, what are you dumb faggot?
>>
>>61526477
>dvorak lady
What did he mean by this
>>
>>61526454
This poster knows what he's talking about. You can get The C++ Programming Language from Stroustrup too, it's the same but in far, far more detail.
>>
>>61526454
Thanks mate. I'll look into it.
>>
>>61526481
why does that have the filename that it does
>>
File: Capture.jpg (31KB, 692x368px) Image search: [Google]
Capture.jpg
31KB, 692x368px
I have this:
System.out.println("size: " + arrayListPlatform.size());
System.out.println("max number of threads: " + MAX_NUMBER_OF_THREADS);
int range = (int) Math.ceil(arrayListPlatform.size() / MAX_NUMBER_OF_THREADS);
System.out.println("range: " + range);


Which outputs this:
size: 12345
max number of threads: 6
range: 2057


WHY THE FUCK IS RANGE 2057?!
>>
>>61526614
Because you're doing integer division. Cast either the dividend or the divisor to a double.
>>
I just learned that Fortran has a very cool allocatable array data type. It is an array whose size can be set during program run time.

PROGRAM alloc_array
! This program asks the user for the number of people and then asks the
! weights of all the people. Average and total weights are then computed.
! An allocatable array is used to store the weight data.

IMPLICIT NONE

INTEGER :: num_people
REAL :: total_weight = 0.0, average_weight = 0.0
INTEGER :: n_person

! The size of this array is set during run time.
REAL, DIMENSION (:), ALLOCATABLE :: weight

PRINT *, 'Enter the number of people:'
READ *, num_people

! Memory allocation
ALLOCATE (weight(1 : num_people))

! Get each person's weight and store into array
DO n_person = 1, num_people
PRINT *, 'Enter weight for person ', n_person
READ *, weight(n_person)

total_weight = total_weight + weight(n_person)
END DO

average_weight = total_weight / num_people
PRINT *, 'Average weight is:', average_weight

PRINT *, ''
PRINT *, 'The weights were:'
DO n_person = 1, num_people
PRINT *, n_person, ' ', weight(n_person)
END DO

END PROGRAM alloc_array
>>
>>61526646
Damn, what will they come up with next?
>>
>>61526529
I posted an entire thread about this once and everyone told me that was shit. Effective Modern C++ seems to be the generally recognised best resource.

Disclaimer: I don't own either, I'm just aggregating what everyone else seems to be saying.
>>
>>61526646
Why is this cool? C has malloc. Technically not C arrays but almost.
>>
>>61526666
C99 has VLAs. That should be enough.
>>
>>61526614
>java brainlets
>>
>>61526676
Oh huh. I don't think I've ever made an array on the stack though so it's useless to me.
>>
>>61526637
Thanks anon.

I thought ceil already did that.
>>
>>61526658
I haven't read Effective Modern C++, but I'm sure it's better for learning. The C++ Programming Language covers everything in depth so I find it to be a good reference.
>>
>>61526709
Integer division occurs before the call to ceil.
>>
>>61526709
Ceil does but it's casting the quotient to a float. The integer division has already happened.
>>
C > Python > javascript > java

is this a good trail?
>>
>>61526778
Python > C > Java
>>
>>61526778
Technically JS is more useful than Pyshit.
>>
New thread:

>>61526805
>>61526805
>>61526805
>>
>>61526051
They are the same, as in the value itself gets compiled to the same thing (except the address it points to may be on the stack). The only difference is the type checker knows the size at compile time. In any context they're used as a pointer it gets converted.
>>
Okay, I don't know too much about networking but I'm wondering if someone can explain to me why NAT is such an issue, specifically for video games.

I thought there were well established and reliable ways to get around it well enough for 2 people to be able to send packets directly to each other reliably. If not why have we not moved on to something else yet, I remember people saying there's enough ipv6 addresses for everyone and we wouldn't need to work around limits with NAT.
Thread posts: 313
Thread images: 24


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