[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: 310
Thread images: 28

File: m.png (1KB, 279x192px) Image search: [Google]
m.png
1KB, 279x192px
What are you working on, /g/?
Previous thread:
>>60975777
>>
File: netrunner moon.png (240KB, 2000x2000px) Image search: [Google]
netrunner moon.png
240KB, 2000x2000px
>>60982367
We are making a web browser! >>60974102
>>
>>60982377
Sweet, I'll make the logo.
>>
>>60982377
>web browser
>own rendering engine
>CLI only
>C
>>
>>60982416
Already done :^)
>>
>>60982377
How are you planning to shitpost on 4chinks with CLI only?
>inb4 passes
>>
>>60982424
>>60982472
>CLI only
No, read again
>>
>>60982461
I'll get started on redoing the logo.
>>
>>60982501
I'll give you 2 weeks tops.
>>60982508
kek
>>
>>60982543
>2 weeks tops
No
>>
>>60982593
You mean, there is a reason to believe this will end completely different than every other /g/ project?
>>
>>60982640
I think he's implying that the project will be dead long before the thread even hits the bump limit, which is the usual lifespan of a combined /g/ project.
>>
>>60982661
a fair point
>>
>>60982661
Nope
>>
>>60982367
some roguelike/text adventure mixture
>>
>>60982367
A forced assignments to making leaflet web maps.
>>
File: 1486690644495.png (113KB, 255x256px) Image search: [Google]
1486690644495.png
113KB, 255x256px
I spend exactly zero time thinking about “objects” or what goes where. The fallacy of “object-oriented programming” is exactly that: that code is at all “object-oriented”. It isn’t. Code is procedurally oriented, and the “objects” are simply constructs that arise that allow procedures to be reused. So if you just let that happen instead of trying to force everything to work backwards, programming becomes immensely more pleasant.
>>
>>60983009
I write spaghetti code - The post.
>>
>>60983022
I'm an object oriented UML cuck - The post.
>>
>>60983027
Nobody uses UML anymore, this isn't 2002.

>inb4 b-b-b-but I learned UML in my object-oriented programming class last semester
>>
>>60983034
Regardless of how you do it, if you plan your structure before writing code you're doing it wrong.
>>
>>60983042
The biggest software project I have ever worked on was FizzBuzz - The post.
>>
>>60983060
I designed all my objects for FizzBuzz and never implemented any actual logic - the post.
>>
>>60983068
When you grow up and actually work on real-life projects with, you know, other people, you realise that when you implement different parts, you need to sit down in advance and specify how your separate parts are going to interact with each other.

You know it's American shitposters online when /dpt/ claims that API design is a waste of time.
>>
>>60983106
All I'm saying is to design the API after you write the code.
>>
>>60982367
thanks for being against degeneracy
>>
>>60983122
>Spend 15 years implementing your project to the end and THEN specify the API

No. The API, just like your code, should be considered an ever-evolving organism. You cannot block other programmers and force them to wait for you, because you have some snowflake sense of ownership to the code you write and have to rewrite it from scratch fifteen different times because you couldn't be bothered to sit down for 30 minutes with the rest of the development team and specify how the API should look like.

It's becoming increasingly clear that you're either trolling or you've never worked on a sufficiently large enough project with other people.
>>
>>60982377
do you guys have anything runnable yet?
>>
>>60983022
Spaghetti code is caused by the ABSENCE of procedures, not by their presence.

>>60983106
Then you agree upon an interface, write code to implement it on one side, and code to invoke it on the other. No need to have all that ENTERPRISE QUALITY OOP bloat - which actually ends up killing any hope of proper encapsulation.
>>
>>60983175
>modularity and decoupling are good...
>...except when it's called "objects" because semantics tickle my autism

American time /g/, everyone.
>>
>>60983106
API design is different from designing structures for code reuse.
>>
>>60983199
OOP is bad precisely because it fails to achieve modularity. It ends up creating fragile interfaces and excessive amounts of mutable shared state.
>>
>>60983218
1) "structures for code reuse" is essentially what a function is

2) objects have interfaces, interfaces are APIs
>>
>>60983224
>mutable shared state
You're obviously designing your objects wrong.

>hurr durr OOP is shit because I'm bad at it
>>
Trying to automate my reaction images using a python script I made.

I use shutil to open the image (so I can see which image it is and then place it in the appropriate folder), but can I close the image after it opens?

Also, might take a look at the web browser project. Sounds fun!
>>
>>60983228
>"structures for code reuse" is essentially what a function is
Same goes for functions. You don't create a function until it can be called in more than one place.

>objects have interfaces, interfaces are APIs
And when you don't need this API up front, you should just write the code and "compress" into objects (or whatever is appropriate) when you notice duplication.
>>
>>60983260
>You don't create a function until it can be called in more than one place.
Not necessarily true. Breaking a function up into smaller functions can make it easier to test.
>>
>>60983260
>Same goes for functions. You don't create a function until it can be called in more than one place.
I agree. But we're talking API design, not code structure.

>And when you don't need this API up front, you should just write the code and "compress" into objects (or whatever is appropriate) when you notice duplication.
I agree, but again, I was talking about API/interface design, and not the inner logic of your component or part or whatever you want to call it.
>>
>>60983271
Because if you want to test a piece of code, that's another call to it.

