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

/dpt/ - Daily Programming Thread

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

Thread replies: 319
Thread images: 23

File: monads post.png (60KB, 1051x184px) Image search: [Google]
monads post.png
60KB, 1051x184px
What are you working on, /g/?


Previous Thread: >>62037763
>>
how do we fix this general
>>
File: what's the problem.png (8KB, 225x235px) Image search: [Google]
what's the problem.png
8KB, 225x235px
>>62042743

A monad is just a monoid in the category of endofunctors.
What's the problem?
>>
>>62042743
Install Gentoo onto it
>>
>>62042734
command line static website generator
>>
>>62042743
>general
>fix
>>
File: 1486706231650.png (395KB, 960x955px) Image search: [Google]
1486706231650.png
395KB, 960x955px
>be me, HR
>looking through candidates
>one is much more suitable for the job than the others
>check his facebook
>pepe the frog
>into the discard pile
>>
File: GAME.jpg (31KB, 1280x720px) Image search: [Google]
GAME.jpg
31KB, 1280x720px
>>62042734
>Bought books on Java and Python to self study
>Haven't done anything with them in almost 2 weeks
>Fucking apathy

Also, why are the easy leetcode questions so hard?
>>
File: 1499724107676.jpg (138KB, 1280x720px) Image search: [Google]
1499724107676.jpg
138KB, 1280x720px
going through the unix programming environment. made a palindrome detector with egrep
>>
>>62042897
more like pajeetcode
>>
File: 15822597.jpg (5KB, 370x334px) Image search: [Google]
15822597.jpg
5KB, 370x334px
>>62042875
Good, you prevented cancer
>>
>>62042924
I wish that was a true story
>>
>>62042745
Is there a monad to make Haskell good? How about a monad to make it strict?
>>
>>62042734
putting /usr/bin/killall -9 uwsgi.py in the root crontab
>>
>>62043042
Haskell is already good, and you can use deepseq or unboxed for strictness
>>
>>62042897
>Tell myself i'll read my Python book in between semesters
>It's still closed
At least now I have an idea for something fun I want to make so maybe i'll crack it open.
>>
File: gaymen.png (136KB, 640x1136px) Image search: [Google]
gaymen.png
136KB, 640x1136px
How many iOS developer are here? I rarely see Objective-c / Swift in this board.

How's my confirmation UI?
>>
>>62043246
youre pretty much the only one here lad.
>>
>>62043053
Alright champ. Post some Haskell code to calculate
mean [1..3e7]

without stack overflow because heaps of garbage or taking longer than a minute to calculate.
No (n + 1) * n / 2 allowed.
>>
>friend classes
when will it end?
>>
>>62043259
I think if you issue a challenge, you should probably provide yours as well to compare to.
Not Hasklet-kun though.
>>
>>62043277
gf classes
>>
>>62043246
I'm about to get into Swift.
How is it in your experience?
>>
>>62041028
>video
I love it. Every time I see it posted I have to watch the first 2m and 30s.
>>
>>62043246
I think iOS in general is more aligned with people who'd go to reddit. Just a feeling. No offense meant.
>>
>>62043289
I like it, really simple sintax, years ahead of Objective-C's mess
>>
>>62043340
Was it necessary to make and delete two posts just to correct a simple typo?
>>
>>62043336
I don't see many Android developers here as well
>>
>>62043340
*syntax

;^)
>>
>>62042912
Do you have a better alternative for practice problems?
>>
>>62043350
I dun goofed, sorry about that
>>
>>62043259
>write this code
>but you're not allowed to optimize it
>>
>>62043340
Cool, what apple computer are you using?
I've got an old 2012 mac mini I'm using for the occasion.
>>
>>62043259
>3e7 elements
Does length even do this?
>>
>>62043364
fug
>>
>>62043359
Who'd develop for Android though? From what I hear it's just not feasible to make android apps for money. And it shows on the play store.
Only decent software is open source projects.
>>
>>62043384
mid 2014 base 15 inch rMBP, no dedicated graphics (Iris Pro 5200). Pretty great display/build quality, performance on anything that isn't 3D is godtier.
> I've got an old 2012 mac mini
Mac Minis are decent little machines, I wish Apple would update them.
>>
>>62043390
>Only decent software is open source projects
There's plenty of open source Android and even iOS software out there though.
>>
>>62043430
Yeah that's what I'm saying.
>>
>>62043259
import Data.Vector.Unboxed as V

average :: (Unbox a, Fractional a) => Vector a -> a
average f = V.sum f / fromInteger (toEnum (V.length f))

result = average (V.enumFromTo 1 (3e7 :: Double))


Unfortunately Unboxed Vector doesn't implement Foldable due to having an Unbox constraint.
I believe Monofoldable fixes this.
Also a better genericLength would be nice, and called gLength.

Then you could do

average f = sum f / gLength f

As God intended.
>>
>>62043279
There are many ways of calculating it, for example:
data StrictDouble = SD !Double
data StrictInteger = SI !Integer

meanA :: [Double] -> StrictDouble -> StrictInteger -> (Double, Integer)

meanA [] (SD sum) (SI len) = (sum, len)
meanA (x : xs) (SD sum) (SI len) = meanA xs (SD (sum + x)) (SI (len + 1))

mean xs = sum / fromInteger len
where (sum, len) = meanA xs (SD 0) (SI 0)

Takes like half a minute to run. It uses strict types.
The thing is that you can't reason at all with Haskell, because even if you profile your shit, you will have to resort to throw strict butter at it until it sticks. Laziness is a curse.

C can calculate that shit in under a second, no garbage required.

>>62043372
That's to save you the trouble of generating random 3e7 elements, but be my guest if you want to.
>>
>>62043370
>Are you doing some funky memory ordering to have the array sorted but non-linearly in for cache-line efficiency?
What does this mean?
>>
>>62043477
Yeah i really never understood why default laziness is a thing. Makes absolutely no sense.
>>
>>62043387
both C and C++ allow this. (up to a point, 10e22 is the upperbound iirc)
(C++17 allows 1p7 as an alternative syntax.)
>>
>>62043514
and apparently C99 also allows 'p' in place of 'e.'
I learn something new every day. I don't think I've ever seen any C that uses 'p' for exponent/normalized notation.
>>
File: sicp-mahoromatic-alpha.png (456KB, 796x720px) Image search: [Google]
sicp-mahoromatic-alpha.png
456KB, 796x720px
I want to learn a function language to see what it's all about, but I also want to get some use out of it after I learn it, should I learn scheme, erlang, haskell, or something else?
>>
>>62043259
>>62043471
How mind-blowingly silly of me

