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

File: 1486600406194.png (439KB, 760x720px) Image search: [Google]
1486600406194.png
439KB, 760x720px
What are you working on, /g/?

Old thread: >>58894674
>>
Haskell Wikibook is pretty good senpai.
>>
>>58898848
Integer is an integer

Int is an Int (think C)

Int# is an unboxed Int, # is typically used for unboxed types

Haskell also has Word8, Word16, etc.
(Those are boxed though)
>>
>>58898866
Integer is arbitrary precision.

Int is, as you said, think C.

Don't forget Int64 and friends.
>>
>>58898866
So Int is recommended for dealing with natural numbers?
>>
>>58898883
For some reason Haskell doesn't have a Natural type. Never understood why.
>>
>>58898891
GHC has one, but it's not in base
It's proposed for haskell prime

>>58898883
You can always do it yourself

data Nat = Nat Integer
-- don't expose this constructor

-- todo: operations --

instance Num Nat where
fromInteger i | i < 0 = throwError ("Can't make nat out of " ++ show i)
| otherwise = Nat i
>>
>>58898883
For instance: reading a natural number from a file or parsing an argument as a natural number.
Racket gives me this for free (at the cost of performance I guess).
>>
>>58898912
Prelude doesn't have a Natural type, so use Integer
If you really want to make sure to use Natural, use GHC.Natural
>>
Any of you into Computer Graphics ? What are you up to these days ? What are your projects. Pictures,github links,blogs and general thoughts would be appreciated.
>>
>>58898865
do you like haskell?
>>
File: snap141.png (27KB, 572x315px) Image search: [Google]
snap141.png
27KB, 572x315px
I'm improving my GET tool with an integrated post form that uses a 4chan pass.
(I could add a captcha solver like in DelayClose, but that's just too unreliable for GETs since captchas expire really quickly and sometimes get rejected for no reason.)

This will allow me to drastically improve accuracy when posting large images with a GET, because I'll be able to start sending 99% of the data for a post to the server, and only have to confirm the post at the exact moment of the GET, instead of starting the upload at the moment of the GET and then having to wait.

The performance of my tool is currently of ~1500ms between the time a previous post is made and when it is detected, and for a small text-only post an additional 400ms between detecting and the GET post hitting the server, (but much longer for posts with large images).

So this currently works fine on slow boards, but almost 2s of delay it's too slow for big GETs.
This improvement should bring the total delay to around ~1600ms no matter the size of the post, and then I still need to work on improving detection times.

I have three different methods to detect new posts, two of which should be very fast and bypass all caching, but although very rarely they give detection delays as low as 250ms, the majority of the time it's closer to 1500ms, and I have no idea why.
If my ping is 20ms and a request comes back in <200ms, but it takes 1500ms between a post and the first successful request comes back, either 4chan is spending a lot of time propagating changes in the backend, or something weird is going on.

Scripting is an under-appreciated art.
>>
File: hurmktsquat.jpg (169KB, 1080x1080px) Image search: [Google]
hurmktsquat.jpg
169KB, 1080x1080px
>>58898728
>>58898728
>>58898728

any ideas?
>>
>>58898993
Wear a bra?
>>
File: Capture.png (46KB, 788x352px) Image search: [Google]
Capture.png
46KB, 788x352px
>>58898985
I'm interested, I made my own script using legacy captchas. Works pretty good and I've got a lot of quads & quints on /tv/ & /co/. What method are you using to detecting posts?
>>
>>58898982
I'm no Haskell veteran, but it looks like a solid language. I also read a book on Racket, but I'm not sold. Haskell looks better in many aspects.
>>
>>58899039
So there's 3 methods, the first is just checking the Page 1 using the 4chan API, and taking the last post in it, but that's very slow and unreliable, so it's only used on first start to get a rough idea of the current post ID.

Then I have two different methods using undocumented APIs to check if a particular post ID exists, so I keep track of the last post ID and keep checking until the next pots appears.

One of these is using the good old sys.4chan.org/<board>/imgboard.php?res=<id> API which is pretty well known, and the other one I haven't seen anyone else use, it's designed to bypass all caches and should be pretty fast, although in practice it performs roughly the same as the ?res API.
>>
Why do some people think dynamic typing is a good thing?
>>
>>58899056
Can you implement in haskel a fast calculation of a PDE with a CUDA acceleration?
>>
>>58899125
It's easier to program with a duck typing.
>>
>>58899146
What's haskel?
>>
>>58899165
Haskell
>>
>>58899184
Haskell who?
>>
>>58899152
False economy.
>>
>>58899194
Frankly speaking, I don't clearly understand what it is. Pajeets like to use this word in conjuction with the word Arch Linux or Apple MacBook. It seems very important in modern software engineering.
>>
>>58899231
It depends on a context. Silicon chips are usually cheaper than engineers' time.
>>
>>58899194
Curry!
>>
>>58899267
Static typing catches errors faster, and requires less time to be spent debugging and writing tests.
>>
>>58899291
[citation needed]
>>
>>58899291
May be type errors are not frequent.
>>
>>58899315
Static typing catches at compile time, dynamic typing at run time.
>>
>>58899330
So what?
>>
>>58899324
You also save time from the compiler being able to instantiate and pass things around automatically using information gleaned from types.
>>
>>58899337
Anything that can explode at run time, should be covered by tests.
>>
>>58899330
With the cost of neutering interactivity with your environment, along with limiting your metaprogramming.
>>
>>58899371
Types aren't going to catch logic errors.
>>
>>58899372
[citation needed]
>>
>>58899382
>Template Haskell
>GHCi
Enough said. If you allow the full power of metaprogramming, you give up type-safety.
>>
>>58899372
If you had to choose, I'd say yes.
>>58899381
No shit.
>>
>>58899340
There're pros and cons and trade-offs in every technology. Some tools are better for some particular tasks. I don't see the point to argue about a family of languages for a some vague general case. People chose a technology to use according to many factors including a labour market.
>>
>>58899394
>implying those two are the only possibilities
>>
>>58899372
Metaprogramming delays type checking until after code generation at worst.
>>
dynamic typing only became a thing because the type system of so called popular strongly typed languages were dog shit at that time
>>
>>58899405
Feel free to name any other. There's a couple of Lisps I can think of.
>>
>>58899420
C++ templates don't have this problem.
>>
>>58899430
They literally do, and they aren't metaprogramming
>>
>>58899430
Yes they do.

>>58899515
Nah, C++ templates definitely are metaprogramming.
>>
>>58899528
>Nah, C++ templates definitely are metaprogramming.
How?
>>
>>58899558
>Template metaprogramming (TMP) is a metaprogramming technique in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled.
>>
>>58899558
They're not simply generics that get monomorphised, they're much closer to macros since they basically just do code substitution. They do a modicum of type checking up front (i.e. you can't use an int as a typename/class parameter) but most of the type checking is delayed so you can do things like SFINAE.
>>
>>58899571
C++ people might CALL it metaprogramming but that doesn't mean it is
>>
>>58899577
They literally are monomorphized generics, parametric and ad hoc polymorphism is allowing you to do that stuff
>>
>>58899578
What about metahumans?
>>
>>58899593
+ overloading that is

but in sane languages you just call it programming
>>
>>58899602
Yeah, I agree with that. Metaprogramming is a poor man's programming for the most part.
>>
>>58899106
>sys.4chan.org/<board>/imgboard.php?res=<id>
Yeah that's the one I use. Is there any big advantage of using the method you mentioned over this one?
>>
>>58899601
Imagine an abbo who's smarter than every other abbo

He's meta-abbo but is he meta-human?
>>
>>58899648
and basically that's my opinion of C++ "metaprogramming"
>>
>>58899648
http://comicvine.gamespot.com/metahuman/4015-55705/characters/
>>
Implementing a twisty puzzle (à la Rubik's Cube) in console.
>>
>>58899644
The other method seems to be ~5ms faster, but overall that's pretty negligible. I'm also sure that the other method is completely uncacheable, but in practice that's not very important since I'm still getting the weird 1500ms delay either way.
>>
>>58899670
copyright it
>>
>>58899677
I can't. The original idea is not from me. ANd I give it to the world. Cubes shoudl be free for cubers.
>>
>>58899684
Is it for you to give away someone else's idea?
>>
>>58899670
did you commit it to the systemd mailing list? pretty sure they would include it in the next release
>>
>>58899695
>Is it for you to give away someone else's idea?
The idea is already published.
>>
>>58899658
It merely shows that you have troubles with C++. Software engineers from Nvidia or id Software for example don't have this problem. It seems that they aren't going to move to a "proper metaprogramming" in your opinion.
>>
>>58899721
No. I will try to integrate it to the bsd-games.
>>
>>58899745
No, I'm saying that "metaprogramming" in a decent language is just programming.
>>
>>58899671
Also, I noticed you said you were using GET to check if the post exists. You should use HEAD so you don't load the unnecessary body content.
>>
>>58899768
C++ is a multiparadigm language you can call it whatever you want. Template metaprogramming is not a C++ term.
>>
>>58899778
Yeah right now I use GET and fire a callback as soon as I see the headers, but that's pretty wasteful
>>
File: 1486803051626.png (309KB, 692x720px) Image search: [Google]
1486803051626.png
309KB, 692x720px
>>58899819
>C++ is a multiparadigm language
>>
>>58899867
Do you have anything to contribute?
According to your picture you should probably get some education, so I guess not.
>>
>>58899867
>>58899915
fucking demolished
never show your face here again
>>
>>58899867
fucking anime poster im gonna find you and dick you down for hours
>>
What's wrong with this?

#include <stdio.h>
#include <stdbool.h>

typedef struct rule {
const int factor;
const char *string;
} rule_t;

static const rule_t rules[] = {
{ 3, "Fizz" },
{ 5, "Buzz" },
};

int main(int argc, char **argv)
{
for (int i = 1; i <= 100; ++i) {
bool printed = false;

for (size_t r = 0; r < sizeof(rules) / sizeof(rules[0]); r++) {
if (i % rules[r].factor == 0) {
printf(rules[r].string);
printed = true;
}
}

if (! printed) {
printf("%d", i);
}

printf("\n");
}

return 0;
}
>>
>>58900059
Works on my machine (tm).
>>
>>58900059
Really good, +1 from me.
>>
>>58900059
>using size_t for an index instead of ptrdiff_t
>>
>it's another episode of Anon is too depressed to code episode
>reruns showing for 4 days straight
>>
>>58900185
Why would you want a signed type for array indexing?
>>
>>58900249
Ask him, he used an int index already.
>>
>>58900260
Not for array indexing but for iterating over the integers he wanted to.
>>
>>58900227
*lazy
>>
>>58899915
>>58899865
>C++ is a multiparadigm language
but if you don't follow the official style of C++ OOP with templates you'll be laughed at

there are books you should know and follow those practices to be taken seriously

C++ sucks like that
>>
We doing FizzBuzz again? Fuck yo modulos!
#include <stdio.h>
int main() {
size_t f = 0, b = 0, to = 20;
for (size_t i = 1; i <= to; ++i, ++f, ++b) {
int ft = (f = f > 2 ? 0 : f) == 2;
int bt = (b = b > 4 ? 0 : b) == 4;
int pnum = ft || bt;
printf("%s", ft ? "Fizz" : "");
printf("%s", bt ? "Buzz" : "");
printf(ft || bt ? "\n" : "%zu\n", i);
}
}
>>
>>58900468
Thankfully, what people feel to be good code/programming practice has absolutely no influence on whether a language is multiparadigm or not.
>>
>>58900568
Shit, I forgot to "optimize" the "pnum" variable away.
>>
How do I make the commented code work?
import Text.Read

areaTriangle base height = 0.5 * base * height

getLineDouble = do
line <- getLine
case readMaybe line :: Maybe Double of
Just x -> return x
Nothing -> error "invalid number"

main = do
putStrLn "The base?"
base <- getLineDouble
putStrLn "The height?"
height <- getLineDouble
putStrLn $ "The area of that triangle is " ++ show (areaTriangle base height)
--putStrLn $ "The area of that triangle is " ++ show $ areaTriangle base height
>>
>>58900568
rate me
int StartTime;

async void Main()
{
StartTime = Environment.TickCount;

for (int i = 0; i < 100; i++)
{
await PrintFizzBuzzAsync();
}
}

async Task PrintFizzBuzzAsync()
{
await Task.Delay(1000);
int delta = Environment.TickCount - StartTime;
if (delta % 15 == 0)
Console.WriteLine("FizzBuzz");
else if (delta % 3 == 0)
Console.WriteLine("Fizz");
else if (delta % 5 == 0)
Console.WriteLine("Buzz");
else Console.WriteLine(delta / 1000);
}
>>
>>58900748
++ (show $ areaTriangle base height)
>>
>2015 + 2
>Not programming in almighty Java

What is your excuse?
>>
>>58900785
Is there no way to remove the '(' and ')'?
>>
I put n numbers which are presented as lengths of segments, how many triangles is it possible to make?
I am legitimately retarded person and wish to have some sort of critique. Are there better variants possible?

inb4 don't use c++

#include <iostream>
#include <vector>
#include <algorithm>
#include <iso646.h>

using namespace std;

int
main() {

vector <int> v;
unsigned int count(0), length, temp, n;

for (size_t i = 0; i < n; i++) {
cin >> length;
v.push_back(length);
}


sort(v.begin(), v.end());

for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v.size() - 1; j++) {
if ((i < j) and (v[i] + v[j] > v[j + 1])) {
cout << v[i] << " " << v[j] << " " << v[j + 1] << endl;
count++;
}
}
}

cout << "triangles: " << count << endl;
cin >> n;

return 0;

}
>>
>>58900788
To intelligent
>>
>>58900748
Like the line above it. $ isn't a magic replacement for parens. $ has super low precedence, so haskell parses it like this:
putStrLn $ ("The area of that triangle is " ++ show) $ (areaTriangle base height)

And
"The area of that triangle is " ++ show
obviously doesnt make sense, so you get an error.
>>
>>58900823
>$ isn't a magic replacement for parens
oh... I thought '$' simply inserted parens after the symbol.
>>
File: 2banan.png (17KB, 1167x876px) Image search: [Google]
2banan.png
17KB, 1167x876px
>>58900818
>>
>>58900788
Because I program in C#, the better version of Java
>>
>>58900803
putStrLn . ("The area of that triangle is " ++) . show $ areaTriangle base height
>>
>>58900868
That's just moving the parens.
>>
>>58900866
they are practically the same and same with C
>>
>>58900844
You can define $ yourself, in fact.

($) :: (a -> b) -> a -> b
f $ a = f a
infixr 0 $


No magic here.
>>
>>58900856
Nie, to banany.
>>
>>58900882
No, that's an operator section
You can also do

putStrLn . (++) "......" . show $ ...
>>
>>58898839
Making a checkers program in c++
>>
>>58900856
jeg liker bananer, i går spiste jeg to
>>
File: 1483730818833.png (160KB, 373x345px) Image search: [Google]
1483730818833.png
160KB, 373x345px
>>58900900
>suddenly, scandy thread
>>
File: zwei bananen.png (411KB, 576x669px) Image search: [Google]
zwei bananen.png
411KB, 576x669px
>>58900893
>>58900900
But it's to banan, bro. Like this loli, but without the horrible accent.
>>
>>58900812
Your algorithm doesn't even look at all possible cases. You only look at triangles with side lengths v[i], v[j], v[j+1] for all i < j, rather than side lengths v[i], v[j], v[k] for all i < j < k.

The naive solution would require a third nested loop and work in O(n^3) time.
>>
File: 92PT8ms.jpg (146KB, 500x375px) Image search: [Google]
92PT8ms.jpg
146KB, 500x375px
>working in a team
>I'm using C++, I need to pass variables from C++ to Python for someone else
>"yeah I need you to pass me an array type"
>can't pass vectors because C++->Python only supports C-types
>can't pass an array because arrays aren't dynamically sized

wat
>>
>>58901045
>wanting interface to languages and using sepples
Your own fault should have stayed with C and everything would be just smooth jazz.
>>
>>58898866
diff bw/ boxed and unvoxed?
>>
>>58901045
First result with Google, wow so hard.
http://stackoverflow.com/questions/30388170/sending-a-c-array-to-python-and-back-extending-c-with-numpy
>>
>>58901070

Actually, we were all meant to stay within C++.
>>
>>58901079
boxed all have uniform representation (pointer indirection)

it effects polymorphism too

unboxed can make stuff a lot faster though, like C speed
>>
>>58901091
Yeah and nobody in their right would want to do that so you just dug your grave faggotron.
>>
What is the time complexity of this function? O(a+b)? a and b are strings by the way.

def f(a, b, count = 0):
if abs(len(a) - len(b)) >= 2 or count >= 2:
return False
if a == "" or b == "":
return True
else:
if a[0] != b[0]:
return f(a, b[1:], count+1) or f(a[1:], b, count+1) or f(a[1:], b[1:], count+1)
else:
return f(a[1:], b[1:], count)
>>
I want to rubberduck something off you, /dpt/.

I'm going to write a program that lets the user mark up certain data files with meta data.

I assume i'm going have to save the meta data and markup in a parallel file, right?
What's a good scheme for keeping track of the markup files and seamless retrieval of the meta data when the user opens the data file with my program?
>>
>>58901025
Thank you a lot, senpai.
>>
>>58901176
>O(a+b)

nigga what
>>
>>58901176
Someone didn't pay attention in last class.
>>
>>58901233
Is it O(min(a,b))? I don't really get how to determine time complexity with recursive functions.

>>58901252
Hah, I wish I took programming classes. Just trying to learn this stuff on my own.
>>
>>58901217
Also, you're reading the value of n after using it, which doesn't make sense. Check if your code works for some sample inputs before asking for help.

Here's a solution in O(n^2 logn):

#include <algorithm>
#include <iostream>
#include <vector>

int main() {

int number;

std::cin >> number;
std::vector<int> segments(number);

for (int i = 0; i < number; i++) {
std::cin >> segments[i];
}

std::sort(segments.begin(), segments.end());

int triangles = 0;

for (int i = 0; i < number - 2; i++) {
for (int j = i + 1; j < number - 1; j++) {
auto first_greater = std::upper_bound(segments.begin() + j + 1,
segments.end(),
segments[i] + segments[j]);
triangles += first_greater - segments.begin() - j - 1;
}
}

std::cout << triangles << std::endl;
}
>>
>>58901045
>what is a vector
>>
>>58901365
>Also, you're reading the value of n after using it, which doesn't make sense.

I did this for purpose of pausing cmd after program is done. Could have just put breakpoint, though. I think it wouldn't work as intended if we've got same lengths in input, i.e. (4 -> 1 3 3 2).
Also, if sort() is removed, (4 -> 1 3 4 2) gives us 33, if it isn't, then 32, one result is missing.
>>
>>58901365
Small error, this also counts degenerate triangles where a + b = c.

Fix:
            auto first_greater = std::upper_bound(segments.begin() + j + 1,
segments.end(),
segments[i] + segments[j],
[] (int a, int b) { return a <= b; });
>>
>>58901472
It adds 1 3 2 as output, and that's not a triangle.
>>
> AP computer science
>>
can someone give me a scenario where downcasting or upcasting is useful in java? what's the point?
>>
Is anyone here familiar with Qt/C++?
>>
>>58901581
>being underage
>>
File: 827.png (250KB, 680x638px) Image search: [Google]
827.png
250KB, 680x638px
m game'making I a
>>
>>58901487
>[](int a, int b) { return a <= b; }
Operator sections when?

>>58901735
>>>/v/ you frogposting manchild

p.s. die before you get there
>>
File: 1486396299203.jpg (124KB, 882x731px) Image search: [Google]
1486396299203.jpg
124KB, 882x731px
>>58901781
thx m'lady
>>
>>58901472
The real problem is that you're using n before it's set.

>Also, if sort() is removed, (4 -> 1 3 4 2) gives us 33, if it isn't, then 32, one result is missing.

Not sure at all what you're talking about here. For side lengths 1 2 3 4, the only possible triangle is (2, 3, 4), so the answer should be 1.

>>58901487
Actually much simpler fix is to just change upper_bound to lower_bound...
>>
>>58898839
If Haskell is so good, then why does no one use it? Oh wait, it's because it's a noisy mess with broken metaprogramming and an illusion of type-safety. Unfortunately, many of the big name libraries (lens is a good example) make use of Template Haskell, which can lead to programs which are not type-safe. Why put so much work into a deception?
>>
File: ideacorp.png (55KB, 1542x554px) Image search: [Google]
ideacorp.png
55KB, 1542x554px
I have found a french start-up https://myidea.fr/index.html, they have invented developement by DLC ...
>>
>>58901865
What do you recommend instead? Idris? Scheme?
>>
>>58901865
>illusion of type safety because template haskell
and also you can import unsafe coerce but sure that thing about TH is a much bigger issue
>>
>>58901886
I recommend not programming at all.
>>
Programming is fun!
FUN :D
[spoiler]XD[/spoiler]
>>
>>58901964
Wrong.
>>
>>58901843
1 1 1
1 2 2
1 3 3
1 4 4
2 1 2
2 2 1
...

Moreover, I have no idea how to handle things like (4 -> 1 1 1 1).
>>
>>58901995
:((((
>>
>>58902026
Since you know you want i < j < k, you can do something like what I did in >>58901365.

for (int i = 0; i < number - 2; i++) {
for (int j = i + 1; j < number - 1; j++) {
for (int k = j + 1; k < number; k++) {
/* do stuff */
}
}
}


When writing a for loop, think logically through what each part should be. You know that i will go from 0 to number - 2 since if it's greater than number - 2 you won't have enough longer edges to create a triangle. Given an i, j's will start at i+1 and go until number - 1 (same logic). And same reasoning for k going from j + 1 to number.
>>
glib really is the best thing for C.
>>
>>58902172
#define cond_A (v[i] + v[j] > v[k]) // a + b > c
#define cond_B (v[j] + v[k] > v[i]) // b + c > a
#define cond_C (v[i] + v[k] > v[j]) // a + c > b


using namespace std;

int tr(const vector<int> &v) {

int count = 0,
i, j, k;

for (i = 0; i < v.size(); i++) {
for (j = 0; j < v.size(); j++) {
for (k = 0; k < v.size(); k++) {

if (cond_A and cond_B and cond_C) {
cout << v[i] << " " << v[j] << " " << v[k] << endl;
count++;
}
}
}
}
return count;
}


This shit gives closest right result. However, it doesn't handle things (4 -> 1 1 1 1) where output should be "1" as there is only (1 1 1) possible, so as with (1 2 2 2), etc.

The triangle is unique where at least one side changed, having got a sequence of (2,5,6) we would get [(2 5 6), (2 6 5), (6 2 5), ... ].

I'll try yours, thanks.
>>
>>58901928
Solid advice. Code can't crash if it's never made.
Working on ASM day 3, it's been fun if confusing, but I am learning a lot about how lower level languages work and my C/C++ has gone from zero ability to I might be able to write something small in it which feels great.

Today I ran across this in a function call, what exactly does it mean. arg_0 and arg_4 are both ints with the values 0x2222 and 0x3333 respectively.
mov eax, [esp+arg_0]
mov ecx, [esp+arg_4]
mov [eax+Ch], ecx


Is this creating a new variable on the stack at esp+arg_0+Ch with the contents of ecx? If so why would you ever want to do this and skip space on the stack?
>>
Can I release an app for an non-profit organization without asking their permission? I made the app on my free time and I am not affiliated with the organization.
>>
>>58902372
Do they have a public API or rules for 3rd party developers? I don't see any reason why you would be stopped unless they don't like what you are doing with the data.
>>
>>58902172
>O(n^3)
kys
>>
File: haskell-logo.jpg (25KB, 431x172px) Image search: [Google]
haskell-logo.jpg
25KB, 431x172px
What the fuck is this shit?
How do I go about learning this?
first functional lang btw
>>
>>58902416
thats not On^3
>>
>>58902428
Basics
http://learnyouahaskell.com/
Toolchain
https://docs.haskellstack.org/en/stable/README/
Practical use
http://snapframework.com/
>>
>>58902437
>(n^3-3*n^2+2*n)/6 != O(n^3)

what did he mean by this
>>
>>58902428
It's a purely functional programming language. Functions behave like mathematical functions. It also uses strong static typing with type inference. I have the Hutton book, which isn't as dense as the Haskell from First Principles book.

Learn a Lisp along with it to see the differences between a typed and untyped lambda calculus.
>>
>>58902428
https://en.wikibooks.org/wiki/Haskell

step 1 is install stack
>>
>>58902488
>j = i + 1
>>
>>58902519
is this niga serious?

(%i13) radcan(sum(sum(sum(1, k, j+1, n-1),j,i+1,n-2),i,0,n-3)), simpsum;
2 3
2 n - 3 n + n
(%o13) ---------------
6
>>
>>58902550
>what is a logarithm
>>
>>58902488
He meant that he's bad at math.
>>
>>58902566
still incorrect. you need to work on your sums
>>
>>58902580
give college a few more years pal
>>
>>58902588
provide your analysis of the complexity. no logarithm should be involved at all you retard
>>
>>58902613
you'd like me to do your homework wouldnt you
>>
>>58902305
Ok, the impression I got from the first algorithm you posted was that the edges were distinguishable, but the order of edges in a triangle didn't matter.
>>
>>58902641
on the contrary, i'd like you to do yours :^)
P.S. all the nested loops are linear in `number` :D
>>
>>58902654
alright
>>
File: classifications.png (77KB, 600x651px) Image search: [Google]
classifications.png
77KB, 600x651px
>>58902588
>>58902566
>>58902519
>>58902437
http://algs4.cs.princeton.edu/14analysis/
>>
>>58902437
That code is extremely similar to matrix chain multiplication, which is n**3
>>
What are the 5-10 most important algorithms to know for working day-to-day as a software developer? Stuff you use in regular, everyday code.
>>
>>58902666
>>58902669
>>58902654
>these are the people i talk to on /dpt/
i always knew /g/ was full of high schoolers
>>
>>58902683
not an argument
>>
>>58902683
niga what the fuck. you are so adamantly wrong right now and you can't even admit it
>>
>>58902692
>>58902683
Nice same fag. What is going on in this thread?
>>
>>58902683
>Everyone is wrong but me.
>>
>>58902705
>>>58902692(You)
>>>58902683
got me

>What is going on in this thread?
some retard thinks O(n^3) = O(n^2log n)
>>
>>58902706
>>58902705
>>58902692
>>58902687
Oh man you guys are getting me good.

It's time to read back up on BigO and nlogn
>>
>>58902728
not an argument
>>
>>58902728
>It's time to read back up on BigO and nlogn
for you
>>
>>58902728
And by that I mean you guys are fuckin retarded, here, have a cheat sheet: http://bigocheatsheet.com/
>>
File: 1485917855536.jpg (165KB, 1024x857px) Image search: [Google]
1485917855536.jpg
165KB, 1024x857px
>>58902728
>tfw to smart too be baited
>>
>>58902748
you haven't even provided your own analysis of the time complexity
>>
easiest way to have a pool of threads using pthreads in C?

I'm writing a simple client-server network application and I want to have a thread handle each client request. Not really sure how to implement this tho. Accept the connection, send the socket pointer to a new thread? Then how do I re-use the thread once it's done?
>>
>>58902782
>re-use the thread
waste of your time
>>
>>58902782
glib and maybe apr provide threadpools.
>>
>>58902762
The following would be n^3
for (int i = 1; i < n; i++) {
for (int j = 1; j < i; j++) {
for (int k = 1; k < j; k++) {
}
}
}


Examine the differences between this and the debated loops, notice the logarithmic characteristics of the latter
>>
>>58902823
>the logarithmic characteristics
see >>58902550

you probably think
for i=1..n:
for j=i..n:
{...}

is n log n
LOL
>>
>>58902823
Prove it's nlognlogn or whatever the fuck you think it should be.
>>
>>58902794
so just create a new thread for each request? one and done?
>>
>>58902823
https://rekinyz.wordpress.com/2015/01/31/time-complexity-analysis-in-3-sum-4-sum-problem/

for (int i = 1; i < n; i++) {
for (int j = 1; j < i; j++) {
for (int k = 1; k < j; k++) {
}
}
}

and
for (int i = 1; i < n; i++) {
for (int j = i + 1; j < i; j++) {
for (int k = j + 1; k < j; k++) {
}
}
}

Have the same complexity.
>>
>>58900059
>(((struct)))
>>
>>58902862
pretty much. threads are designed to be lightweight to begin with
>>
File: 1449700279793.png (74KB, 300x256px) Image search: [Google]
1449700279793.png
74KB, 300x256px
>>58902823
>the example is not O(n^3) because this different example is O(n^3)
>>
>>58902869
I meant

for (int i = 1; i < n; i++) {
for (int j = 1; j < n; j++) {
for (int k = 1; k < n; k++) {
}
}
}

and
for (int i = 1; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
}
}
}
>>
>>58902869
woah some random wordpress must be fact!
>>58902860
im gonna go fuck a black chick and ill be back in like 45-hour to prove it, brb
>>
>>58902873
thanks.

for some reason I thought with pthreads you had to have a specific number of threads and you could only use those. i guess I could just create a new one out of thin air every time a new client comes in
>>
>unironically using bigO
lol
>>
>>58902933
this. i only ironically care about performance
>>
>>58902823

>of the latter
That would refer to the one posted at a later time, or the one you have currently posted.

>logarithmic characteristics
There are none. But for what it's worth, if we were to take your logic, bubblesort would be n log n, which it is clearly not.
>>
>>58902893
>im gonna go fuck a black chick and ill be back in like 45-hour to prove it, brb
I'm afraid you don't have the necessary mathematical skills to prove anything, Pajeet
>>
>>58903003
fuck off tripfag
>>
>>58902893
>im gonna go fuck a black chick and ill be back in like 45-hour to prove it, brb

GTP Approved!
>>
>>58902933

Depending on the problem, big O can make a big difference.

>>58903026

No.
>>
>>58902944
>care about performance
>measure vague "worst" case which is usually not even the worst case of the algorithm you are measuring
yeah tell me about it
>>
>>58903069
>usually not even the worst case
explain
>>
File: thermostat.jpg (28KB, 471x390px) Image search: [Google]
thermostat.jpg
28KB, 471x390px
Since C is used for "embedded systems", does that mean it's likely used to program the air conditioner thermostat on my wall?

I would say something even simpler than C is used since it's just if else logic, but when you start bringing date scheduling etc into the picture, C might be used?
>>
>>58902305
>>58902649

Here's an O(n^2) version with what I think is what you meant:

#include <algorithm>
#include <iostream>
#include <map>
#include <vector>

int main() {

int number;

std::cin >> number;

std::map<int, int> multiplicity;
int edge_length;
for (int i = 0; i < number; i++) {
std::cin >> edge_length;
multiplicity[edge_length]++;
}

int triangles = 0;

std::vector<int> edges;
for (auto edge : multiplicity) {
if (edge.second >= 3) {
// count equilateral triangles
triangles++;
}

if (edge.second >= 2) {
// count isosceles triangles
triangles += 3 * (multiplicity.size() - 1);
}

edges.push_back(edge.first);
}

for (int i = 0; i < (int)edges.size() - 2; i++) {
auto first_greater = edges.begin() + i + 2;
for (int j = i + 1; j < (int)edges.size() - 1; j++) {
// count triangles with 3 different edges
first_greater = std::lower_bound(first_greater,
edges.end(), edges[i] + edges[j]);
triangles += 6 * (first_greater - edges.begin() - j - 1);
}
}

std::cout << triangles << std::endl;
}


Analyze it and let me know if you have any questions.
>>
>>58903237
You don't need an OS or a C library to make a thermostat actually.
>>
>>58903237
It could be programmed in literally anything that's a systems language
>>
>using + for concatenation
Disgusting.
>>
>>58903272
I guess what I'm trying to understand is the concept of "embedded systems". Like..how complicated does it have to be before C is required?

i.e. What's a real world example of C being used for an embedded system? Because I've read that is C's main use nowadays
>>
>>58903317
C if you don't want to write assembly
you can use C without using libraries/kernels
>>
>>58903317
Vending machines
>>
>>58903387
Ok I was just reading about. Apparently a lot of embedded systems don't have the ability to do dynamic linking, and because of size constraints you can't static link entire libraries in the executable, so you have to "home brew" parts of libraries if you want to use them at all
>>
>>58903420
right. you can make C as light as you want. are you asking about when to use the standard libraries/when not to?
>>
>>58903317
When you go to limited system there might exists C compiler for the processor. You might need to add some inline assembly for for startup, interrupts, putting data in specific location, relying on time where you really need to know how many instructions you are executing.

It requires that you have somekind of understanding of the processor but you can do a lot of with just C. It's worse than assembly in that you don't know what kind of code it generates, it's usually slower.
>>
>>58903444
No I'm not really asking anything now, I'm just typing out loud haha. I'm just now learning C and the concept of embedded systems and think it's pretty cool
>>
>>58903477
awesome! im glad you've found something interesting :^)
>>
>>58903088
BigO measures growth. It usually tells you nothing about real performance.
You can improve or reduce performance by an order of magnitude and still be the same O(n).
>>
>>58903476
my goal is to try and learn C and assembly hand in hand, though I'm sure the latter will require more time. Every time I compile I generate the assembly file, then look at them side by side to see what's been changed, or opitimized, etc
>>
Who else is sad that game consoles are moving away from making their own chips?
>>
>>58903501
its true that O(cf(n)) = O(f(n))
but that doesn't mean you get no information about the real world performance
>>
>>58903317

>how complicated does it have to be before C is required
And what language do you propose would be used for "simple" cases?
>>
>>58903548
Well, many consoles used off-the-shelf components.
>>
>>58903476
>It's worse than assembly in that you don't know what kind of code it generates
C actually has very predictable assembly most of the time. There is nothing in there which is going to cause can explosion of object code.
It's only compiler optimisations which are going to make things very different.
>it's usually slower
You're incredibly naive if you think you can outperform an optimising C compiler in the general case.
There are all sorts of crazy transformations that a compiler will do that a programmer would never think of.
>>
Can someone explain to me the logical OR in C#?
I'm having a bit trouble understanding the following expression:

a = a | (num = otherNum)

Does that mean that the bool a becomes true if either the left side, or right side of | is true?
>>
>>58902666
>linearithmic
Fukken saved.
>>
>>58903982
be careful with this because as you've written it this is the bitwise or which does something else

if you did mean to use the logical or ||
then a become true if
a is already true or
num is true
(or both)
>>
>>58903982
Missed an equals there, should be num == otherNum
>>
>>58903982
>either the left side, or right side
either or both
at least 1 is true
>>
>>58904023
What's different with bitwise or and regular or? Does that mean only 0 is false, rest is true?

Is a |= (num == otherNum) the same as the above expression?
>>
>>58904046
bitwise or is a much different concept
see https://en.wikipedia.org/wiki/Bitwise_operation#OR

it checks that the bits are set in either the left or right operand
for example
0b111 | 0b001 == 0b111
0b101 | 0b001 == 0b101


but the logical or checks that either (or both) expression is true
these are all the outcomes of the logical or:
true || false == true
true || true == true
false || true == true
false || false == false


>Is a |= (num == otherNum) the same as the above expression?
yes, a |= (num == otherNum) is equivalent to a = a | (num == otherNum)
but this is still a different operation than the logical or. this is the bitwise or
>>
>>58904095
For the above code, can either work? I'm checking between number matches in different arrays (they're not that big, <50 each), and I notice no difference if I use bitwise or logical.

What are some applications of bitwise where you can't use logical?
>>
>>58904173
they are equivalent if both operands occupy only 1 bit. this is true for boolean values. in general you shouldn't interchange them, though
>>
dumb question time

how am i supposed to test a .dll i'm writing if i can't press play? do i have to open a second project?
>>
>>58904203
>i can't press play
kys

i assume you mean you can't execute the dll because it doesn't have a main method
make a file that has a main method that utilize the library
>>
>>58904173
In general you use logical OR for conditions, for example in if statements, for loops, or when setting a boolean flag.

A common usage example of bitwise OR is when setting multiple flags in a bitmask.

fd_memory = shm_open("shm_name", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);

will create a shared memory segment that is readable and writable by the user.
>>
File: 91q1TUz.png (98KB, 910x399px) Image search: [Google]
91q1TUz.png
98KB, 910x399px
haven't posted in a while but i'm adding last.fm integration - today I figured out how to log in from scratch using webapi

also if you're interested try downloading the latest release: https://github.com/nukeop/nuclear/releases

it's not complete, some buttons are not wired yet and it's kinda buggy but i'm getting there

my biggest problem is that adding new functionality is way more fun than polishing what I already have
>>
>>58898839
what does /dpt/ think of my multithreaded fizzbuzz?

#include <cstdlib>
#include <cstdio>
#include <thread>
#include <vector>
#include <iostream>
#include <intrin.h>
#include <stdint.h>
#include <sstream>
//#include <tb.h>

#define ull unsigned long long

using namespace std;

stringstream result;

void fb(ull n) {
if (!(n % 15)) {
result << n << " fizzbuzz\n";
} else if (!(n % 3)) {
result << n << " fizz\n";
} else if (!(n % 5)) {
result << n << " buzz\n";
} else {
result << n << "\n";
}
}

int main() {
vector<thread> freds;
ull max;
cout << "So tell me what you want, what you really, really want\n";
cin >> max;
cout << "I wanna (ha), I wanna (ha), I wanna (ha), I wanna (ha), I wanna\nReally, really, really wanna fizzbuzz-ah\n";
auto cstart = __rdtsc();
for (ull i = 0; i <= max; i++) {
freds.push_back(thread(fb,i));
}
cout << result.str();
result.str("");
auto cend = __rdtsc();
for (auto &fred: freds) {
fred.join();
}
printf("Took you only %llu/1000000000 seconds :^)\n", cend - cstart);
return main();
}
>>
>>58904707
>C++
It's complete garbage.
>>
>>58904719
now that was a fast response
must be all the C++ code
>>
>>58904707
>n % 15
trash.jpg
>>
>>58904719
Software engineers at Google are strongly encouraged to program in one of four officially-approved programming languages at Google: C++, Java, Python, or Go. Minimizing the number of different programming languages used reduces obstacles to code reuse and programmer collaboration.

https://arxiv.org/abs/1702.01715
>>
>>58904707
>
return main();

lmao what
>>
>>58904791
what's yer problem m80
>>
I'm trying to print out <p> as part of a text in some javascript code. How do I stop it from becoming a tag function and instead to have it appear as a text?

document.write('<p>');

to output as a text instead of line breaking.
>>
>>58904791
>>58904820
In meme++, you're not allowed to call main.
It's fine in C, though.
>>
>>58904830
sorry why are you not allowed? I have it compiled and it's working
maybe you check your privilege before you make a statement like that, ok?
>>
>>58904830
is that*
>>
>>58904619
Looking pretty good anon
>>
>>58904820
who the fuck wants an infinitely recursive main function
>>
File: 2017-02-12-120358_644x388_scrot.png (12KB, 644x388px) Image search: [Google]
2017-02-12-120358_644x388_scrot.png
12KB, 644x388px
>>58904842
>>58904859
>>
>>58904889
>-Wpedantic
kys yourself
>>58904876
because I want to put in other numbers
only thing it's missing is an exit statement
>>
#include "SomeClass.h"

int main(){
SomeClass* p = new SomeClass(int,int,etc);
p->DoSomethingWithYourVariables();
destroy p;
}



i want a class like that from a .dll so i can put p onto a different thread. is that even possible? should i do this differently? from what i've learned so far, i have to define class functions in a dll like

class SomeClass{
static __declspec(dllexport) void DoSomething();
}



but i don't want a static class? am i misunderstanding something?
>>
>>58904913
>because I want to put in other numbers
please use normal looping abstractions
>>
>>58904927
why don't you want a static class? how often are you making that call in your main?
why are you not just using a static function DoSomeShit(int,int,etc) instead of calling a method on the class p?
>>
>>58903548

> consoles used to make their own chips

What? no they didn't
>>
>>58903548
>game consoles are moving away from making their own chips
Name one console that created their own chip that is not a pong console (or something similar).

I actually have one of those (AY-3-8500-1) and I wanted to hook everything up and control the clock and voltage with variable resistors so I can completely destroy it
>>
>>58904979
i'm under the impression that if something is static, it only exists once because it's global? and if i want to call this function from multiple threads, the threads might not be able to because the function may be in use by a different thread? am i wrong? i'm not super experience with multithreading and c++. also, i'll probably want to reuse this code in other projects so i thought it might be easiest if i turn it into a dll?
>>
>>58904707
>not in the correct order
>using namespace std
>doesn't even work
>return main()
>global variable
>windows

So many wews, my lad.
>>
>>58905103
Pong was a discrete transistor machine, wasn't it?
>>
>>58904927
That's only for run time linking where you load the module and the symbols programmatically. Regular static/dynamic linking doesn't require anything special.
>>
>>58905110
no a static function is not like a variable
you can use it with as many threads as you want
>>
>>58904866
Thanks buddy
>>
>>58905140
>>doesn't even work
?
>>
Just wrote a png to ico converter.
>>
>>58905103
The emotion engine and cell
>>
>>58905202
>worker threads start writing to a stringstream
>main thread writes stringstream to stdout
>worker threads finish writing to a stringstream

Oh, and another wew I forgot
>mixing iostream with stdio
>>
>>58905287
gay

#include <cstdlib>
#include <thread>
#include <vector>
#include <iostream>
#include <intrin.h>

void fb(unsigned long long n) {
char tres = n % 3;
char cinco = n % 5;
if (!(tres || cinco)) {
std::cout << n << " fizzbuzz" << std::endl;
} else if (!tres) {
std::cout << n << " fizz" << std::endl;
} else if (!cinco) {
std::cout << n << " buzz" << std::endl;
} else {
std::cout << n << std::endl;
}
}

int main() {
while (true) {
std::vector<std::thread> freds;
unsigned long long max;
std::cout << "no fun allowed, enter number or fuck off with 0" << std::endl;
std::cin >> max;
if (max == 0) {
break;
}
std::cout.sync_with_stdio();
auto cstart = __rdtsc();
for (unsigned long long i = 0; i <= max; i++) {
freds.push_back(std::thread(fb,i));
}
for (auto &fred: freds) {
fred.join();
}
auto cend = __rdtsc();
std::cout << "Took you only " << (cend - cstart) << "/1000000000 seconds" << std::endl;
}

return 0;
}

how do I synchronize threads on cout?
>>
i'm ironically gonna set my font to comic sans
>>
>>58905585
The absolute madman
>>
>>58905564
use a lock
>>
>>58904443
>>58904095
Thanks for the replies, so when in doubt, use logical instead of bitwise.

I have a followup question, can you have an array of variable size? From the previous code, I want to extract elements included in the first, but not second array, but I don't know how many there will be, how do I manage this with just an array?
>>
>>58905564
>four cases
>>
>>58905621
what
>>58905656
makes absolutely no difference computation wise
>>
>>58905670
look up locks nigger
>>
I need some tips on R,

paralyze <- function(column, prefix, new_column){
x <- 1:length(as.matrix(column))
new_names <- data.frame(x)
for(val in x){
new_name <- paste(prefix, val, sep = "")
new_names[val,] <- new_name
}
new_column <- cbind(column, new_names)

return(new_column)
}


how the hell do i make this faster? I feel like im doing a ton of unnecessary operations, which causes the code to be useless for datasets of like 4 million rows
>>
>>58905675
i just use morton commander for linux
>>
>>58905700
GNU/Linux*
>>
>>58905703
GNU plus Linux*
>>
>>58905703
>>58905706
GNU (with Linux added)
>>
>>58905703
>>58905706
GNU*Linux
>>
>>58905675
Been I while since I heard Jon LaJoie.
>>
>>58905715
>>58905718
$((GNU/Linux))
>>
>>58905675
to be quiet honest, I'm so much disappointed when I lurk on github, find a nice program that does a good job, but it's wrapped around a stupid gui and I can't automate what it does, parse it's output and reuse it and all that jazz

stop programming gui
>>
>>58905755
it's open sores, why just you don't ditch the gui out?
>>
>>58905755
I'm more disappointed when I see all these shithub projects without a LICENSE file.

>find really nice lib
>can't use it
t-thanks

Daily reminder that all the stuff you put on the web it automatically copywrited.
>>
>>58905755
>>58905780
https://notabug.org/
>>
File: 1435709693411.gif (540KB, 232x196px) Image search: [Google]
1435709693411.gif
540KB, 232x196px
I'm new to MySQL and databases in general and would like some help to create proper "MySQL Indexes" to improve SELECTing, JOINing speeds etc. I'm using this database schema http://sqlfiddle.com/#!9/c93d9/1

What are some indexes/foreign keys I can create to improve the speed of queries?
For instance the most common query I would like to do would be something like:
>Get all threads from "forum_threads" JOIN with the "forum_posts" table, sort by the forum_posts.PId or forum_posts.PDate, LIMIT that by number of threads-per-page, count the number of posts, JOIN with forum_users to get thread author and last post author, etc.
Unfortunately something like that is taking over 200s of query time which is unnaceptable, currently my production table has over 400k posts, over 2k threads and it's starting to get pretty slow, especially when I use MySQL's
LIKE '%keyword%'
to search for strings in posts/thread titles (and JOIN user table to get username and user stats).
I've heard indexes could help with that but I'm really struggling to understand how they work and how to implement them.

Thanks in advance.
>>
>>58905780
>Daily reminder that all the stuff you put on the web it automatically copywrited.
well that's pretty gay

why don't we change that to everything you put on the web without a license is automatically free?
>>
>>58905809
The problem with notabug is, it woun't grow like github since OSS ppl like google or redhat can't or woun't use it.

It would be cool when github would force people to use a license.
>>
File: 1483888615812.png (902KB, 1024x727px) Image search: [Google]
1483888615812.png
902KB, 1024x727px
>>58905780
>Daily reminder that all the stuff you put on the web it automatically copywrited.
Too bad respect to copyrights has spreaded all around the world.
>>
>>58905843
Basically it's enough when you use wording like "Free for the public domain" but better is a license.
>>
always wonder how anyone would find out if someone used some gay ass lib from shithub in his multi million lines closed source software project
pretty sure that's happening all day every day and no one will ever find out and everyone putting things up on online coding platforms is actively cucked by billion dollar companies
>>
>>58905725
>>58905718
GNU↑↑Linux
>>
>>58905755
name an example and if its interesting ill write a cli version
>>
>>58905874
I really don't want to start a license way, but public domain isn't enough (IMHO) since it doesn't protect to code from companies who take it and make it proprietary. That's why I use GPL. If you don't care about your code and just want that everyone can use it like wtf he wants, use MIT or BSD. Stay away from Artistic or WTFPL and that stuff, since it's all too vague.
>>
>>58905912
based knuth
>>
>>58905918
war* etc
>>
>>58905895
companies rely on risk, so the risk of doing that doesn't outweigh the benefits since they would get sued in spectacular fashion
>>
I'm working on my decentralized TV system. I need to work on a decent user interface, but I really don't want to bother with Qt or GTK+ if I can get the current telnet console working relatively fine. I haven't had to bother with a GUI much because I write video information directly through SDL.
>>
if you would write a cli program, what language would you choose? thinking either c or python

i'm good with python but I think c has more speed (an people prefer it), on the other hand I'd need to learn proper c

holy crap what do, keep python lazy or do some work?
>>
>>58906014
bash
>>
>>58906014
>I'd need to learn proper c
do you not already know c? anon...
>>
>>58906014
Every system of value comes with python.
Learning C is always a good idea.
>why not both
>>
nothing
learning for exam that starts in 12 hours
>>
>>58906014
>>58906031
>>
>>58906014
malbolge
>>
File: microjew.jpg (57KB, 500x334px) Image search: [Google]
microjew.jpg
57KB, 500x334px
>>58905954
>this goy
>>
New thread:
>>58906092
>>58906092
>>58906092
>>
New thread:

>>58906091
>>58906091
>>58906091
>>
>>58906094
>>58906102
fuck
>>
File: 1481219908007.png (991KB, 661x812px) Image search: [Google]
1481219908007.png
991KB, 661x812px
>>58906094
>>58906102
>>
>>58906120
fug XDDDDDDD
Thread posts: 317
Thread images: 25


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

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.