>>60983277
You were the first one to bring up APIs in the information hiding sense.
>>
reminder that ELF is pretty much assembly-level OOP
>>
>>60983292
>You were the first one to bring up APIs in the information hiding sense.
Objects have interfaces/APIs, yes. In addition, what objects are passed around should also be specified by the API.
>>
Reminder that types are a lot quicker to write than tests
>>
>>60983306
The whole point is that unless you need a specific API for a real reason you write the code first and whatever interface (I hesitate to call it an API when it's really just a type) comes out of that is a product of compressing the code.
>>
reminder than proofs are for poofs
>>
File: languages3.png (17KB, 522x384px) Image search: [Google]
languages3.png
17KB, 522x384px
Reminder that this image is still true
>>
>>60983322
Reminder that strong typing is not a substitute for tests.

>>60983324
When you work with other people on different parts of a project that needs to interact, you ALWAYS need that specific API for those parts to be able to interact. Sitting down separately and then at a later point trying to sew those together is the worst possible approach to software engineering possible.

And many times, it can even be useful to break your own part into smaller subparts, and plan those before hacking away. There's a reason why contract-based programming and test-driven programming are popular approaches.

Writing a bunch of code, and then later adding some tests ad hoc and stitching it together with the rest of the project just leads to awful spaghetti code.
>>
>>60983349
>Haskell
>fast development
How can a language where you literally have to define arithmetic operations before you use them be """"fast development"""" ?

Or Scheme, where you spend hours upon hours hunting down mismatched parentheses? It's pretty clear from the image that somebody (poorly) swapped "Fast development" and "Neither", since those two labels are misaligned.
>>
>>60983375
>write a function of type
forall a b c. (b -> c) -> (a -> b) -> a -> c

>programlet tells me I need to write tests for it
>>
>>60983416
>say that strong typing is not a substitute for testing
>some retard presents a strawman argument of what I just said
>>
>>60983406
>he struggles not to mismatch parentheses and takes hours to fix them
You'll understand if I ignore whatever drivel you post.
>>
>>60983431
>he doesn't understand the rhetorical purpose of a hyperbole
Found the autist.
>>
>>60983447
>backpedaling furiously after realizing that he exposed his incompetence for all to see
>>
>>60983431
>he uses Scheme for anything but emacs configuration scripts
>>
>>60983454
>with tries to play off his apparent autism with damage control in the form of wild accusations
>>
>>60983456
>Scheme
>emacs config
um m8
>>
>>60983466
I'm not the one who thinks mismatched parens is an actual problem when writing Scheme that affects anyone with even a minimal amount of skill.
>>
lisp is for dorks desu
>>
>>60983499
lisp is for productive programmers tbqh

ruby is for morons and weebs
>>
>>60982377
>not servo based
>>
>>60983416
>not being this anal about testing
>not being so anal about testing everything that whenever you cd to a new directory you ls in it even though you know it's empty because you just made it
you're literally not even a programmer
>>
>>60983488
>he still doesn't understand what a hyperbole is
Hint: I don't think mismatched parentheses are an actual problem either, I'm was just jokingly referring to characteristic Scheme code.

However, I'm neither so delusional that I think Scheme has any considerable real-life application. Just like Haskell, it remains in the domain of practical attempts at theoretical programming concepts.
>>
Is this a good book for learning C++?

https://www.amazon.com/dp/0321334876
>>
>>60983349
python has faster development than everything there

import 20 things
done
also it'd be faster than most shit
>>
>>60983447
0 time spent fixing parens * 1000 = 0
>>
>>60983518
>lisp is for productive programmers tbqh
Lisp is the least productive language iv seen posted here on a regular basis and thats saying something.
literally just see it posted to try to one up "in LANG this is just" posts
>>
>>60983533
It depends. I learned C++ from reading it, but I had a lot of knowledge about C in advance.
>>
>>60983535
delusion: the post
>>
>>60983550
hey you're just mad that fast development & neither were switched in the pic, faggot
>>
>>60983550
>importing the addition operator (+) from the standard library makes me an efficient and fast programmer
>>
File: fin.png (5KB, 139x157px) Image search: [Google]
fin.png
5KB, 139x157px
Here's some voronoi thonking.
>>
>>60983557
Python is literally worse than Lisp.
>>
>>60983576
>I don't know any Python therefore teaching myself Python and then writing a Python program takes longer time than writing it in that single Lisp dialect I already know

Gr8 argument m8
>>
>>60983576
pls no mad comrade
go is fast too
none in the fast dev category are fast development ;<
>>
>>60983587
>seriously doesn't think lisp is stratospherically better than python
>>
File: racist-moon.jpg (14KB, 480x360px) Image search: [Google]
racist-moon.jpg
14KB, 480x360px
>>60982377
This thread is what happens when you make the racist moon your software project's mascot
>>
>>60983416

Write a function that parses some complex binary configuration file and then tell me your type system somehow eludes your need to write tests for it. Not everything can be reduced to a generic function with only one reasonable implementation outside being creative with what an a -> a function can be.
>>
File: go_is_trash.png (9KB, 230x173px) Image search: [Google]
go_is_trash.png
9KB, 230x173px
Go fans, defend this.
>>
>>60983596
I seriously and unironically believe that Python has more practical use cases than Scheme, yes.

Common Lisp is the only Lisp implementation I know that even has standard library that isn't completely shit.
>>
>>60983600
What does the mascot have to do with racism?
>>
>>60983623
>I seriously and unironically believe that Python has more practical use cases than Scheme
Guido pls go
>>
>>60983628
It's an alt-right meme.

http://www.salon.com/2016/10/25/meet-moon-man-the-alt-rights-new-racist-rap-sensation-borrowed-from-1980s-mcdonalds-ads/

It shouldn't shock anyone that the only time /g/ actually managed to agree on a logo, it was because it was a racist meme.
>>
>>60983614
>Go fans
They literally dont exist.
People who use Go know its trash,
>>
>>60983697
Oh but they do, anon.
>>
>>60983808
Not here they dont.
And if they champion, it wont be for long
>>
>>60983349
PyPy has good performance
>>
Is functional programming a British conspiracy to make programmers useless?
>>
finished debugging it
>>60982037
>>
>>60983969
no but /dpt/ is
>>
The time has come.
>>
>>60983349
kek
>>
this is gonna sound retarded but how are you meant to write C programs without the standard library? for example let's say i'm thinking of targeting the sega megadrive
>>
>>60984174
make everything yourself and use a lot of asm
>>
>>60984194
I dont understand why you cant just include the standard library source code
>>
>>60984228
well obviously that depends on a lot of things

like what architecture and what operating system you're running

in the case of the megadrive there's obviously no operating system
>>
>>60984174
First you actually need to find a toolchain targeting the environment in question. Even though there aren't that many types of processors out there, merely having a toolchain that matches the processor type isn't enough, I think usually you'll need a properly targeted linker to lay out the binary in a usable form. And any such toolchain, if it does indeed exist, is likely to have a partial C standard libraries - parts of it are mandated by the C Standard to be included even in "freestanding" (embedded / no OS), though certain large parts of the library may be left out if features like text I/O and a file system are simply absent from the device.
>>
>>60984247
well at least i know binutils and GCC can target the 68000 so that's a good start

unfortunately i'll have to get stuck in automake hell
>>
>>60984174
Make your own implementation of the standard library with the hardware you have access to.
http://wiki.osdev.org/Main_Page
This site might have some helpful pages.
>>
>>60984261
You'll probably want to figure out how the address space of the Megadrive is laid out, your CPU type tells you how big the address space is, but how things are mapped into the address space varies from device to device. But basically, with no preexisting software, you'll have to do all interaction with hardware through pointer read and writes, or perhaps inline assembly. For video game consoles especially you're going to have to pay attention to the RAM and ROM and how they're mapped into the address space. Also on small and old devices there's likely no memory protection, so most pointer errors won't segfault immediately, you'll only find out later when you realize your data is corrupted, so that's another thing to watch out for. Also I'd say look into seeing what if any firmware the Mega Drive comes with, if it has some that will probably help get you started. On PC hardware for example, the BIOS provides a function that's basically equivalent to putchar(), so you don't have to define a font, recognize key codes, and access video memory just to do text I/O.
>>
>>60983034
Fuck UML. Fuck IBM Rational Software Architect which is a rehashed copy of eclipse that costs $5,000. Fuck that bullshit.
>>
>>60984358
Eclipse has UML?
>>
>>60982377
>11. Implement tabs and add tree style tabs in ncurses.
>12. Work in the tree style bookmark management with ncurses.

If you implement tree style tabs as good as the firefox ones I will switch over instantly since that is the only reason I'm still using firefox
>>
File: animated thonk.gif (579KB, 139x157px) Image search: [Google]
animated thonk.gif
579KB, 139x157px
Animated voronoi thonking
>>
>>60983969
Functional programming can be comfy. If your project needs quick patching to save your dignity you can resort to functional programming and patch your shit before becoming a laughing stock
>>
>>60983164
Nope
>>
equivalent programs in Java and Haskell

main :: IO ()
main = do
val <- (read . head) <$> getArgs
print (makeChange val)


coins :: [Coin]
coins = [ Coin "Dollar" 100
, Coin "Quarter" 25
, Coin "Dime" 10
, Coin "Nickel" 5
, Coin "Penny" 1
]


makeChange :: Int -> [(Int, Coin)]
makeChange val
= filter ((0 /=) . fst)
$ evalState (mapM choose coins) val

choose :: (MonadState Int m) => Coin -> m (Int, Coin)
choose c = flip (,) c <$> state (flip quotRem (value c))


public final class Main {

public static void main(String[] args) {

int val = Integer.parseInt(args[0]);

System.out.println(
Arrays.toString(makeChange(val).entrySet().toArray())
);

}

public static List<Coin> coins = Arrays.asList(
new Coin("Dollar", 100),
new Coin("Quarter", 25),
new Coin("Dime", 10),
new Coin("Nickel", 5),
new Coin("Penny", 1)
);

public static Map<Coin, Integer> makeChange(int val) {
final Map<Coin, Integer> result = new HashMap<>();

for (Coin c : coins) {
final int numC = val / c.value;
val = val % c.value;
result.put(c, numC);
}

return result;
}

}

final class Coin {

public final String name;
public final int value;

public Coin(final String name, final int value) {
this.name = name;
this.value = value;
}

public String toString() {
return this.name;
}

}
>>
>>60984536
shit forgot the Coin definition in Haskell
data Coin
= Coin { name :: String
, value :: Int
} deriving (Eq)

instance Show Coin
where show = name
>>
>>60982735
it's a dumb idea as it stands.
>>
>Exercise 4-13. Write a recursive version of the function reverse(s) , which reverses the
string s in place.

Is this possible without using loops, static variables, helper functions, and without altering the parameters of reverse(s)?
>>
>>60984613
What language?
>>
>>60984613
You could write this tail recursively, but it would just be a really fucked up loop.
>>
>>60984536
import std.stdio, std.conv;

void main()
{
double dollar;
readf(" %s", &dollar);

immutable string[4] coins = ["Quarter(s)", "Dime(s)", "Nickel(s)", "Penny(/ies)"];
immutable double[4] coins_in_dollars = [0.25, 0.1, 0.05, 0.01];

int[string] dollar_in_coins;
foreach (index, coin; coins)
{
dollar_in_coins[coin] = (dollar/coins_in_dollars[index]).to!int;
dollar -= (coins_in_dollars[index])*dollar_in_coins[coin];
}
writeln(dollar_in_coins);
}
>>
>>60984647
Disgusting.
Stop posting your meme trash here.
>>
>>60984653
Meant for >>60984561 and >>60984536
>>
>>60984629
k&r c 2nd edition
>>
>>60984647
thanks but I wanted line by line equivalence
this is close and pretty cool but there's no coin data type for example
>>
>>60984653
>meme
>>>/v/
>>
>>60983406
nigga what
Haskell has math shit built in
>>60983601
there was that haskell-ish DSL for binary data shit. can't remember the name now but it's somewhere in the discord
>>60983472
guile-emacs
>>
>>60984664
I'll give you a prototype. You hopefully can worth it out from there.
void reverse(char *str, int start, int end);
>>
>>60984666
Well that'd be pretty similar, but you really don't need a coin data type for this particular problem
>>
File: x21jivrsx4ey.png (183KB, 500x700px) Image search: [Google]
x21jivrsx4ey.png
183KB, 500x700px
>>60982367
I am learning C# and I think I know everything I need to start making stuff (classes, objects, methods, paramters,etc) but I don't know HOW to apply my understanding of the language.

Can anyone direct me where to learn good program creating? I have VS but I don't know how to, say, create or load files (datastreams?) or how to design an interface. If you asked me to write a nested for loop that sorts through each array element or anything with classes or methods I can freehand that. I'm a carpenter so work isn't gonna teach me this stuff.

Please help me /g/ I've been doing the long grind and I wanna make money eventually
>>
>>60984966
carpentry is based my man working with your hands all day that sounds fun
programing for a living is a nightmare so much complexity working with people who dont know what they are doing

anyways my advice is to think of a project that you'd be interested in and distill it to the simplest possible program. then slowly improve on that.
>>
>>60984945
>but I don't know HOW to apply my understanding of the language.
Did your book not have exercises?
But im sure theres sites to generate project ideas, otherwise just google for the many /g/ project roll charts
>>
what's wrong with go?
>>
whats the point of @staticmethod ? why not just create a function floating around freely?
>>
>>60983623
i can implement python in scheme with a trivial syntax transformation, python cannot say the same, it doesn't support proper tail calls
>>
guys I wrote this terrible shit, tell me how terrible it is.
world->sell(static_cast<Coin*>(event.user.data1), static_cast<std::pair<std::string, unsigned int>*>(event.user.data2)->first, static_cast<std::pair<std::string, unsigned int>*>(event.user.data2)->second);
>>
>>60985457
wow I can't even copy and paste right
>>
>>60985077
Slower than Java
No Map and fold
No Generics
>>
How can I get the nth character of a UTF-8 encoded string in C? No library methods please.
>>
>>60985167
Third party here. Are you seriously trying to convince this guy that the enormity of the Python specification is easier to implement in Scheme than implementing the trivial set of TCO scenarios set forth in the R6RS in Python? It fits in one page.

http://www.r6rs.org/final/html/r6rs/r6rs-Z-H-14.html#node_sec_11.20
>>
>>60985457

More lines, but more readable:
using std::pair;
using std::string;

auto *c = static_cast<Coin*>(event.user.data1);
auto *p = static_cast<pair<string, unsigned int>*>(event.user.data2);
auto s = p->first;
auto i = p->second;

world->sell(c,s,i);
>>
>>60985626
>utf8
Only linear search, bruh. Variable width encodings are fucking retarded.
>>
Virtual rubix cube that does encryption.

a virutal rubix cube is created of size n^3 which is always larger than the number of bytes to be encrypted. Instead of colored spots, the cube instead holds a single byte at each position. Using rubix transformations (x y and z axis twists) and logical bit shifting the plaintext is encrypted
>>
>>60985715
What's stopping you from creating a utf8 wrapper that also has a pre-computed array that outlines the starting pointer of every UTF-8 character in the string, along with it's size so you can delete them in O(1).
>>
File: rubix2.png (18KB, 972x466px) Image search: [Google]
rubix2.png
18KB, 972x466px
>>60985770
pics
>>
>>60985787
What do you use as the key/how do you use it? Not that this is secure or anything, I just think it's cool.
>>
>>60985770
so your private key is a series of rubik's cube moves?
>>
>>60985715
Can you post co- just kidding. I agree that variable width encodings suck to deal with but they save a shitton of electricity for everybody
>>
>>60985804
ya, always trust mainstream encryption, the people who created it are alot smarter than me.

The key is provided by reading a key file. it will sha1 it automatically if keyfile is plaintext and not an actual key.

it reads the key as a stream of bytes. to generate a sufficient amount of rubix transformations (x y z axis) I acutally read the first byte of the key, logical shift the bits 1 spot, and then read the first byte of the key and repeat (this way I extend the key out to 8x its original size by shifting bits as I read it)
>>
File: 1491690133357.jpg (81KB, 300x250px) Image search: [Google]
1491690133357.jpg
81KB, 300x250px
I'M FUCKING AWFUL AT LEETCODE PROBLEMS
>>
>>60985810
yes.

Also the cube itself scales in size. It will automatically be created of a sufficient size to have one spot for every byte that is in the file to be encrypted
>>
>>60985810
although to clarify my private key is a normal key, the program simply interprets it as a stream of bytes and translates it into rubik's moves
>>
>>60983824
>And if they champion, it wont be for long
This is such a fucking arrogant claim. You think you have the most willpower out of anyone here, buddy? You think your dispassionate logic can win everyone over all the time? I don't like Go, but if I did, I'd rub it in your face, and if you said anything bad about it to correct me, I'd just be like "anus." What's stopping anyone from doing exactly that? In the end, it's not reason that wins, it's whoever holds on the longest.
>>
>>60984475
Nice job
>>
>>60985715

>Variable width encodings are fucking retarded
Time/space tradeoff, really. Unfortunately, the only really usable fixed width encoding is UTF-32.
>>
File: stop using python.jpg (135KB, 762x464px) Image search: [Google]
stop using python.jpg
135KB, 762x464px
real languages have semicolons
>>
>>60985697
>auto instead of static_cast
does the compiler care?
>>
>>60985697
>using
>>>/dev/null
>>
>>60986183
I guess C++ people really like their STDs.
>>
>>60986052
Python has semicolons.
>>
>>60986193
I mean, I guess it's fine so long as it's at function scope or similar, but global scope is just bad practice.
>>
>>60986222
Source file scope is fine.

Putting it in a header file though, is a crime.
>>
haskell!
>>
Recommend me some hipster methods of coding. I haven't programmed in 5 years since high school at the height of my passion.

I've come to realize that if I want to be marketable I need to get over the 1337 c++ haxor coding ego.

I want to create flat/materialistic applications that work well with databases. I'd like to create a website with a similar look and feel as well as connect to the same database.

I think ive settled on learning mongoDB for this. I've never databased before but I'll learn easy enough.

But what should I use to code the desktop application? What should I use for the website? Do I NEED to learn JavaScript? HTML and CSS I believe are mandatory, right? I'll go to web dev for those questions but id like the answer on what works best across both platforms.
>>
I just finished a college course on object orientated design and I'm wondering how useful this kind of thinking can be for both personal projects and professional/community projects?
For example, if I were to throw together a text editor, would it really be beneficial for me to throw together a design in UML, try to minimise dependencies, create useful interfaces, etc or is this just pointless theoretical work in the real world?
If it is useful how do I learn to do this well? I've seen design patterns but apparently those are only useful for bad languages.
>>
>>60987034
HTML is advanced plaintext, CSS is the design you put on top, and JS is for making your HTML change and morph.
>>
>>60985779
Nothing really. Might not even take that much memory if you do run length encoding. Most strings are probably not gonna vary in character size that much.

seems very obvious now that you mention it. Wonder if utf libraries do that.
>>
>>60987198
I thought HTML5 played a role in advanced web dev tho
>>
>>60987103
>how useful is OOP/UML etc
They're not useful in any way really but they're certainly used. So just for getting a job it's not a waste. I think OOP is going to die out soon. But it's well established (partly because universities love to teach) so it's not a quick death. It's probably among the least theoretically based things universities teach you because AFAIK theres no solid evidence for OOP delivering their stated goals. I think it's just that professors tend to favor planning, when realistically it ignores the real world quite a bit. If your plan had an oversight do you start over or cram it into the design? What if later down the road your design just doesn't fit the problem anymore? Those are probably things you were never taught how to deal with. I'd love to hear the OOP perspective on that but I never have.

But some of the things you mention like reducing system coupling is good. Api design.
Watch this https://youtu.be/ZQ5_u8Lgvyk
It's a very good talk on api design and understanding what users of an API need. It's from the perspective of game middlewares that generally have a rather varying set of requirements (fast prototype ->flexibility->performance/robust). It's an extreme case. But worth looking at.

My biggest complaint about OOP is how it makes code very solid, can't mold it at all. There's so much framework to every piece of code (which is why you do the planning to begin with) that making changes to the code may require a lot of reconsidering of the system. If you ever work on maintaining code that uses oop principles you will realize this.

Also design patterns aren't bad. They're just generalized solutions though. It's a deceptive name because it's implying that these patterns would realistically appear for you. You may think they do when you've learnt about them because you see that you could use them but really they're largely not tailored well enough to your problem. But it's a wide range of ideas. They're not all bad.
>>
File: Spectacle.nS1302.png (30KB, 838x522px) Image search: [Google]
Spectacle.nS1302.png
30KB, 838x522px
import std.stdio, std.conv, std.algorithm, std.range, std.string;

void main()
{
string number_s = readln.strip.splitter.front;
auto number_n = number_s.to!int;

number_s
.array
.permutations
.map!(to!int)
.filter!(n => n > number_n)
.array
.dup
.sort!("a<b")
.front
.writeln;
}


I feel like a brainlet

user0@primary:~/devel/proj/D/pilot$ echo 1234 | dub run -q
1243
user0@primary:~/devel/proj/D/pilot$ echo 1234 | dub run -q
1243
user0@primary:~/devel/proj/D/pilot$ echo 234765 | dub run -q
235467
user0@primary:~/devel/proj/D/pilot$ echo 19000 | dub run -q
90001
>>
>>60982367
>op pic
>no animuh
I'm gonna wait for the next thread.
>>
File: 1497214889403.jpg (47KB, 475x530px) Image search: [Google]
1497214889403.jpg
47KB, 475x530px
>>60987654
Absolutely disgusting. Don't bring that trash in here.
>>
>>60987654
is this D?
>>
>>60987681
Why yes
>>
>>60987654
> .sort!("a<b")
What is this, JavaScript? Why filter! takes a lambda and sort! takes a string?
>>
>>60987707
>What is this, JavaScript?
No
>Why filter! takes a lambda and sort! takes a string?
Both take "iterable" ranges
>>
>>60987721
> Both take "iterable" ranges
Don't play dumb with me, you know what I asked.
>>
>>60987745
And I gave an answer?
>>
File: 3m67u.png (232KB, 695x683px) Image search: [Google]
3m67u.png
232KB, 695x683px
>>60987745
relax anon this guy already admitted brainlet status
>>
>>60987752
I'm asking about the second argument tho.
>>
>>60987769
Second argument of sort?
>>
Thak you so much for your help so far.
I have managed to finish it.

https://pastebin.com/08jHftnW

It EXACTLY behaves like these classes we got as assistance to our assignments.
Now i just wonder.
If I want to round up a float to an int, is Math.round() enough?
Referring to the intensity method inside the bin.
>>
>>60987818
>this is a private paste
good one numbnuts
>>
>>60987818
your pastebin is private, you ding dong
>>
File: 1491287171858.jpg (56KB, 645x773px) Image search: [Google]
1491287171858.jpg
56KB, 645x773px
>>60987814
Yes.
>>
>>60987846
https://dlang.org/phobos/std_functional.html
https://dlang.org/library/std/functional/binary_fun.html

Can't believe there are people dumber than me
>>
>>60987846
any non-autistic human would see only one argument on the sort call
if you had terminal autism you might consider the output of dup the first arg but only severe crippling terminal autism sufferers
>>
>>60987880
Well it looks like it has 4: https://dlang.org/phobos/std_algorithm_sorting.html#sort .
>>60987872
>using string as lambdas
This is a perl-tier idea, why would they do that?
>>
/g/ I can't into threading will you help?

I have a WSGI program that can run multi-threaded/multiprocess. However, it uses a module that stores notification queue that needs to be shared between each thread/process.

Is there some way I can tell uwsgi "Spawn X threads/Y processes of <thing> but uses a single one of <other thing> that all things refer to?
>>
whats the cut off IQ to become a programmer?
>>
>>60987833
>>60987845
It is public now.
I still have to get used to pastebin.
Some People from my college stole some of my hardworked code this way
>>
>>60987898
thest docs are awfull god damn, i forgive you for being confused
>>
>>60987898
>using string as lambdas
No, I am using string as ranges. Are you trying to make me angry? :(

numbers.sort!("a>b") takes the range "numbers" as the first arg. sort! is a template. To understand what "a>b" implies look into binary_fun
>>
>>60987914
https://pastebin.com/08jHftnW
>>
>>60987911
65. 75 is the max.
>>
How am I supposed to organize my header files for maximum good practice? Right now I just have a .h file for every .cpp file in the same directory. Should I shove them all into some include directory?

I wanna setup clang_complete for vim.
>>
>>60987941
>header files
eww
>>
>>60983159
This

>>60983122
I'd argue the converse, in addition to the above. The API is arguable the only part you really need to design beforehand, so that you can go forward and design, build, and test your components atomically, otherwise you can go and make yourself need to implement a million changes across your codebase, as opposed to within one component, just to handle a tiny change. Plus it enables you to really accelerate your turnaround between writing code and putting it into production, and adds so much resiliency and potential for solid redundancy when you tie it into a decoupled and immutable infrastructure.

You do develop toward a decoupled and immutable model, right anon?
>>
>>60987917
I understand what it is, it's just a really dumb idea you would expect from perl or ruby.
Also, am I missing something or you can't parametrize sort with a comparison function at the run time?
>>
>>60987953
nigga I need header files because muh class declarations.
>>
>>60987953
>cpp files
eww
dont know why people bother, just write your entire class in the header :^) i have been doing it for years, its great
>>
>>60983159
Don't agree with this approach to having dynamic interface as such, however. Designing a rich API which is then streamlined with further segregated interfaces downstream is a much more sustainable model, and a lot cleaner. Something about Postel's law is probably applicable there too.
>>
I wrote something in c++ and since I never used exceptions I decided to give it some practice and wrote three of them that could be thrown. So then I notice that the catch blocks are always the same
...
catch (exception1 e){
errormsg(e.what());
return;
} catch (exception2 e){
errormsg(e.what());
return;
} catch (exception3 e){
errormsg(e.what());
return;
}
...

and decide to rewrite as
catch (std::exception e) {
errormsg(e.what());
}

since they all inherit the standard exception so it makes the code more compact.
But, it isn't until I make the argument of the catch a reference that polymorphism kicks in, ie. before that it would only print "std::exception", and after adding that one & then each type of exception would be correctly shown. Is it because passing by value constructs a std::exception?

Also, is this type of catching recommended?
>>
Hi guys ;)
trying to cross compile something on a machine running openwrt. Problem is my perl version is too recent when I install the crosscompiler and i get errors from a syntax that is deprecated in a tmp file. I solved this by installing perl from source locally, moving my actual perl bin and symlinking my local perl version. However it seems very ugly. What is the proper way to do this ? My guess goes to "export PATH=~/localperl/perl:$PATH". Any feedback ? :)
>>
>>60987969
use monads instead
>>
>>60987969
the only reasong you'd bother writing multiple exception classes is if you needed to handle them differently depending on the type
if all you ever do is print an error message just stick to the std lib version
>>
>>60987959
>parametrize sort
IDK what you mean
.sort will sort values in an ascending order, it's a default
.sort!("x>y") means descending
number[i..slice_i].sort!("x>y") is descending
>>
>>60983224
Fragile interfaces are a result of either poor design or lack of segregation.
>>
>>60983271
And increase your testing overhead greatly, along with further maintenance. Breaking things down is good, but you can go too far to the point where it's hard to read and maintain.