In the REPL, it turns out

foldl' (+) 0 [1..3e7] / 3e7 :: Double

Is actually quite fast!
(Not C fast - but it is interpreted in the REPL, after all)

>/ 3e7
No point hand-writing a length encoded list
Consider this equivalent to passing in the length for a C style array.
>>
>>62043544
learn F#
>>
>>62043544
what languages have you used before?
>>
>>62043544
elixir or f#
>>
>>62043367
Not that guy, but I've gone through a lot of the easiest problems on a few code challenge sites, and you should try codewars. I know it has a lot of challenges for both Python and Java, and the kata system is good for finding problems that are at your skill level. Codewars is somewhat math-oriented, but I still found plenty of problems (in C++) that didn't require much beyond basic algebra.

Kattis (open.kattis.com) is also decent, but it's a bit more math-oriented than Codewars. Use the submit.py script, it's a lot easier than using the website to submit answers.

Then there's exercism (exercism.io). It's focused on getting feedback for your work, and the submission process vaguely resembles using git (basically, you "pull" the problem description, and then you "push" your solution - not 100% accurate, but gets you acquainted with submitting work using a terminal). I've gotten good feedback on my submissions through it as well.
>>
>>62043549
Was that after memoization was applied?
>>
>>62043579
I literally just put that into the REPL.
(I imported foldl'/strict foldl from Data.Foldable first)
>>
>>62043477
import Data.List

data S a = S {-# UNPACK #-} !Integer {-# UNPACK #-} !Double

mean :: [Double] -> Double
mean xs =
let step (S n t) a = S (n + 1) (t + a) in
let S n t = foldl' step (S 0 0) xs
in t / (fromInteger n)

main :: IO ()
main = do
putStrLn "Starting calculation..."
result <- return $ mean [1..3e7]
putStrLn $ "Got result: " ++ (show result)


Not as fast as C, but a lot better than the lazy version
>>
>>62043555
>>62043573
Would appreciate your own pitch for them if you don't mind.

>>62043566
C, C++, Python2, Go, PHP, JS, and maybe other less relevant things. I mostly use and enjoy Go now, using C and C++ where appropriate/needed. For web stuff I've considered picking up Typescript.
>>
>>62043630
Do you mean Int? You can't unpack Integer
>>
>>62043630
>>62043650
Also, if you use MagicHash and UnboxedTuples, you could be using

(# Int#, Double# #)
as the state - but that wouldn't work with foldl'
>>
>>62043623
I'd like to inform you, my enlightened fellow, that operator overloading is a big cause of failure to inline.
I support the general attempt but don't do operator overloading for another 20 years or so. Maybe then the technology will be there to support it.
>>
>>62043670
No it isn't.
>>
Am I missing something? Are haskell people tripping over themselves implementing a simple mean?
>>
>>62043684
I suggest you inspect your code that makes heavy use of operator overloading.
I've had plenty of instances where a function external to the operator overloads (in a piece of code that used operator overloads heavily) failed to inline until I rewrote it to SSA form.

It's rarely worth doing. I can see the case for vector operations maybe since they're not that common to nest deeply.
>>
>>62043693
>multiple people give you straightforward fast solutions
>1 is even very close to the typical solution

>h-hhaskell btfo! why not use C
>meanwhile C can't even average 2 ints
>>
>>62043650
Thanks anon, I do indeed mean Int.

This is now pretty fast:

import Data.List

data S a = S {-# UNPACK #-} !Int {-# UNPACK #-} !Double

mean :: [Double] -> Double
mean xs =
let step (S n t) a = S (n + 1) (t + a) in
let S n t = foldl' step (S 0 0) xs
in t / (fromIntegral n)

main :: IO ()
main = do
putStrLn "Starting calculation..."
result <- return $ mean [1..3e7]
putStrLn $ "Got result: " ++ (show result)


$ time ./mean
Starting calculation...
Got result: 1.50000005e7

real 0m0.931s
user 0m0.922s
sys 0m0.008s


(still nowhere near as fast as C)
>>
>>62043471
5 seconds, that's pretty good. It still generates quite some garbage.

>>62043549
>>62043630
You chose the right flavor combo of foldl'.
result = sum / fromInteger len
where (sum, len) = foldl' (\(x, y) a -> x `seq` y `seq` (x + a, y + 1)) (0, 0) [1..3e7]

This takes also half a minute and generates as much garbage as the Vector implementation. And if there were no seqs then that would be a stack overflow.
>>
>>62043729
There is no substantial difference between an operator and a method or a free function depending on its context.
>>
>>62043693
have you never seen them trying to calculate the Fibonacci sequence?
or poorly implement the Sieve of Eratosthenes (by not actually implementing it..)?
its all they can do.
>>
>>62043664
Thanks anon, that's pretty neat. I ought to sit down and actually learn this stuff instead of half-remembering bits from talks
>>
>>62043748
Maybe you shouldn't use an arbitrary precision Integer then
>>
>>62043750
>depending on context
Yes obviously. The problem is the cases operator overloads cause. You start writing in the wrong form for perfectly understandable reasons.

Go ahead and profile your code. See where you have many hits on your functions and look for lack of inlining. C++ compilers really aren't up to task.

Of course you might not care about the performance. Maybe the operator overloads save you enough trouble that it's worth it. That's fine. I'm just stating my experience.
>>
>>62043739
How would haskell average 2 ints?
>>
>>62043826
Surely overloaded operators are inlined in exactly the same places methods would be inlined?
>>
>>62043826
This is a function problem, not an operator overloading problem
>>
>>62043838
mean x y = (x + y) / 2


It's a dynamically typed function, you can use it with floats too
>>
>>62042745

No one knows what the hell a monoid or an endofunctor is.

>>62042875

That's what he gets for having a Facebook.

>>62043390

To be fair, many of the people posting here aren't going to make money off of the applications they develop.
>>
>>62043862
>dynamically typed
polymorphically typed
there is a huge difference
>>
>>62043842
You're not getting it. Yes when you're down at IR level functions and operators are the same. It's the usage that ends up being problematic.
>>62043846
See above. Yes in some sense we can say it's just function inlining that's insufficient. But littering your code with calls upon calls (especially ones with implicit 'this' pointers) is not giving the compiler an easy job.
>>
>>62043866
An endofunctor is a morphism preserving mapping from a category to itself.
A monoid is an algebra defined by (M, 0, +) where 0 is the zero element for + and + is associative
>>
>>62043862
Fractional a => a -> a -> a
>>
>>62043868
>>62043880
It was a joke anons, also trying to get the Pythonistas interested in Haskell
>>
>>62043877
Your complaint is that operators allow you to write lots of function calls in a short space.

>this pointers
Method problem.
>>
all of this programmer jargon intimidates me, as a little boy interested in CS
>>
>>62043884
What you should have said is that Haskell has statically type safe runtime dynamics.
>>
>>62043878
A monoid is a typeclass that lets you combine two things of a type, with an identity element and associativity

t. Scala, keeping things simple
>>
>>62043886
Yeah that's exactly what I've been saying. I dunno you repeating this is making me think you don't understand this as a problem. In the context of current C++ development it's a problem.
>>
>>62043900
Also this: https://wiki.haskell.org/Zygohistomorphic_prepromorphisms
>>
>>62043899
if you continue to smash your head against the keyboard it eventually pays off. Git gud
>>
>>62043899
Don't worry. It's not hard to learn and you're working on computers that let you search. Terminology is especially easy to search for.
>>
>>62043908
because all the weenies are contributing their garbage to scalaz or cats or shapeless or what have you.
>>
>>62043925
indeed

here's what isomorphic means in the context of javascript: http://isomorphic.net/javascript
>>
>>62043916
>https://wiki.haskell.org/Zygohistomorphic_prepromorphisms

???
>>
>>62043912
I understand why you consider it a problem, but in my opinion that is the fault of the people reading the code.

Operators to me are no different than functions.
I use a functional language though, which is much more keen on inlining.
>>
Reminder that Haskell is obsolete

https://www.youtube.com/watch?v=ad4BVmPni7A
>>
>>62043940
I view it as a feature problem. The entire construct is made to allow you to write code concisely. At first glance it seems an obvious best choice even. So if you're presented with one thing and get another there's reason to be upset.
>>
>>62043968
Operators are just functions.
It is simply a matter of built in functions.
You are used to languages in which all operators are built-in, and hence easily optimised.
>>
>>62043964
I'm only 15 seconds in and he's just a horrible speaker.
What does he say?
>>
>>62043983
Anon if you don't stop replying to me with obvious stuff I'm gonna be upset with you. I feel insulted.
>>
>>62043984
The obstinate disembodied SPJ
>>
>>62043991
In many languages, you can indicate to the compiler that you would like the function to be inlined.

Operators are no different.
>>
>>62043878

You see, the typical computer science undergrad, who has likely taken Calculus I and II, Linear Algebra, Probability Theory, and not much else, will not know these terms. The more mathy computer science courses that every computer science major has to take -- complexity theory, discrete mathematics, and algorithms -- also do not reference these terms. You are defining these in the context of category theory, which is not a standard part of any computer science curriculum, and in many cases not offered at all.

If you want anyone to know what the hell you are talking about, you must speak as though no one you are talking to knows anything about category theory. What the hell is this in terms of sets, or some other fundamental mathematical construct that I might have actually used in a computer science curriculum?
>>
>>62044072
(M, 0, +)

forall x in M
0 + x = x
x + 0 = x

forall x, y, z in M
x + (y + z) = (x + y) + z
>>
>>62044084

Okay, so that describes the monoid, now what is an endofunctor, a morphism, and for that matter, a category?
>>
>>62044072
https://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Monoid.html
>>
>>62044005
This is not a solution Jesus christ. The optimizer knows best most of the time. Just not all of the time. That's the problem. It confuses me why I have to repeat that.
>>
>>62044112
A category is itself a monoid
>>
>>62044112
arent you supposed to be working on your phd? why dont you know this shit? did you take any math classes at all?
>>
>>62044160

>arent you supposed to be working on your phd?
Yes.

>why dont you know this shit? did you take any math classes at all?
I have taken plenty of math classes and math-heavy computer science classes. None of them were category theory. Closest I've gotten was a little bit of type theory in a class on programming languages during my master's.
>>
ok /dpt/ gonna do a survey.

1. What made you start getting into programming? What motivated you?
For me is when a girl pissed me off, and I started learning about wifi cracking, and programming languages. This was back in 2011, and my motivation steered away from that to other things.

Essentially thats the only survey. These are just other questions in general.

I started working on a android RAT. Started this 2 years ago, but the project is kind of dead since I have been busy with life

But this has always had me wondering, I have been using Byte to send "commands" to client phones, it seems short, and byte seems to common technique to achieve this, but is it reliable? Could I use another method to send "commands"? I was using sockets API.
>>
Currently working through Make Your Own Games With Python and Making Games With Python and Pygame. Once I finish those I'm going to tackle making a simple roguelike. Once I've done that I'm going to try something in C.
>>
>>62044223
>1. What made you start getting into programming? What motivated you?
wanted to learn about computers, technology, etc
>>
>>62044223
when I was 10 (ish) my parents bought me a toy plastic laptop. It had a cli interface and a tutorial for BASIC. I wrote a rock paper scissors program in it. When I was in middle school, I wrote a video game review website in HTML and CSS. When I was in high school, I learned python for fun and bash scripting out of boredom in computer class. I'd have people run "viruses" that would open lots of windows or something. Now I bully lame tripfags for not knowing basic category theory.
>>
>>62044223

When I was a kid I wanted to be a game developer, but then I realized I can't into art and neither can any of my friends. When I was a teen, I wanted to be a 1337 hacker like anonymous, so I went onto the partyvan wiki and it told me to learn C++, which I sucked at for a while. It was fun though, so I kept learning. I gave up on becoming a hacker because it takes a fuckload of work to compromise a machine, and I don't actually have a desire to break into shit... plus I tend to overestimate the competence of law enforcement. I kept programming because it's fun, even though I don't actually know what the hell I'd like to build.

Then I decided to go into research because the software industry works on boring CRUD web applications, while researchers do all of the interesting work. Also, as an academic, I can work on whatever I find interesting so long as it's publishable.
>>
>>62044223
Back around 2000 I made an IRC bot using mIRC's scripting language, which ended up being pretty big. I'd always had a basic interest in that sort of thing but that was what really got me into it.
>>
>try to develop on windows
>shit doesnt work
>give up and boot into linux
every time
>>
>>62044223
>getting started with programming
Mom did it. She showed me some when I was 6. Grew on my when I was ~10
>motivation
School was just under my level. Public schools are just torture. So when faced with a subject I had interest in there was no need for external motivation of any sort.
>>
>>62044416
>this post
I'm too tired. I hope you get the gist. Gn
>>
>>62044223
1. I thought it would be so cool and special to make my own game, but when I grew older I realized it really is all about the money. Programming is the most boring job in the world but how else am I going to make 6+ figures? I'm just that cheap, right?
>>
>>62044411
same. Sometimes I spin up an 3c2 instance just to run a couple-second-runtime script
also,
>nice full house
>>
>>62044451
Its so disapointing. The Linux subsystem was supposed to fix everything, but its a total flop.

>sudo apt-get install package
>package
>error: this shit dont work on windows.
>sigh
>boot into linux
>>
>>62044411
I'm the opposite.
But I don't follow instructions and solve things my own way. So that's probably why.
>>
this library function wants a vector or baseclass pointers, but I have a vector of derived classes

how can I produce a vector of baseclass pointers from this?

ive tried like every variation of for range loops and havent been able to do it yet
>>
>>62044481
What are you trying to do? I've not found anything that it doesn't play nice with
>>
>>62044488
if your language supports polymorphism at all, it should just work my man.
post code.
>>
>>62044507
this time, nodejs
>sudo apt-get install nodejs
>npm
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")
>>
>>62044525
Strange, I've been using it fine on WSL. You up to date and everything?
>>
>>62044509
for(auto i :team1)
players.push_back(&i);

works but it sends pointers of copies of the members of team1 though right?

I want to send add pointers to the members of the vector team1 directly, but also the vector players is of baseclass not the derived one
>>
>>62044525
Looks like you have the Windows and Linux versions installed at once, by default Windows appends everything in your Windows PATH variable to $PATH so it's getting confused. Either manually modify $PATH or set this registry key o not include Windows' PATH in $PATH

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss]
"AppendNtPath"=dword:00000000


source: https://github.com/Microsoft/BashOnWindows/issues/1896
>>
>>62044580
>>62044532
Thanks!
>>
>>62044576
[coed]
class A {
public:
A() {}
virtual ~A() {}
};

class B: public A {
public:
B() {}
virtual ~B() {}
};


int main(void)
{
std::vector<B> bs;
bs.resize(4, B());

std::vector<const A*> as;
for (auto& b : bs)
as.push_back(&b);
}
[/code]

This works for me. However I'm having trouble making a vector of references, I'm not sure how possible this is in C++.
By the way fuck C++, these error messages are absolutely absurd
>>
>>62044633
Lol absolutely embarrasing, I need to stop trying to help people with programming at 2am
>>
>>62042734
>>62044633
>>62044639
Just made a hooker website at:
http://cloudsmokeshop.com/girls/
>>
File: Akarin 159.png (412KB, 553x562px) Image search: [Google]
Akarin 159.png
412KB, 553x562px
>>62044633
hmm I could swear I tried this already, but thanks it works
>>
>>62044660
d a n k
>>
File: 20170823_005540.jpg (852KB, 1219x747px) Image search: [Google]
20170823_005540.jpg
852KB, 1219x747px
I put together a simple note taking application using Java. I'm too lazy to add more functionality and am calling it abandonware at this point. Now I'm looking into making some mobile apps for personal use.
>>
I was talking about wanting to make an ios app for browsing 4chan, and a guy told me they probably wouldnt let it in the store. Why is that?
>>
>>62044723
>Java
>>
>>62044743
Which language would you prefer I wrote in?
>>
>>62044738
you would have to put it in a third party app store like cydia yes
>>
>>62044752
A different language.
>>
>>62044752
Java is the best programing language.
>>
>>62044752
Japanese.
>>
if namespaces could be template parameters then
>>
how do i use markov chains to automate the generation of irrelevant and fantastical clickbait thumbnails for videos of paint drying
>>
between programming and shitposting what is the superior career choice and why
>>
How is typedef different from define? Why shouldn't I just use #define for everything?
#define State struct State

typedef struct State State;
>>
>>62045066
defines are replaced by preprocessor.
Typedefs are handled by compiler which can use the information in error messages.
>>
>>62045232
Why does it matter? You are basically just replacing the struct State with State, so it would get the same errors you had if you did typedef.
>>
C was a mistake
ML was robbed
it didn't need to be like this
another world is possible
>>
>>62045277
>another world is possible
Sorry, but OCaml doesn't support multi threading
>>
>>62045269
You generally want to use something for its specific intended purpose where possible.
>>
>>62045289
What's the purpose of typedef then?
>>
>>62045295
define a type.
>>
>>62045303
The answer I was looking for was in here: https://softwareengineering.stackexchange.com/questions/130679/typedefs-and-defines
>>
File: 1503025534844.jpg (264KB, 1294x986px) Image search: [Google]
1503025534844.jpg
264KB, 1294x986px
>>
File: 1503025534844.webm (2MB, 407x640px) Image search: [Google]
1503025534844.webm
2MB, 407x640px
>>62045338
>>
>>62042734
N-New to programming and didn't read any resources to help me out beforehand...
What language should I learn if I want to work with modifying a text file such as replacing elements--one string to another, and pressing a hotkey to automatically copy and paste the currently selected line? Basically I want to heavily interact with Window's (or cross-platform) clipboard.
>>
have you ever noticed how "not C" sounds when you speak it outloud...?
coincidence or...?
>>
>>62043246
Pretty bad, but thats up to the design of the whole app I suppose.
>>
>>62045066
Ahem. If you had
#define State struct State


what would

struct State { ... };


become?
>>
File: Neat.jpg (49KB, 500x491px) Image search: [Google]
Neat.jpg
49KB, 500x491px
>>62045338
>>62045349
>>
How do I turn a string like "u0415u0432u0440u043eu0438u043du0441" into readable unicode?
>>
>>62045603
ignore it and return a meaningful string
>>
File: 1503433048336.jpg (35KB, 367x458px) Image search: [Google]
1503433048336.jpg
35KB, 367x458px
where is THE place to learn cpp leads
>>
>>62045066
#define type1 int *;
typedef int *type2;

type1 a, b; // int *, int
type2 c, d; // int *, int *
>>
>>62045768
>cpp
https://gcc.gnu.org/onlinedocs/cpp/
>>
>>62045709
Its not a machine under my control thats returning this.
Its part of what must be a text message in cyrillic.
>>
>>62045805
>gnu

Fuck that shit, they want to brainwash you into communism so that when you write GPL software chink companies can steal it.

I would recommend Bjarne Stroustrup's C++ book.
>>
>>62045907
Why don't you try opening the link, idiot?
>>
File: 1503480297.png (140KB, 980x1851px) Image search: [Google]
1503480297.png
140KB, 980x1851px
It's somewhat impressive how many bad Haskell solutions there were for mean here

Sadly I can't fit my reply in 2000 chars so pic related. The summary is that we can get within 2x of C somewhat trivially until we write smarter code at which point GCC optimises away the whole thing.

>>62043471
You're paying for Vector without taking any advantage of it

>>62043477
you're using Integer AND you're not even newtyping so you're paying for extra repacking all the time

>>62043549
GHC produces good code here but your problem is
[1 .. 3e7] :: [Double]


fromIntegral (foldl' (+) 0 [1..30000000 :: Int] ) / (3e7 :: Double)


Produces fast code. Though it's cheating with length a bit.

>>62043630
Integer

>>62043742
[Double]
>>
>>62044723
sick programming socks man, how much do they help?
>>
>>62046308
I should add that the 24 cycles comes from rdtsc measurement so C version is effectively "free". Though I did give it best chance possible, if we as much as move it out of main, it doesn't inline it and optimise call away properly.
>>
>can't look at my project the same ever since going open-source
all those devs working on her...
>>
How are you supposed to program in ed if there is no visible text displayed?
â–²
â–² â–²
>>
File: 1501941339604.png (890KB, 951x594px) Image search: [Google]
1501941339604.png
890KB, 951x594px
hmmm
>>
>>62046820
â–²
â–² â–²

>tfw been of 4chan for 5 years
>didn't learn how to triforce until I started programming year ago
>>
>>62046863
>tfw you can't triforce
áž´ áž´ â–²
â–² â–²
>>
áž´ áž´ â–²
â–² â–²
>>
â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–² â–²
>>
>>62046863
>>62046820
>>62046875
>>62046916
please go away
>>>/v/
>>
I want to start programming properly did it in school and was decent but the level they taught too wasn't great (visual basic). I have slight experience in php and js for practically is it worth learning a language such as c or learning php HTML and js to a high level
>>
>>62046938


\../, d( >_<)b ,\../
>>
File: questin.png (183KB, 386x406px) Image search: [Google]
questin.png
183KB, 386x406px
How are you supposed to program in ed if there is no visible text displayed?
>>
>>62046950
yeah go learn C
>>
File: error1_codecademy.png (98KB, 1767x737px) Image search: [Google]
error1_codecademy.png
98KB, 1767x737px
I'm learning how to code and I can't find how to do this right. Can someone please lend some small help?
>>
>>62047283
The print after the elif is not correct, align it withe the other print before.
This is why white space sensitivity is cancer
>>
>>62047301
>the indentation of the print after the elif
I think I just had a stroke writing that
>>
Anyone here actually worked with C/C++?

How do you know if have enough language knowledge to actually get a job?
I doubt the fact that I did all exercises in the book makes me job-ready.
>>
>>62047283
You're missing a colon after else

>>62047301
This has nothing to do with whitespace except for that horrendous error message.

[nix-shell:/tmp]$ cat foo.py 
if False:
print 1
elif False:
print 2
else:
print 3


You just need to keep blocks aligned, they do not have to be consistently indented. There's no reason why code in same lexical scope would not be aligned to begin with and is therefore not an issue at all.

Though I expect if you can't even get past simple alignment-based syntax and deem it so awful as to call it cancer, you don't actually write anything beyond hello world in C.
>>
>>62047365
Seems I cut off part of the code snippet. The given source file interprets just fine.

[nix-shell:/tmp]$ python foo.py 
3
>>
>>62047365
>Alignment based syntax
Lol, any language where whitespace has meaning beyond symbol/identifier delimitation is shit. Enjoy your toy language
>>
>>62046308
>You're paying for Vector without taking any advantage of it
enumFromTo and length
>>
>>62047394
My language uses whitespace to control operator precedence. It's max comfy.
>>
>>62047283
You forgot a : after else, and the indent after the 2nd print is wrong
>>
>>62047362
If you know most of the advanced things like partial template specialization, which nobody usually asks on the interview, then you are ready
>>
>>62047405
It's 6 times slower than naive implementation I posted and uses 230MB resident memory while mine uses constant space (~1M).

You're getting no benefit here, creating vector is pointless because you have nothing to fuse except the constant time length which is amortized in my solution.

Sorry but building a vector for the sake of calling `V.sum` is just not doing you any favours, it's pointless overhead. You use vectors when you can take advantage of fusion which you can't here.

[nix-shell:/tmp]$ ghc -fforce-recomp -O2 MeanV.hs -o MeanV && ./MeanV +RTS -s
[1 of 1] Compiling Main ( MeanV.hs, MeanV.o )
Linking MeanV ...
(293671116,1.50000005e7)
240,104,192 bytes allocated in the heap
6,832 bytes copied during GC
44,384 bytes maximum residency (1 sample(s))
25,248 bytes maximum slop
230 MB total memory in use (0 MB lost due to fragmentation)

Tot time (elapsed) Avg pause Max pause
Gen 0 1 colls, 0 par 0.000s 0.000s 0.0000s 0.0000s
Gen 1 1 colls, 0 par 0.006s 0.006s 0.0064s 0.0064s

INIT time 0.000s ( 0.000s elapsed)
MUT time 0.067s ( 0.067s elapsed)
GC time 0.006s ( 0.006s elapsed)
EXIT time 0.006s ( 0.006s elapsed)
Total time 0.080s ( 0.080s elapsed)

%GC time 8.0% (8.0% elapsed)

Alloc rate 3,586,444,599 bytes per MUT second

Productivity 92.0% of total user, 91.9% of total elapsed


[nix-shell:/tmp]$ cat MeanV.hs
{-# OPTIONS_GHC -ddump-simpl -ddump-to-file #-}
module Main (main) where

import Data.Vector.Unboxed as V
import System.CPUTime.Rdtsc (rdtsc)
import Text.Printf (printf)

average :: Vector Int -> Double
average f = fromIntegral (V.sum f) / fromIntegral (V.length f)

main :: IO ()
main = do
s <- rdtsc
let r = average (V.enumFromN (1 :: Int) 30000000)
e <- seq r rdtsc
print (e - s, r)


>>
I made a thing to brute force recaptcha.
Does anyone know around how many failed attempts I get before it kicks me off?
Posting with brute forced captch btw.
>>
>>62047622
>>62047405
Hm, interestingly if we work over a list of doubles rather than Int (Int is enough for solution here but..) then vector wins out on speed quite significantly.

I wonder why list solution is so much better on Int but so much worse on Double... Might look into this after work.
>>
>>62047430
That sounds retarded.
>>
>>62045768
learncpp.com
>>
>>62045805
Never knew that existed. Thanks anon.
>>
>>62045907
Oh look, a botnet cuck is also retarded. Who knew
>>
>>62042734
Any tips on what i should make for a portfolio, nothing big, just something to show off coding.

Graduating from school next year hopefully, and need to do my internship. School focused mainly on embeddeb programming, and c/c++. Checked what kind of jobs are available, and its mostly java/web-stuff, so guess i should make something with those in the next few months(had only small courses on that kind of stuff, so nothing really to show from there).
>>
>>62047722
>>62047622
Answer: GHC is not optimising away [Double] while it is getting rid of [Int]. We can help it out but it sucks that we have to.

module Main (main) where

import Data.List (foldl')
import System.CPUTime.Rdtsc (rdtsc)
import Text.Printf (printf)

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

mean' :: [Double] -> Double
mean' xs = v / fromIntegral l
where
Pair l v = foldl' f (Pair 0 0) xs
f (Pair l' v') x = Pair (l' + 1) (v' + x)

main :: IO ()
main = do
s <- rdtsc
let r = mean' $ fromIntegral <$> [1 :: Int .. 30000000]
-- This is slow!
-- r = mean' [1 .. 30000000]
e <- seq r rdtsc
print (e - s, r)


With above it fuses the list into worker and we get back to being fast.
>>
Can anyone recommend books for learning assembly? I've started reading 'Programming from the Ground Up' but I've already programmed in C and it's an introduction to programming with assembly as a learning tool. I really want to learn about memory management, best practices, etc.

Also, what are some medium-sized projects I could do in assembly?
>>
File: c.jpg (18KB, 618x49px) Image search: [Google]
c.jpg
18KB, 618x49px
>already spend 2 weeks learning C
Is he right and I'm a brainlet?
>>
>>62048076
It's easy to learn, hard to master.
>>
>>62048076
What do you know about C so far?
>>
Are there any purely functional languages without lazy evaluation that aren't likely to fade into obscurity?

I guess that's all I ever really wanted.
>>
>>62048129
Why wouldn't you want lazy evaluation?
>>
>>62048129
I'd say purely anything languages are doomed. All popular languages are multi-paradigm.
>>
I have a pretty big sparse matrix in matlab format, it's the adjacency matrix of a graph and I want to convert it into an edge list. Any idea how I can do this fast? I don't have matlab, right now I'm trying it in python with scipy and networkx, but it's slow as fuck, been running for an hour now and it's still not done. I think the slowness is mainly in networkx since it seems to use basic python data structures, but I couldn't find out how to create an edgelist with just scipy. Any ideas?
>>
>>62048140
I mean by default. It's sometimes useful, but using it all the time should not be idiomatic.
People who defend it generally don't seem to understand that complexity and verbosity are not the same thing. It makes reasoning about software design a fucking headache.
>>
>>62048165
You might be interested in Single Assignment C, one of the lectureres at my uni works on it. I think it's still pretty experimental though.
http://www.sac-home.org/doku.php?id=about:sac
>>
>>62048162
>Any ideas?
Don't use python.

Why did python get the greenlight for academics? Ruby was robbed. I blame stupid shitty rails.
>>
>>62048229
Is ruby that much faster than python?
>>
>>62048229
not implying that ruby would be any faster necessarily, just that it's actually enjoyable to program or prototype in
>>
>>62048238
If you use numpy for all your array operations python can be pretty fast though.
>>
>>62048252
not saying otherwise. Just that it's a terrible language.
>>
>>62048238
python is comfy, why should i use ruby over it?
>>
>>62047697
Does it not?
I've gone though about 3k tries and it still works fine.
>>
>>62048266
>terrible language
Why?
>>
>>62048266
python is brainlet language of choice
>>
>>62048124
Basic input/output, variables, declarations, subprograms, defined functions, nested if, switch, basic graphical functions, repetitions and loops
>>
>>62048318
fag
>>
>>62048318
fag
>>
>>62048318
fag
>>
>>62048318
fag
>>
>>62048332
That's all very generic stuff, applicable to most languages. I wouldn't say you know C until you at least know arrays and pointers, structs and unions.
>>
>>62044146
>not a generalization of a groupoid
Disgusting.
>>
>>62048373
This
Go implement a linked list.
>>
>>62048373
>>62048378
desu I did the linked list exercise and I still feel like I'm not capable of writing actual C programs. Constantly keeping track of references and dereferences is confusing. Yes, I know this probably makes me a moron, but the language itself is still full of intricacies.
>>
>>62048337
>t. python brainlet
>>
Which language is the hardest?
>>
>>62048453
to force yourself to use everyday for work? Python
>>
>>62048453
Probably Malbolge.
>>
>>62048461
Why so much hate on python on /g/? Is it hipsterism?
>>
File: 1503425036251.jpg (69KB, 680x680px) Image search: [Google]
1503425036251.jpg
69KB, 680x680px
>>62048483
>Malbolge
 (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc


"Hello World"
>>
>>62048491
it's a bad language that has found surprising acceptance
>>
>>62048541
What's so bad about it?
>>
>>62048541
Like what? I see heaps of people here bashing python then you ask them why its so terrible and they don't respond
>>
>>62048605
Not him but as someone that likes Python and uses it a lot here are a few things:
- GIL
- Crippled lambdas
- Explicit self in classes
- Relies on global state (so you cannot embed multiple VMs)
- Significant whitespace

These are the things that bother me personally but there's probably other things that I don't mind because I've been using it for a long time that other people would bitch about because they don't really make sense.
>>
>>62048712
I don't mind self and significant whitespace but I would add

- 5 ways to do everything
- 1 of these is usually "pythonic" that week and it's not the fastest one
>>
How do you structure your data /dpt?
I have a single source folder in my project with all headers and sources.
My entities are defined in single headers per hierarchy. I'm lost. Help me...
>>
>>62048731
> 5 ways to do everything

doesn't this give you more variety in how you choose to write things, tackle certain issues etc? t. interested brainlet
>>
>>62048747
Put every line in a new text file
>>
Some homework in C++ where I have to use srand and rand to output 4 different numbers, each with their own identifer to see if I see any patterns. Fukken sucks.
>>
>>62048769
Tell your prof that srand/rand is deprecated and that you should be be using the random engine from the random header.
>>
>>62048750
‘Variety’ is not really an advantage. If there's one way to do something right, do it that way. It also means you need to know all these ways such that in rare case you do need an alternative way to do the thing, you know which one to choose and why this one over the 5 other ones.
>>
>>62048750
no this is terrible
programming should not be poetry, nobody likes reading clever code that does things in some cute way. Of course some flexibility is good for the reasons you said but the more limited you are in how you're able to do things, the more readily you can reason about the code.
>>
How do you benchmark individual functions in C? Does GCC have some functionality for it?
>>
>>62048804
gprof
>>
tfw no gf
>>
>>62048804
See the image at >>62046308, it has a C section ; it's not a benchmark but it gives a rough idea of time taken. If you want actual benchmarks (multiple runs, statistical analysis &c.) then I don't know, sorry.
>>
>>62048821
silly boy (= you can help me make my video game! I'll be the ideas girl
>>
>>62048821
>>>/r9k/
I'm sorry
>>
>>62048838
I want to make a futa furry dating simulator, any suggestions?
>>
>notice coworker wrote code that searches text-files for strings
>replace it with a call to grep
>performance on large batches improves by 200-300x

why do they do this?
>>
>>62048858
no, I want a game like final fantasy but also like skyrim
>>
>>62048880
c cucks like to reinvent the wheel
>>
>>62048890
teehee you're so random xD
>>
>>62048819
Thanks, works well.
>>62048823
I don't want to benchmark that specific function though.
>>
>>62048891
We work in fucking ocaml
>>
>>62048880
>not using ack
>>62048891
If he wrote the code well he could optimize it for that specific scenario. Grep uses unicode unless you pass LC_ALL=C which kills performance, there's also an option to disable regex. Depending on which strings you're searching for, you could make something faster still though.
>>
>>62048954
Maybe that's why it's so slow?
>>
>>62048952
I was referring to use of rdtsc. You could wrap whatever you want to time around with it and know how long it took. I appreciate it may be not what you're after.
>>
>>62048978
ack isn't present on our platform, and adding it would require me to do shit loads of paperwork and get the support of several of my bosses.

grep is on everything already.
>>
>>62049037
LC_ALL=C egrep then, or copypaste the relevant code. Depending on the amount of strings and the data's structure you might be able to hand-optimize some bitmask for better searching.
>>
>>62047722
>>62047722
I think it's because you go from enumFromTo into foldl.
It's probably deforested.
>>
http://www.coboloncogs.org/INDEX.HTM
// E N T E R P R I S E
>>
>>62044223
>1. What made you start getting into programming? What motivated you?
I just wanted to fix the gtk file picker, ended up learning to stay away from C
>>
>>62049109
No, the vector version is faster because it explicitly fuses sum with vector creation whereas my original code did not result in GHC fusing [Double] into worker. See post below that for a workaround. I also sent a question into haskell-café if you care enough. It has a little Core inlined there to elaborate on what I mean.
>>
>>62049192
>I just wanted to fix the gtk file picker
You're just goddamn adorable aren't you?
>>
>>62049233
Fuck off faggot >>>/lgbt/
>>
>>62049192
That's not really fair, C can be cumbersome to work with but GNOME's code quality is legendarily bad. Even GNU is wary of them.
>>
How do I tell that all the $ symbols are aligned in the output without checking output and adding spaces after?
        printf("Total purchases         $%6.2f\n", total_purchase);
printf("Sales tax (%d%%) $%6.2f\n", TAX, sales_tax);
printf("Total $%6.2f\n", total);
>>
is that emily a dutch or flemish qt?
>>
>>62049290
Something like this:
        printf("%-24s$%6.2f\n", "Total purchases", total_purchase);
printf("%-24s (%d%%)$%6.2f\n", "Sales tax", TAX, sales_tax);
printf("%-24s$%6.2f\n", "Total", total);


Except you'll need to find a way around the TAX var, probably format that first into a string and then pass Sales tax + tbhe string as the first param.
>>
>>62049351
I see, thanks
>>
>>62044223
The common solution is to have a server that listens on a port and connect back. You should use port 443 HTTPS, harder to detect via network analysis etc
>>
>>62048162
I think I found a solution, scipy can convert a sparse matrix to the Dictionary of Keys format:
>keys are (row, column) index tuples (no duplicate entries allowed)
>values are corresponding non-zero values
I just need the keys. So I'm gonna try and see if it runs in O(acceptable).
>>
>>62049483
>You should use port 443 HTTPS, harder to detect via network analysis etc

versus using a port in 32000+? Then again using a port crowded around other open ports would be harder to find (I guess like finding someone in a crowd)
>>
>>62049580
HTTPS is almost never firewalled though.
>>
>>62049616
Ok, I guess I can add couple of backup ports if for some reason 443 is blocked.
>>
>>62049640
No, 443 is almost never blocked but the high ports sometimes are.
>>
>>62049170
>javascript
>>
https://sourcecontribute.com/2017/08/22/node-js-has-forked-into-ayo/

k e k
>>
>>62049685
I'm laughing pretty hard desu

I wonder how hugbox safezoning is magically going to turn into code; spoiler: it isn't.

That sure will show them.
>>
>>62049685
tldr?
>>
>>62049685
I'm starting to think the Javascript community is a great thing. The entire ecosystem actively draws in the people that other languages and platforms don't want so they can kick and scream at each other instead.
Give it three years and outside of JS, political discussion in free software projects will be weird again.
>>
>>62049685
thats not the first time nodejs has forked.
a couple years ago it was forked in io.js 'cause node was using a years-old version of v8.
>>
>>62049736
Feelings were hurt, committee voted to keep the guy on, they forked the project and added code of conduct in big letters with motivation that contributors need to feel safe to have courage to submit a patch and that driving away contributors is fatal.

Basically some special snowflake got her feefees hurt or something
>>
>>62049736
It's the usual. Competent dev says something that "offends" SJWs then they use their jewish social media tricks to get rid of that person claiming that enforcable code of conduct/safezone will make the product better because new people will feel welcome contributing to the project. The thing is the type of people that usually bitch about it are usually the people that have no history of any expertise on the topic they're talking about and all they do is incoherent ramblings on social media how nonexistent issues are issues.
>>
>>62044223
What is the point in numbering all the questions if there is one question?
And why didn't you start at 0?

Anyway, I got into it because I wanted to know how stuff worked.
The early stuff I did was just to help me do homework.
Most of our assignments were written questions and they expected us to show the steps we used to calculate the things.
I made document generators so all I had to do was rewrite their question into variables and then use my programs.

I didn't formally learn programming until university though.
There I got into robotics and now I live in a text editor.
>>
File: googler-hacker-hero-legend.png (496KB, 499x497px) Image search: [Google]
googler-hacker-hero-legend.png
496KB, 499x497px
>>62049685
he started the fire
>>
>>62049795
>googler-hacker-hero-legend
>hero
>legend
Try autistic loser*
>>
>>62049795
Nah, there have been cases like that way before he spoke up.
>>
>>62049758
What in trhe world is NodeJS and why it is important?
>>
>>62049849
its the magic sauce that makes the internet webscale.
its rockstar tech
>>
>>62049685
this is ridiculous.
are those people straight up retarded?
>>
>>62049871
quite possibly yes
>>
>>62049662
Wait are you telling me to use 443 as a listening port? I figured we were talking about using 443 port to connect back to me, I mean I will obviously have 443 open on my end.
>>
>>62049907
Phones can almost never listen on a port. The server should have port 443 open and use that for communication. You could also use bittorrent trackers instead of hardcoding a DNS name, much safer.
>>
>>62049764
>require that all account names have the same format (for example [0-9]{8})
>ban all accounts with a distinct writing style
>ban all accounts that post something not strictly related to the project
>set up a script to:
>ban all accounts that don't match this regex
>ban all accounts older than 5 hours
>ban all accounts with a non-default avatar/profile
>ban all accounts that have ever touched another repo
Everyone is happy. Find a flaw.
>>
>>62049819
link to a news story of one?
>>
How does type casting work in C?
Let's say, I have 10.0 in float. In hex it looks like 0x41200000.
Does it mean it will show like 1092616192 in int?
>>
>>62050147
that's if you want to see it like that in printf, sure.
if you want to actually use that data in a different way, you'd do this
unsigned a = (unsigned ) hex;
>>
>>62050147
Casting numerical types is an actual conversion, not an reinterpretation of the bytes. Casting the double 10.0 to an int will truncate it to 10.
Casting pointer types to other pointer types will simply reinterpret the type to which pointer points, but that is often undefined behavior because of strict aliasing. If you want to access the value of a double as if it were an int, use a union type.
>>
if ghosts can walk through walls and objects, why wouldn't they just fall through the floor?
>>
>>62050213
Ghosts are unaffected by gravity.
>>
>>62050213
because they're floating
>>
>>62050213
same reason people think time travel wouldn't leave you in some random point in space and not in the same place on this spinning planet
>>
NEW THREAD!

>>62050247
>>62050247
>>
New thread:

>>62050258
>>62050258
>>62050258
>>
>>62049953
interesting bittorrent trackers.. Also yes I would always have 443 open on my end. For sure.
>>
>>62050253
>>62050267
I hate you both
>>
>>62050177
>unsigned
Is that ever a type?
>>
File: bogo.png (26KB, 500x500px) Image search: [Google]
bogo.png
26KB, 500x500px
>>62050309
>>
>>62050425
C assumes that the type is int if you don't specify it. For fun you can fuck with sepples programmers by declaring every int like this.
auto x, y, z;
>>
>>62050484
Is it C90 thing?
>>
>>62050604
As far as I know all C revisions do this.
int main()
{
static foo = 10;
printf("%d", foo);
}
Thread posts: 319
Thread images: 23


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