>>60983260
Untrue. Anonymous functions are a thing.
>>
>>60987984
What if I want to sort in different orders/by different fields based on user's input at the run time? I'd like to have a variable what holds a closure with the sorting method selected and use it with sort.
>>
>>60988003
Use fold!
>>
>>60988013
What? I want to sort, not to fold.
>>
>>60987993
single responsibility principle basically
if your function is doing more than one logical task it should be split
>>
is it bad to cite books that you used in your projects in your CV? should i just give the name of the author or should i go full harvard?
>>
>>60987983
Is this a better solution if all my exceptions need to do is show a different message:

class GeneralThingException : public std::exception{
public:
GeneralThingException(const char* s) : _s(s){}
virtual const char * what() const throw(){
return _s.c_str();
}

private:
std::string _s;
};


And later throw it with different strings in the constructor like "throw GeneralThingException("Bla bla");"
>>
>>60982367
Why are there no black programmers? Is there a racial barrier on how skilled one can become?
>>
>>60988051
you dont cite in your cv it's not a fukin assignment m8
>>
>>60987654
nice. are u wizard?
>>
>>60988031
Ah, I was assuming you were talking at a more granular level. Can't argue with you there, given I keep ranting on about interface segregation, would be a little hypocritical haha.
>>
>>60988056
but std::exception takes a message in the constructor right? why not just use that
>>
>>60988090
oh, no keep ranting pls, im just some random who chimed into the convo, im pretty sure the dude you are exchanging bants with is a brainlet
>>
>>60988079
I'm a beginner actually
>>
>>60982367
thanks for using anime picture
>>
>>60988066
i just wanna explain a thing ive done, and i figured the simplest way to write it would be to just say i did a thing in Author(year of publication)
>>
>>60988003 (You)
And a follow-up, how would things like https://godbolt.org/g/zfhjtE look in D? See, here the compiler inlines the lambda despite it capturing a value from the outer context, and it doesn't even require two-stage parameter passing and stuff.
>>
>>60988103
Ahhh, I'm not even sure who I'm ranting at to be fair. I think there's one dude I agree with, but I'm not quite sure anymore.
>>
Hey /g/uys, I just switched from linux to macOS sierra on a hackintosh laptop. I got everything working except the webcam and the generic USB webcam driver I found doesn't support my webcam. Is it possible that I write my own? I have quite the low-level C knowledge, but I have no idea of how macOS works under the hood except that its BSD based. Is it possible for me to take the BSD or linux generic webcam driver (or the one for my webcam specifically) and port it without much pain to macOS? If so, where can I found the drivers from BDS and linux and can I write in C or will I have to use Objective-C?
>>
File: 1396251173428.jpg (306KB, 750x750px) Image search: [Google]
1396251173428.jpg
306KB, 750x750px
>>60988164
but y
>>
>>60988177
I wanna skype with my gf :3
>>
>>60988095
It looks like it doesn't.
http://www.cplusplus.com/reference/exception/exception/exception/
>>
is a 17'' laptop portable? Im looking into a new one and I need one that can do some heavy lifting, so it needs a decent gpu.
Im not sure what to do. how did you solve the problem of portability vs performance?
>>
>>60988184
>switched to macOS
>has a gf
So you're a girl(female) yourself?
>>
>>60988209
I mean you can carry it just fine if you got a backpack or briefcase big enough, but it's way bigger and heavier than many other alternatives. There are plenty of 15 inch or smaller ones with great GPU like 1070 etc. Though they will still be heavy
>>
>>60988219
Well meme'd
Now go back
>>
File: 1453302491365.png (129KB, 314x278px) Image search: [Google]
1453302491365.png
129KB, 314x278px
>>60988209
>>60988227
Why the hell did you post this in the programming thread?
>>
>>60988219
I wish :c
All jokes aside I really need to get this going so all help is appreciated.
>>
>>60988238
aren't here the smartest people?`
>>
>>60988246
Take it to >>>/g/sqt or some shit.
What you posted is just plain off-topic.
>>
>>60986052
; lisp master race
(write-line "thanks varg!")
>>
>>60988164
macOS drivers are written in some weird C++ for some reason, IIRC.
>>
File: 1493022896377.jpg (49KB, 579x433px) Image search: [Google]
1493022896377.jpg
49KB, 579x433px
>>60988260
"no"
>>
>>60988278
literally bannable :^)
>>
>>60987654
>next largest integer of 1234 is 1243
>not 4321
>>
File: 1476457397818.jpg (17KB, 233x217px) Image search: [Google]
1476457397818.jpg
17KB, 233x217px
>>60988290
at least I can code while you are just a little crybaby
>>
>>60988185
how about skip the exception class
    try
{
throw "my dank exception";
}
catch(const char* e)
{
std::cerr << e << std::endl;
}
>>
>>60988305
fite me with code then, post your hime change solution
>>
>>60983224
moron
>>
File: 1477825178477.png (785KB, 524x753px) Image search: [Google]
1477825178477.png
785KB, 524x753px
>>60988321
sure after your posted your implementation of the gilbert johnson keerthi algorithm in assembly
>>
>>60988246

Honestly, /dpt/ is mostly full of beginner programmers and trolls.

>>60988278
>>60988305

>Smugglypuff
I find it funny how she got arrested for assault, and not for lying to the police to cover up someone else's crimes.
>>
>>60983135
>>60988125
Everytime, anons. Please help keeping it that way should this thread expire to make sure >>60987668 gets used to the idea.
>>
>>60988352
fucking easy, 4chink thinks it's spam so cant post it, attached a few lines in image
>>
File: 1477124596904.png (480KB, 668x621px) Image search: [Google]
1477124596904.png
480KB, 668x621px
>>60988406
good one
>>
>>60982377

That's cool but how do we monetize it.

And then how do we distribute profits?

I say we also create our own cryptocurrency and distribute ownership based on contributions, with the total value of the currency being the "net" value of the congregated goods produced by the profit of the browser.

I say initially we do a raw conversion of profit to bitcoin, then use that bitcoin to purchase gold which we bury in the Sahara in lumps of 5 pounds, burried with it are encrypted addresses of the previous and subsequent buried troves which can only be unencrypted through use of the browser.

People will also be able to gain Nets through aiding in creating this chain by fronting money for gold purchases, physical labor through burial, and arranging the next location for a trove.

Once the cycle becomes self sustaining, we stop doing the initial conversion to bitcoin and start directly spawning profit through our cryptocurrency, and then eventually stop relying on gold and start just burying flashdrives with keys loaded on them for the value of the Nets themselves. This will begin rapid inflation which we can then use to finance housing projects in lower Sudan. We'll also want to begin burying troves on the land we've purchased, while financing the removal and relocation of all the original troves, the labor of which we'll pay off under the table using that original gold.

Eventually we'll have all gold removed from the system, we'll continue to increase the amount of Nets being pushed into the market while the old flash drives begin to die out since they are never being removed, this will help control inflation.

But how do we monetize the browser?
>>
Alright you fucks, gmp question here. Up to now I've only used c++ interface (mpz_class etc.) and c stuff (mpz_t etc.). I have to use those juicy mpn_ functions, so I gotta learn how to allocate limbs myself. I managed to do some retarded stuff like this, I have someone elses codes and I'm following and trying them myself:

mp_ptr a1p;
mp_size_t a1s = 1;
TMP_DECL;
TMP_MARK;
a1p = TMP_ALLOC_LIMBS(a1s);
mpn_random2(a1p, a1s);
TMP_FREE;


Now, since this shit isn't documented at all, I don't really get it. I followed the macros and this works and it gives me a random 1 limb integer. I know there is no seed, I don't care about it right now. Random is good and all, but I gotta check wether my algorithm is correct so I need to put the numbers in myself. How can I do that? If I initialize an mpz_t, can I get mp_ptr and mp_size_t from it? Or is there a way I can allocate them myself like above code, but without random?

By the way, I don't know why but if I use mp_limb_t, then I can't use any of the mpn_ functions. Like even mpn_random doesn't work. If I have an mp_limb_t a1l, then (mp_limb_t *) a1l gives segfault and *a1l doesn't compile. I don't get it jeeeez.
>>
>>60982377
To quote from your thread:
>>60984767

H A H A H A
A
H
A D
H O
A D O A
>>
>>60988540
nvm I'm retarded, after you bind a1s and a1p with TMP_ALLOC_LIMBS, you can just go *a1p = 0x2a etc.
>>
>>60988313
Oh god, I feel so stupid now. Thank you.
>>
File: voronoi result2.png (265KB, 1920x1080px) Image search: [Google]
voronoi result2.png
265KB, 1920x1080px
>>60983574
Funny that, I was recently making a Voronoi diagram in Unity.

If you made that yourself, what algorithm did you use? I used a hasty version of Fortune's.
>>
>>60988616
I'm not the guy you are asking, but remind me, Fourtune's is the one with the parabola shoreline?
>>
>>60983574
>GTP's sketchy thought process
>>
>>60983574
>pic of moot thinking about selling out 4chinks
>>
>>60988641
Yep exactly. My version runs like ass though.
>>
>>60988727
Do you think it's because of unity or because of your implementation? Its O(nlogn) done right, isn't it?
>>
>>60983600
>tfw the best distro ever will push for the racewar
>>
>>60983638
>linking to Salon
>not archiving that shit
I wish norbro would lurk /g/
>>
>>60988765
Probably my implementation. I know that a more rigorous implementation would use a BST and a priority queue, but I don't quite understand how these would be incorporated into the algorithm.

The main thing that I can do to improve the speed is to delete parabolas when I don't need them anymore. From looking at this video, it seems that I should delete a parabola when a vertex is made, and when an edge hits the boundary of the plane (because you can see the rightmost/leftmost parabola get "swallowed" up)

https://www.youtube.com/watch?v=k2P9yWSMaXE
>>
>What are you working on?

My pun-oriented programming language is coming along nicely. I'm at the "making an ungodly grocery list of features by reading a python best practices guide" stage.
>>
>>60987296
Not sure if you're still here, but HTML5 just means HTML + CSS + JS
>>
>>60982377
>https://github.com/5yph3r/Netrunner/tree/master/links-2.14
This is far more than I expected anyone to have done
>>
>>60988902
Since it is a Links fork.
>>
>>60988916
Doesn't change a thing I said
>>
File: PWM.jpg (16KB, 274x118px) Image search: [Google]
PWM.jpg
16KB, 274x118px
Fucking PWM fucking finally so many registers
>>
>>60987296
>>60988893
That's dope. Good to know
>>
>want to buy a hardcover clrs
>it's $70
fucking hell
>>
>>60989048
>being poor
>>
>>60989055
>spending your money on anything other than waterfilters and alpha brain
>>
>>60986052
puts "yes"; puts "that is true"
>>
>>60988265
Why is lisp such a CUTE language?
>>
>>60989239
I know right.
So round
(lik)
(duck)
>>
>>60989270
Homoiconicity just makes a language so CUTE
>>
>>60983256
If you are this inept please do not contribute to any real projects
>>
>>60989278
Homo* makes everything cute.
>>
>tfw you have to decide between memory efficiency and code aesthetics
I-I just can't do it
>>
>>60989500
Just use Rust.
>>
>>60989500
What languages do you consider aesthetically appealing?
>>
>>60989500
Post code.
>>
>>60989500
>code aesthetics
Your users don't care. Use arrays anon and lots of em.
>>
>>60989526
C is the pure

>>60989527
I have an input number that represents a Pin
I need to address a bunch of different registers depending on the Pin
Currently I have a bunch of if-else constructs to do this
I could use an array to replace this but it would take up more memory
The code snippet is not finished, it's going to grow double its size

uint8_t io_pwm_init(PWM_PIN pwm_pin, uint8_t trigger) {
PIN pin = (PIN) pwm_pin;
io_pin_as(pin, OUTPUT);
if(pin == PIN_5 || pin == PIN_6) {
TCCR0A |= (1 << WGM00) | (1 << WGM01);
TCCR0B |= 1<<CS00;
if(pin == PIN_6) {
TCCR0A |= (1<<COM0A1);
OCR0A = trigger;
} else {
TCCR0A |= (1<<COM0B1);
OCR0B = trigger;
}
} else if (pin == PIN_3 || pin == PIN_11) {
TCCR2A |= (1 << WGM00) | (1 << WGM01);
TCCR2B |= 1<<CS00;
if(pin == PIN_11) {
TCCR2A |= (1<<COM0A1);
OCR2A = trigger;
} else {
TCCR2A |= (1<<COM0B1);
OCR2B = trigger;
}
} else return 1;
return 0;
}


>>60989573
I'm building a library for my own autism
>>
>>60989573
>arrays
I think you mean vectors and lists anon

>>60989595
>C is the pure
Efficient C is aesthetic C. If you're chasing beauty without function you will have neither. If you pursue function beauty will arise whether you want to or not
>>
File: govnocode.webm (924KB, 600x336px) Image search: [Google]
govnocode.webm
924KB, 600x336px
>>
>>60989637
>Python
Into the trash
>>
>>60989611
>I think you mean vectors
same thing, but anon apparently uses C
>and lists
not memory efficient
>>
>>60989611
Not him but:
>Efficient C is aesthetic C. If you're chasing beauty without function you will have neither.
Unless you are a leet C autist like me and can get function from pursuing beauty because you have some weird sixth sense for function and consider it beautiful the way numberautists can tell if a number is prime based on how much they like it.
>>
>>60989637
нaхyй иди
>>
>>60989705
>leet autism
>>
File: photo.png (27KB, 269x269px) Image search: [Google]
photo.png
27KB, 269x269px
>>60982367
Is there a way to check if a specific row in a 2d char array contains only a specific char? (java) so for example {'#','#'} would be checked for # and return true.
>>
>>60989747
>he implies leet autism does not exist
>he has never seen stupid numberfags who can generate primes in constant time with their brains
>he is this much of a gross bat
>if the bat face was gone i would do
>but the bat face is there so it's not
>>
>>60989808
that's some prime trip, son.
>>
>>60989793
yes ofc

char[][] test = new char[10][10] //or whatever
boolean rowContainsChar(char toFind, int rowNum) {
for (int i=0; i<test[rowNum].length; i++) {
if (test[rowNum][i] == char) {
return true;
}
}
return false;
}
>>
>>60989894
I should have mentioned that I was looking for some method like *.contains(char) (something short), ofc one can just run through the char array, sorry anon.
>>
What's a nice, simple archive format for use as an initrd?
>>
>>60989808
Some people have leet autism, but they are not on /g/. They're off getting paid gorrilian dollars at the NSA.

>>60989956
Cannot go wrong with .tar
>>
>>60990043
>Cannot go wrong with .tar
Then why does linux use cpio instead of tar?
>>
>>60983349
not untrue, except that "Fast development" should be replaced with borderline autism
>>
>>60990063
Idk, I just know tar is easy as fuck to use. I knocked together a tar implementation in about an hour once for an embedded project
>>
File: c++23.jpg (24KB, 482x315px) Image search: [Google]
c++23.jpg
24KB, 482x315px
Can't wait for C++23.
>>
>>60990479
This is almost possible in Haskell, aside from some bullshit you get with unary operators (semantically) and unicode support

Custom type operators are really need though.

Imagine if (Foo*) wasn't actually built-in syntax, but was a library type alias, and the actual thing was a language built in std::weak_ptr<Foo> or something.
Then if you wanted, you could actually have (Foo*) as something else, like a GC pointer.

Another example would be if you could have (a -> b) as std::function<b(a)>
>>
>>60990860
neat*
>>
>>60990479
auto auto<auto>(auto) is every conceivable program
>>
>>60990872
>every conceivable program
in C this is just int(*)()
>>
>>60990860
Edit

I guess you can't do custom unary operators, so you'd have some extra noise
You can do
() a

(() a) -- where the () is ignored
(a ()) -- where the () is ignored

but not

a
a
>>
>>60990899
typedef int i;
typedef double diggy;
static i(*shiggy)(diggy);
>>
>>60991073
Whoops, it's removed the unicode

(*) a
(() * a)
(a * ())
but not
a*
*a
>>
>>60989894
>>60991073
>>60991091
you should use code tags frens
>>
>>60991437
I didn't realise you needed code tags for unicode
>>
y we ded
>>
>>60993138
there's a new thread
i guess posts were deleted?
>>
>>60991075
typedef is just awful
<keyword> var = <def>
is so much better
>>
>>60994553
they aren't even comparable
>>
I'm trying to make a script that downloads music from bandcamp by exploiting the "Inspect Element -> Network" trick

My question is: How do I automate/script getting the 'request' URL so I can open it in a new tab and save it?
Thread posts: 310
Thread images: 28


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