[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: 321
Thread images: 42

File: a1091567924_10.jpg (58KB, 768x1024px) Image search: [Google]
a1091567924_10.jpg
58KB, 768x1024px
No meme shitters edition

What are you working on, /g/?

Old thread: >>60874998
>>
I love C++!
>>
File: 1496422855788.jpg (57KB, 818x750px) Image search: [Google]
1496422855788.jpg
57KB, 818x750px
>>60882065
Is it just a coincidence that most OOP supporters are extremely stupid?
>>
Gatekeeper please kill /dpt/

/dpt/ spreads memes and misinformations to newfags. /dpt/ has no practical knowledge of programming. /g/ is not designed to have a meaningful debate anyway
>>
>>60882089
>No meme shitters edition
>>
>>60882065
c++

x::x() : y()


What does the : do here?
>>
File: bright side.png (6KB, 789x324px) Image search: [Google]
bright side.png
6KB, 789x324px
>>60882065
Sorry for shitting up last thread, the gatekeeper is hilarious to me and also it was near bump limit anyways. It's all out of my system now.

Java is the most powerful language!
>>
>>60882109
Create confusion
>>
>>60882096
>>60882098
>memes
>meme
What is that? Is that what they use for "OOP"
>>
>>60882096
>memes
Try using >>>/v/

>>60882098
>meme
Try >>>/v/

>>60882114
>games
Use >>>/v/
>>
Re-implementing Rust without the BC.
>>
>>60882109
Depends on the context. If you're declaring x::x, then the call to y initializes either a member or a base object. On the other hand, x might be a static member function of x which you're calling in a ternary conditional, and y() would be the else clause.
>>
>>60882109

looks like a ctor for x that default initializes a member y, but can't say for sure without more context. Shouldn't there be curly braces, anyway?
>>
>>60882129
>shilling for >>>/v/ on >>>/g/
How much do they pay you?
>>
>>60882129
Godspeed. Please drive away the last remaining programmers ITT and start posting anime and lgbt memes
>>
>>60882065
/dpt/ - Designated Pajeet Thread
>>
>>60882161
Dead programming thread
>>
>>60882065
>>60882096
>>60882098
>>60882119
>>60882129
>>60882148
>meme
I don't want reddit stink nearby.
Seriously: piss off. Your kind is not welcome here.
>>
>>60882167
Are you a bot?
>>
>>60882182
Please anon, for the sake of everybody: just kill yourself.
>>
To the autist who keeps linking to /v/, please kill yourself. You derail every one of these threads.
>>
>>60882196
Can you tell me what 15 + 13's double is?
>>
>>60882140
>>60882145


>If you're declaring x::x, then the call to y initializes either a member or a base object.

So you can create a method for a class without prototyping it in the class?

Also a little more clarification
x::x() : y() {

}



Also what would
x::x() : y(), z() {

}

be doing?
>>
def apriorigen(l, k):
c = set()
for a in l:
for b in l:
if len(a | b) == k-1:
c.add(union)

return c


Why can't I do this i python
Python is so shit
>>
>>60882239
>object
>>>/v/
I don't want your reddit stink nearby, fuck off
>>
>>60882241
>Python
>>>/wdg/
>>
/dpt/ why can't C do fucking anything right? Why does anyone shill this garbage language?
/* Create a new class union (like namespaces) to keep this class in. */
#define class union
/* This is a public class. */
#define public

#include <stdio.h>
class CIsGarbage {
public int x, y;
};
int main() {
class CIsGarbage my_cisgarbage;
my_cisgarbage.x = 3;
my_cisgarbage.y = 4;
printf("%d\n", my_cisgarbage.x); /* expected output: 3 */
return 0;
}

This is giving me 4.
>>
rust is shit and people who think it's going to replace C++ are a fucking joke
>>
how would you go about programming a game ui like picrelated? I'm considering going with electron javascript html/css
>>
>>60882239
I mean to say that are you creating a method because to initialise it all you would need is
x::y() {

}
>>
>>60882239
x::x() : y(), z() {

}

Specifies a no-argument constructor for x that constructs the members y and z with their no-argument constructors.
>>
>>60882273
By not being as horrible pile of trash CPOOPOO is
>>
>>60882265
do you know what a union is dumbfuck
try struct
>>
>>60882273
Rust has modules
>>
>>60882239
>So you can create a method for a class without prototyping it in the class?
No, excuse me by "declaring" I meant "defining," my bad. The method x::x has to already be declared in class x.

>Also what would
>x::x() : y(), z() {
>}
>be doing?
Same thing, the calls to y and z would each initialize either a member or a base object.
>>
>>60882265

> class union (like namespaces)
Whatever poolang you've been using has given you brain damage.
>>
>>60882260
>incorrect linking
Use >>>/r/abbit/
>>
>>60882290
Can you even read comments? #define class union defines a class union. I literally just said that.
>>
>>60882310
Don't you have to send >>60882274 to /wdg/ and /v/?
>>
>>60882306
see: >>60882311
>>
>>60882293
Cpeepee btfo
>>
>>60882311
the code as written, disregarding the retarded comments, works exactly as you would expect

kill yourself
>>
File: shiggy.jpg (5KB, 200x200px) Image search: [Google]
shiggy.jpg
5KB, 200x200px
>>60882329
>the code as written, disregarding the retarded comments, works exactly as you would expect
No it doesn't, C is just garbage. It literally can't even handle a class with two public instance variables.
>>
>>60882294
So what's the difference between

x::x() : y() {

}


and

x::y() {

}
>>
>>60882274
>electron javascript html/css
Use >>>/g/wdg/
Your kind isn't welcome here.
>>
>>60882339
you're fucking clueless

in any other language that has unions it would work the same

make it a struct instead
>>
>>60882265
D doesn't have this problem
https://www.tutorialspoint.com/d_programming/d_programming_classes_objects.htm
>>
>>60882360
but I'm just considering it. I'd like to know if there are better options
>>
>>60882353

Top is a constructor. Part of the construction involves initializing a member named y.
Bottom is a member function of x called y.
>>
>>60882365
>he can't read C
>he doesn't know what a union is
sure is summer
>>
>>60882329
>"code"
>>>/g/wsg/
>>
>>60882375
D has classes, so you don't have to hack together unions to get them
>>
>>60882384
so you're pretending to be retarded

here is your (You)
>>
>>60882375
Who are you quoting?
>>
>>60882384
unions are completely different to classes, you want a struct
>>
>>60882390
>reddit spacing
fuck of to ribbit
>>
>>60882353
>x::x() : y() {
This is for if y is a member of class x. x::x is then a constructor, so as the constructor, it has to construct not only the instance of x but also anything inside it. Since y is inside it, it has to construct y, so it calls y's constructor. This is just a way of doing it before the body of x's constructor actually starts, because otherwise -- if you did it the more intuitive way, by setting the y variable in the constructor -- you'd be constructing y twice, once with its default constructor and once by copy assignment.

>x::y() {
This, on the other hand, assumes y is a *method* of x rather than an ordinary stateful member of it, and starts a definition for y, which must be declared in x before you can define it. You'd also have to precede this definition with a type, e.g. "int x::y()," because in this case, y isn't a constructor for x, and any method that isn't a constructor must have a return type.
>>
>>60882373
>Top is a constructor. Part of the construction involves initializing a member named y.

and how is this different from just initialising the member?
>>
>>60882361
Are you suggesting I put
#define class struct

Because that's dumb. All that would do is define a preprocessor symbol called class struct, which, unlike class union, doesn't have a standardized meaning.
>>
>>60882426

class union does not have any meaning you dumb shit
>>
>>60882402
lol what is the difference between a method and a member? too lazy to google
>>
>>60882446
They are both pointers to some objects anon
>>
>>60882404
Not him but:
>and how is this different from just initialising the member?
See: >>60882402
When you do something like "y =", you're initializing y through copy assignment. This means, before that, y had to be constructed, because in C++, variable assignment is a method, and an object needs to be constructed before it can accept method invocations. Using y() cuts out the middleman and just constructs y the way you want it constructed in the first place.
>>
File: wtf am i reading.jpg (170KB, 400x400px) Image search: [Google]
wtf am i reading.jpg
170KB, 400x400px
>>60882426
>>
>>60882446

C++ does not have strictly methods, but any function that is a member can be colloquially called a method.
class Foo
{
int bar;
void baz() {};
};

bar is a member variable, baz is a member function
>>
File: a90.png (24KB, 200x200px) Image search: [Google]
a90.png
24KB, 200x200px
>>60882438
It does though, #define class union defines a class union. What is so difficult to understand about this?
>>
JESUS CHRIST PYTHON SUCKS SO MUCH
>>
>>60882372
I don't care. Ask about those thins on >>>/g/wdg/

>>60882469
>a90.png
>>>/r/abbit/
>>
>>60882469

#define macros are simply text substitution.
You're stating that all instances of the string "class" will be substituted with "union" before the file gets compiled.
>>
File: 333.jpg (50KB, 547x471px) Image search: [Google]
333.jpg
50KB, 547x471px
I love coding memes using object oriented coding concepts with javascript, it's a nice way to relax after a long day of playing video games and working on web development. I'm a great coder my favorite meme is pepe the frog hes so goofy and random! xD!
>>
>>60882477
enjoy paying an exorbitant amount of money for a meme degree that has you using a silly language like python
>>
>>60882469
is this fucking bait? I literally used C for all of a few days and even I understand that #define is a preprocessor method that just replaces text.
>>
>>60882503
it's bait
>>
>>60882488
Welp, you've defeated my capacity for trolling.
I guess I could come up with some convoluted explanation as to why that's horseshit (except it actually isn't) but I'm not really feeling it anymore.
>>
>>60882490
btw i posted that from my windows 10 gaming laptop on internet explorer. I'm posting this from my iphone7
>>
>>60882498
>meme
Use >>>/v/

>>60882520
>Welp
>""trolling""
Try >>>/v/ and >>/b/
>>
>>60882482
what does game ui have to do with web design?
>>
File: 11179217784344.jpg (19KB, 480x360px) Image search: [Google]
11179217784344.jpg
19KB, 480x360px
>>60882458
>>60882459
>>60882467

All right, let's try this again

This initialises a member function called y()
x::y() {

}


What does this do differently? Initialise it in the constructor? Does that mean you can prototype member functions IN a constructor?
x::x() : y() {

}
>>
>>60882274
use something reasonable like qt or whatever fucking turbo faggot
>>
>>60882569
>incorrect linking
Use >>>/r/ibbit/

>>60882576
>game
>web """design"""
Fuck off to >>>/v/ and >>>/g/wdg/
>>
>>60882274
even hand-rolling it with opengl would have worked if you didn't suck
>>
>>60882582
In the latter case, y can't be a member function, it has to be a member variable. The member variable is then initialized by calling its constructor.
>>
>>60882594
what are some video games that use qt for ui?

>>60882597
is this guy meming?

>>60882613
is wasting so much time doing it from scratch really reasonable?
>>
>>60882636
>meming
Everything in your post reeks of reddit.
Seriously: piss off. Your kind is not welcome here.
>>>/r/abbit/
>>
>>60882636
>what are some video games that use qt for ui?
https://wiki.qt.io/Qt_Based_Games

>is wasting so much time doing it from scratch really reasonable?
probably not at your skill level
>>
>>60882582

First defines the implementation for a member function called y.
class x {
void y();
}

...

x::y() {

}

...

x.y();


Second initializes the contents of a member variable.
class Y {
// Definition of class y
};

class x {
Y y;
};

x::x() : y() {

};

x myx; // the object myx contains a Y object named y, which has been initialized to the default value

Second might also be initializing a base object.
>>
>>60882636
>video games
>meming
Use >>>/v/
>>
>>60882617
>In the latter case, y can't be a member function, it has to be a member variable. The member variable is then initialized by calling its constructor.

You've completely lost me now, how the fuck does a member variable have a constructor?
>>
>>60882274
>electron javascript html/css
Not programming related.
>>>/g/wdg/
>>
File: gottet.png (27KB, 403x528px) Image search: [Google]
gottet.png
27KB, 403x528px
>>60882643
what kind am I?

>>60882650
>https://wiki.qt.io/Qt_Based_Games
but these games are a joke. I'm talking something much more complex ui-wise here

>probably not at your skill level
did you just assume my skill level?

>>60882678
isn't javascript a programming language?
>>
>>60882666

Objects can contain other objects as member variables.
>>
>>60882683
>javascript
Not programming related.
>>>/g/wdg/
>>
>>60882666
In C++, all types have constructors. Even ints have constructors. Specifically, most types, unless explicitly declared otherwise, have two constructors: a default empty constructor, which allocates the object, and, if it's a compound type, calls the empty constructors of its members; and a default copy constructor, which allocates the object and byte-copies the parameter over it. So for example, int i would call int's default constructor, which just allocates the int, whereas int i(7) would call the copy constructor, which allocates i and copies 7 over it.
>>
>>60882636
Pretty sure it's a meme bot.
>>
>>60882683
>what kind am I?
The retarded redditor kind. Piss off.
>>>/r/abbit/
>>
>>60882714
>meme
Use >>>/v/
>>
>>60882730
>being this dedicated to shitposting
kys desu senpai youre a cuck
>>
>>60882764
>kys desu senpai youre a cuck
Use >>>/b/
>>
>>60882694
okay, let's say I'm gonna write C++ and compile it with emscripten

>>60882715
reddit is pretty cool
>>
>>60882651
>Second initializes the contents of a member variable.
You mean object right? It's initialising the the y object in the x class, right? So when it's initialising the contents of the y object it's initialising the contents of its constructor

Am I getting this right?
>>
>>60882777
wow I got the lucky triple
>>
@60882777
>reddit is pretty cool
Are we being raided by redditors like you today?
Seriously: piss off. Your kind is not welcome here.
>>>/r/abbit/
>>
>>60882790
this link just sends me to the requests board
>>
>>60882777
>>60882787
>>>/b/
>>
>>60882790
>>60882799

this is just witless spam now, moderators need to do their job
>>
>>60882786

>You mean object right?
Yes, that's right. C++ does not strongly distinguish between primitive types like int, char, bool etc. and user-defined types declared with class or struct.
class Foo {
int bar;
Object baz;
};

Foo foo;

bar and baz are both member variables of the object foo.

In the second example, you are calling the constructor of the variable y as part of the process of constructing myx.
>>
>>60882239
you have a class called x.
You want to describe what is happening when you initialize x.

It is very clear once you make the context.

class x {
private:
int y;
int z;
public:
x();
};

x::x() :
y(1),
z(2)
{
}

Here the y and z values are initialized to 1 and 2.
x::x(int a, int b) :
y(a),
z(b)
{
}

Could be another initialization where you give two inputs.
You can even combine this like
x::x() : 
x(1,2)
{
}
>>
>>60882274
Do you really need crossplatform support senpai?

Qt is powerful https://showroom.qt.io/, Electron is idd kinda meh but it seems to be a good option to get crossplatform ui up and running fast, even more so if you know css/js. What do you want to make a ui for, anyway?
>>
>>60882905
>Electron
>css/js
Try using >>>/g/wdg/
>>
>>60882905
>Do you really need crossplatform support senpai?
yes

>What do you want to make a ui for, anyway?
a game with complex ui. basically a (no)life simulator that lets you do fun stuff like post on the shittiest imageboard in existence
>>
>>60882841
>moderators
>on /g/
>in a fucking /dpt/
oh sweet summer child
>>
>>60882860
So if you're initialising the contents of baz's constructor, why not just do it like

Object::baz(){

}

wouldn't it be the exact same thing

Foo::Foo() : baz(){

}
>>
>>60882947
>game
Use >>>/v/
>>
>>60883070
The real power comes along when you're doing something like
Foo::Foo(Object _baz) : baz(_baz) {}

Think of the above code similar to
Foo::Foo(Object _baz)
{
baz = _baz;
}

In fact, I don't even know what the difference is. Can anyone explain that?
>>
>>60883070

No, Object::baz() is defining what it means to do the method baz for an Object. In other words, it's defining what
foo.baz.baz(); will do.
>>60883141

In the second example baz will get default constructed, and then copy-assigned to.
>>
>>60882947
sounds cool, anon. Where can i keep track of your progress on this game?
>>
>>60883152
Let me rephrase

Object::Object(){

}


wouldn't it do the exact same thing as assuming baz is of class Object

Foo::Foo() : baz(){

}
>>
>>60883232

Foo::Foo() will call Object::Object() to construct baz.
>>
>>60882089
kino
>>
File: 1329067070333.gif (2MB, 310x191px) Image search: [Google]
1329067070333.gif
2MB, 310x191px
What is the katana of programming languages?
>>
Is it possible to access a Vulkan vertex buffer in a CUDA kernel?
>>
>>60883306
Javascript
>>
>>60883306
Lisp: loved by weirdos but totally useless IRL.
>>
>>60883397
t. brainlet
>>
>>60883306
A functional language thats not hasklet
>>
>>60883306
C
>>
>>60883483
C is a dagger.
>>
>>60883483
>>60883501
C isn't even a weapon. All these other languages are expertly engineered weapons, and then some of them are shitty weapons pasted together out of smaller, better weapons. C, on the other hand, is when you fucking lift.
>>
> Posts on /g/ about some ridiculous lisp detail for hours on end
> Never finishes actually project / product
>>
Nice OP picture!
>>
File: 1492880879410.png (48KB, 924x560px) Image search: [Google]
1492880879410.png
48KB, 924x560px
>>60883306
Ruby
>japanese
>koders like to use japanese words like in code kata
>highly ineffective
>koders think they are the shit for using it
>hyped
>>
File: depressed2.jpg (17KB, 300x240px) Image search: [Google]
depressed2.jpg
17KB, 300x240px
>want to kill self
>too afraid of death
>write bad code instead
>mfw this is what it looks like when i type
wat do /dpt/
>>
File: typical_lisper.jpg (59KB, 480x458px) Image search: [Google]
typical_lisper.jpg
59KB, 480x458px
>>60883410
>>
File: 1453269046084.gif (2MB, 480x270px) Image search: [Google]
1453269046084.gif
2MB, 480x270px
>>60883559
Get over it. Put on a fake smile and live your life. Get a job if you don't have one. Deal with the bullshit like the rest of us.
>>
File: e9lA0oE.jpg (25KB, 308x350px) Image search: [Google]
e9lA0oE.jpg
25KB, 308x350px
>>60883581
>edgy the hordgeheg
>>
>>60883591
i can't though i'm too weak
i've tried gitting gud but i can't because i'm so weak i can't even get stronger
>>
>>60883543
Ruby is a good language with nothing but bad implementations.
>>
this is why i love reddit so much

https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes_so_fast/
>>
I just realized that you can pattern match inside the function signature
struct ABC {
a: usize,
b: char,
c: f64,
}

fn print_b(&ABC {b, ..}: &ABC) {
println!("{}", b);
}

fn main() {
let abc = ABC {
a: 4, b: '$', c: 3.14,
};

print_b(&abc);
}

This prints $
>>
>>60883724
>
 println!("{}", b);

rust is a joke
>>
>>60883688
>It's a shame they didn't finish their kernel, but at least they got yes working at 10GiB/s.
slayer
>>
>>60883842
i think the kernel is ok, it's the server that is unfinished.
>>
typedef int e;
int er = 1;
for (e v; er;);
>>
>>60883921
soft kek
>>
>>60883905
Should telemetry servers be called self-servers?
>>
>>60883921
    constexpr auto _("tfw no gf");
for (;_;)
>>
File: 1448041267522.png (55KB, 800x1033px) Image search: [Google]
1448041267522.png
55KB, 800x1033px
>>60883986
Too real, m8, too real.
>>
I'm forced to work on some fucking dumb web project for my engineering school. Jesus fucking christ, I hate it.

I just wanna go back to my personnal projects, why do I have to put up with this shit.
>>
/dpt/ is it bad perplexing
programming practice to never exercise, never brush your teeth, never do your laundry, wipe your ass infrequently, shower maybe once a month, only shave when you shower, repeatedly switch between overeating for weeks and not eating at all for weeks, self harm with a serrated knife, and try to make it up to the people in your life for how disgusting you are by avoiding them at all costs?
>>
>>60884121
>>>/r9k/
>>
>>60884121
>is it bad perplexing
>programming practice
how the hell did the word perplexing make it in there
disregard that please
>>
>>60884121
that's pretty bad, i can't program that well when i'm too gross, i'll take a shower and i'll feel much better, and i try to keep myself well feed, well hydrated and well caffeinated while trying not to overeat, and i'll brush my teeth 1-2 times a day
>>
File: bdelloid.jpg (247KB, 665x450px) Image search: [Google]
bdelloid.jpg
247KB, 665x450px
>mfw this works

use packet::AsPacket;
use packet::ether;

let bytes = [0x00u8, 0x23, 0x69, 0x63, 0x59, 0xbe, 0xe4, 0xb3, 0x18, 0x26, 0x63, 0xa3, 0x08, 0x00];
let packet: ether::Packet<_> = bytes.as_packet().unwrap();

assert_eq!(packet.destination(), "00:23:69:63:59:be".parse().unwrap());
>>
>>60884226
why shouldn't it?
>>
>>60884226
Which library? Does it involve copying?
I was looking for a zero-copy network packet parsing/constructing library for Rust and all I've found is https://github.com/m-labs/smoltcp . It's great, but it's more like a full fledged network stack and I don't need 80% of it.
>>
>>60884277
>It's great, but it's more like a full fledged network stack and I don't need 80% of it.
so just take the modules you need? or include all of it and the compiler will remove the unused parts?
>>
>>60884243
Because I didn't think type inference would get that right because of how AsPacket is defined.

>>60884277
It's the `packet` crate, I'm making it, don't use the version from crates.io I only published one to take the name.

I'm working on documentation right now but made a small diversion to add AsPacket because it sounded like a good idea.

Packet parsing is zero copy, packet building can be zero copy, you just need to give the builder a static buffer.


use packet::buffer;
use packet::Builder;
use packet::ether;

let mut buffer = [0u8; 4096];
let packet = ether::Builder::with(buffer::Slice::new(&mut buffer))
.protocol(ether::Protocol::Ipv4)
.build();
>>
>>60884349
Actually, packet building is not zero copy, I just meant that you can use a static buffer instead of having to allocate a Vec<u8> every time.

Also missing a bunch of unwrap()/? from the builder because most methods can return errors in case the buffer has no more space or if the value is invalid, but you get the point.
>>
>>60884349
Nice, I'll look into it.
>>60884375
>I just meant that you can use a static buffer instead of having to allocate a Vec<u8> every time
Yeah, this is what I meant.
>>
>>60884390
Oh and another thing, right now it all depends on libstd, but once I'm done with documentation and implementing the protocols I need I'll work on optionally only depending on libcore, so it might not fit your usecase if you're doing embedded.
>>
>>60884349
Ugh, I see you don't have setters, only builders. That's unfortunate, there are possible use cases where it's enough to just swap MAC and IP addresses in the packet, set a flag, recalculate the checksum and send the packet back without any copying.
I mean, this is not a feature request, and I realize working with &muts isn't that straightforward, but consider the approach from https://lab.whitequark.org/notes/2016-12-13/abstracting-over-mutability-in-rust/ .
>>
>>60884521
No I understand, that's in the plans too, it's already designed to be like that, the getters on the various Packet types are all implemented on `Packet<B: AsRef<[u8]>>`, I just haven't had the time to add the setters on `Packet<B: AsMut<[u8]>>`.

I've been working on this for less than a week, give me time!
>>
>>60884579
Oh, I see, nice.
>>
>>60884677
Thinking about it, how would you go about checksum recalculation?

Make it explicit after you've changed what you wanted to or recalculating it internally on every change?
>>
#include <typeinfo>
class shiggy {
public:
void diggy() {
do { this; } while (false);
}
};
template <typename t> class i: public t {
public:
std::type_info the_worst_possible_class_name() {
return typeid(*this);
}
};
int main() {
i<shiggy>().diggy();
return 1;
}
>>
>>60884832
>: public t
u fokn wot

,m7
>>
>>60884855

what's not to understand?
>>
>>60884862
>template <typename t>
>:
>public
>t
>>
>>60884866

Yes? Aren't you familiar with CRTP?
>>
>>60884869
Not him but that's not CRTP. This would be CRTP:
template <typename Derived> public class Base {
// things
};
class Derived: public Base<Derived> {
// things
};
>>
wtf. I thought the javascript overloading is a meme
>>
>>60884888

Correct, but the template parameter being used in inheritance isn't anything special.
>>
>>60884926
Only in an awful language such as C++ could >>60884832 be allowed

>assertion that you can produce the subtype of any type
>>
>>60884803
Actually, I once had to write such a thing, and we ended up with this neat design that looked like this
class TcpHeader {
[..]
public:
class CRCWatcher{
CRCWatcher(TcpHeader& header) : _delta(0), _header(header) {}

~CRCWatcher() {
_header.crc += delta;
}

CRCWatcher set_dst(uint16_t dst) {
_header.set_dst(dst);
_delta += dst;//Possible some math here, I don't remember
return *this;
}
[...]
uint16_t _delta;
TcpHeader _header;
};
CRCWatcher watch_crc() {
return CRCWatcher(*this);
}
};

so, in the end, you could write stuff like
tcp_header.watch_crc().swap_src_dst().set_flag(ACK).set_seq(0);

And it would update the CRC automatically, in the destructor of the temporary CheckSumTracker object. Plus, since it tracks all the changes you make it knows the exact delta you need to change the CRC by, so you don't need to recalculate it for the entire packet.

I can't say how hard it would be to implement it in Rust, but I guess it shouldn't be that hard.
>>
>>60884926
>>60884955
Well, I mean other than that type itself and in C++'s subtyping system, which is impossible.
In certain kinds of systems it would be possible.
>>
>>60884955

I find it quite useful to inherit from template parameters.
Why shouldn't I be allowed to do that?
>>
>>60884897
function print_with_type(val) {
console.log(val + ": " + typeof(val));
}
print_with_type([] + []);
print_with_type({} + []);
print_with_type([] + {});
print_with_type({} + {});
>>
>>60884965
How did you deal with the fact TCP and UDP checksums depend on a pseudo-header based on the IPv4 or IPv6 header?

My biggest concern with the automagical checksum recalculation is that if you set multiple things you're going to recalculate the checksum a bunch of times for nothing.

But yeah, just the fact you need the IPv4 or IPv6 header kind of makes the automagical point moot.
>>
>>60884994
class Virtual {
virtual void func();
}



i<Virtual>
>>
>>60885023
For the recalculation I meant in my case, wrapping the setters inside a checksum thingy would kind of defeat the point of how the traits are defined and implemented.
>>
>>60885056

Still not seeing the problem.
>>
>>60884897
does make sense actually
>>
>>60885056
I see no problems there. A good compiler should refuse to instantiate it.
>>
>>60885084

Why would it?
>>
>>60882136
Huh, I was thinking of doing the same.
>>
>>60885105
You can not instantiate virtual class
>>
>>60885023
IIRC we pass a reference to an IP header to TCP/UDP checksum recalculation method.
>if you set multiple things you're going to recalculate the checksum a bunch of times for nothing.
Full checksum recalculation shouldn't be automatical, you only need valid checksum after you're finished with the packet. And when you modify an existing packet with a valid checksum you can do it in a controlled fashion so you can track the delta and then apply this delta to CRC without recalculating the checksum, as I've shown.
>>60885069
No, this approach is only for modifying an existing package you know have a valid checksum. You should also have the traditional setter in case you create a packet from a scratch and a full checksum recalculation method which takes an ip(v6) header and which should be called manually after you're done with creating the packet.
>>
>>60885123

That's not a pure virtual function. It's not an abstract class.
>>
>>60882265
>This is giving me 4.
Because you're a fucking idiot.
>>
>>60885084
Just don't pretend C++ templates are any better than scoped, limited macros.
>>
>>60885136
Not him but it was meant to be, whoops.
>>
>>60885056
This is a pretty valid paradigm.
class UIObject {
private:
Window& parent;
public:
UIObject(Window&);
virtual bool update();
virtual void draw();
virtual void dispose();
};
template <typename T> class Suicidal: public T {
virtual bool update() {
T::update();
T::dispose();
return false;
}
};
template <typename T> class Critical: public T {
virtual void dispose() {
parent.dispose();
}
};
int main() {
Window theWindow("i was only just born");
Critical<Suicidal<UIObject> > babyKiller(theWindow);
while (theWindow.update());
return 0;
}
>>
>>60885147

Then that's fine, the compiler refuses to instantiate it.
>>
>>60885128 (You)
Now I think of it, it might be possible to track the fact the packet is well-formed and has a valid checksum in the type by using some empty types and phantom data. So, for example, traditional setter would be available only if the packet isn't well-formed, the checksum tracker would be available only for well-formed packets, and the checksum calculation method would have a version that consumes a non-well-formed packet and produce a well-formed one.
>>
>>60885156
oops, parent should be protected and should be accessed with T::parent in Critical, and also both Suicidal::update and Critical::dispose should be public
>>
>>60885156
>>60885168
The problem is that it's bad code and only works in very limited cases.
You're basically lying by saying "for all types T" when actually it only works for some types T.

Concepts might fix this, might not.
>>
>>60885187
>>>60885156
>>>60885168
>The problem is that it's bad code and only works in very limited cases.
>You're basically lying by saying "for all types T" when actually it only works for some types T.
>Concepts might fix this, might not.
That's what C++ templates are.
>>
Can a JavaScript wizard explain (0, eval)("this") to me?
I know what it does, and I know when to use it, but I don't understand how the first part even works.
>>
>>60885187

Eh, I prefer templates that just werk rather than having to program against a pure abstract base class/interface.
>>
File: 1352741966698.jpg (3KB, 127x126px) Image search: [Google]
1352741966698.jpg
3KB, 127x126px
why cant visual studio:
1. give the option to write the functions of all pure virtual functions when inheriting?
2. when implementing a function in the class file to write the whole function WITH all parameters
3. when calling a function with . or -> to write not just the name but help with the parameters as well
3. like not just paint everything red and give actually useful help?
4. be actually not a useless piece of shit
somehow eclipse manages all that with no problems
>>
>>60885187
so in the case of >>60885156, it only works in the very specific case that the type has an overloadable function of that type and name

a pseudo code example of something more sane:

template <typename T>
where {
virtual bool T::update();
virtual void T::dispose();
}
class Suicidal : public T {
}


or using pseudocode for something like concepts

concept Object<T> {
virtual bool T::update();
virtual void T::draw();
virtual void T::dispose();
};

template <Object T>
class Suicidal : public T {


>>60885218
Yes, I'm saying templates are as dirty as macros and yours is an example. Not all code is like this, because 1) you can have generic code that works for all T and 2) you can have constraints like i discuss above
>>
>>60885254

what's the difference between a concept and an interface?
>>
aren't lambdas pretty much slower then regular code? why would I ever use them?
>>
>>60885240
I mean like >>60885254
I don't really care for subtyping myself though

>>60885291
https://stackoverflow.com/questions/8122109/difference-between-oop-interfaces-and-fp-type-classes
>>
>>60885187
Agree, a better way is probably something like this
#include <map>
#include <string>
class Trait;
typedef std::map<std::string, Trait*> Composed;
class Trait {
private:
Composed& parent;
protected:
Trait(Composed&);
public:
virtual void* call() = 0;
};
>>
>>60885314

in what language?
>>
>>60882265
>being this fucking stupid
>ISHYGDDT
>>
>>60885314
Lambdas aren't (or shouldn't be on any decent compiler) any slower than regular functions.
Higher order functions might be slower than the inlined equivalent.
>>
Is this idiomatic javascript?

function order(words)
{
var idx = function(a, b) {
var find = function(str) {
for (var i = 0; i < str.length; i++)
if (str[i] >= '0' && str[i] <= '9')
return parseInt(str[i] - '0');
return 0;
};
return find(a) - find(b);
};
return words.split(" ").sort(idx).join(" ");
}
>>
Why do C libraries generally handle configurations with macros at compile time instead of having variables that you could modify at runtime?
I can understand it with Common Lisp where writing macros is actually pleasant and you can dynamically load and compile lisp files really easily.
Other languages usually just have runtime variables, propably because most of them aren't compiled or they don't support macros.
I doubt it's because of performance because having few conditional branches isn't that big of deal even if your loop runs million times per second.
>>
>>60885314
No, they're faster than C-style function pointer because they're implemented as methods of a class and as a result, can be inlined if passed via templates.
>>
>>60885332
java, c#, c++ and other comfy langs
>>60885341
but aren't lambdas an abstraction?
>>
>>60885172
That sounds hellish to use outside of small examples tho, I think I have in mind a decent enough solution.
>>
>>60885361
Lambdas are simply a form of syntax for creating or describing functions as expressions.
>>
>>60885341
They shouldn't be slower, but they probably use more memory due to closures.
>>
>>60885361

Lambdas in Java are merely syntax sugar for anonymous classes. They work the same and they work as fast.

In C++ Lambdas are pretty fast. If they can be inlined then they often work just as fast as regular functions.
>>
Why do retards type (you) in their posts?
Makes it harder to search for posts that actually references posts you have made. Fucking retards should banned.
>>
>>60885358

Lambdas in C++ confuse me a little. You can copy construct them, right? And pass them to other functions?
>>
>>60885380
Only if you actually capture stuff, and even then, that's something regular functions don't do
>>
>>60885363
Why? You can have type aliases for both well-formed and non-well-formed headers, and most of the implementation can be shared.
But anyway, I'm interested to see that you'll come up with.
>>
>>60885385
c++98 doesn't have lambdas. what i'm was do an use?
>>
>>60885424
>what i'm was do an use?
wat
>>
File: mlady.png (207KB, 474x432px) Image search: [Google]
mlady.png
207KB, 474x432px
>>60885393 (Me)
>>
>>60885404
>You can copy construct them, right?
I'm not sure.
>And pass them to other functions?
Yes, there are actually at least three ways to do it. You can pass them as a funtion pointer, you can pass them as a std::function (which is basically a function pointer) and you can pass them as a template parameter with like
template <typename T>
int call_f_on_10(F&& f) {
return f(10);
}

In the last case, the class of lambda is known at the compile time so the lambda itself will be inlined. You can see most of the STL implemented this way, this is why std::sort is faster than qsort.
>>
>>60885412
The issue is whether the packet is well-formed or not ends up being known at runtime, at least in the case of parsing. In the case of setting things on a `Packet` it could again depend on the contents of the packet, setting the same value wouldn't change the checksum, so you'd have to end up with an `enum { Correct(Packet), Invalid(InvalidPacket) }` and whatnot.

And TCP and UDP depend on the IPv{4,6} header too, so that makes creating a common abstraction for that impossible.
>>
>>60885379
but they're a type of abstraction though? and they're slower then functions.
>>60885385
>as fast
sounds unlikely.
>>
>>60885474

It's the truth. C++ loves muh zero cost abstractions remember.
>>
>>60885474
>compiles to anonymous class
>somehow slower than using anonymous class explicitly
>being this fucking stupid
>>
>>60882498
Agree
>>
>>60885474
They aren't a "type of abstraction", they're just a different way of declaring a function.
That they've been added so late in the design of the language might mean that there are various inconsistencies, but you would hope that:

int myFunc(int, char**) { ... }

and

const auto myFunc = [](int, char**) -> int { ... }

compile to the same code
>>
>>60885187
>Concepts might fix this, might not.
Knowing C++, they'll probably fuck it up like always.
>>
>>60885464
I mean something like
struct Valid;
struct Invalid;

struct Packet<T, Mut> {
}

impl<Mut> Packet<Valid, Mut>
{
pub fn from_bytes(&[u8]) -> Result<Packet<Valid>>;
}

impl<Mut> Packet<Invalid, Mut>
{
pub fn create_in_bytes(&mut [u8]) -> Result<Packet<Invalid>>;
pub fn validate_packet(self) -> Result<Packet<Valid>>;
}

impl Packet<Invalid, Mutable>
{
pub fn set_seq(&mut self, u32);
}

impl Packet<Valid, Mutable>
{
pub fn watch_crc(self) -> ChecksumWatcher;
}
>>
>>60885463
I'll have to go look this shit up. Polymorphism in C++ is always dangerous so I'm curious how they implemented this all.
>>
>>60885541
Are you suggesting C++ can get worse?
>>
>>60885493
so? lambdas aren't faster because of this.
>>60885497
does it though? it sounds like a very high level abstraction.
>>60885539
how can it be the same as a function if it's not one?
>>
>>60885558
Yes.
>>
>>60885539

I think there'll be some extra chaff because of inheritance or sth, but calling code can discard that and just inline the function or the function pointer, same as if it were a standard function.
>>
>>60885558
The existence of Haskell is evidence that C++ can get worse.
>>
>tfw to sad to learn new tech
>>
>>60885221
come on you fp aspies
answer that
>>
>>60885595
How is the existence of something equally as shit as sepples evidence for the ability of sepples to become even worse?
>>
File: what.jpg (9KB, 667x69px) Image search: [Google]
what.jpg
9KB, 667x69px
>>60885628
JavaScript isn't FP

Explain this
>>
File: 1478163441503.png (418KB, 600x802px) Image search: [Google]
1478163441503.png
418KB, 600x802px
>>60885628
>>60885642
What is a "FP" though?
>>
File: 1494509491140.jpg (99KB, 434x447px) Image search: [Google]
1494509491140.jpg
99KB, 434x447px
>>60885642
>>60885628
>>
>>60885638
Because Haskell is worse than C++. But, if C++ were very heavily modified, it's hypothetically possible for it to become Haskell. It would be worse for the change. Therefore, it's possible for C++ to get worse.

Also, fuck you, Haskell is great.
>>
ITT we post the edgiest of the edgiest statements about programming, I'll start

>"C++ is a shit language mkay"
>>
>>60885642

Empty or whitespace strings are weakly false, while all other strings are weakly true.
>>
>>60885664
>Because Haskell is worse than C++
They're basically the same language as far as any non-retarded person is concerned.
>Haskell is great
No language which has basically a Lisp-tier type system can be "great".
>>
>>60885670
>C++ is a shit language mkay
So you mean true statements?
>>
>>60885670
That's not edgy in the slightest. Do you even know what edgy means?
>>
>>60885670
>using haskell
>not using a lisp dialect you wrote that compiles for a computer you designed by manually sculpting a dirt mold and using it to cast molten silicon you scavenged from the sea floor while sailing over international waters on a ship you built from trees you grew in your backyard from the seeds of apples you ate
>>
>>60885687
>-tier
>>
File: meafterdpt.png (659KB, 926x605px) Image search: [Google]
meafterdpt.png
659KB, 926x605px
>>60885695
>>60885701
>>
Anyone here familiar with cmake know how to tell Find_Path() where to search
for a file?
Or what's the default directory on Windows 10?
>>
>>60885221
This is the comma operator, it works the exact same fucking way in C, each expression is evaluated left to right and the rightmost becomes the exposed value of the expression.
>>
>>60885720
Yes, "tiers" are frequently used for ranking. And being "lisp-tier" would be a very low rank.
>>
>>60885718
Why is she smiling like that?
>>
>>60885743
>-tier
>>
File: 1494624067541.png (294KB, 562x562px) Image search: [Google]
1494624067541.png
294KB, 562x562px
>>60885763
Want to talk about it?
>>
File: 1462140780096.png (215KB, 500x375px) Image search: [Google]
1462140780096.png
215KB, 500x375px
>>60885743
>>
File: 1496157561088.jpg (181KB, 714x702px) Image search: [Google]
1496157561088.jpg
181KB, 714x702px
__device__ void tensor_op_16_16_16(
float *d, half *a, half *b, float *c)
{
wmma::fragment<matrix_a, …> Amat;
wmma::fragment<matrix_b, …> Bmat;
wmma::fragment<matrix_c, …> Cmat;
wmma::load_matrix_sync(Amat, a, 16);
wmma::load_matrix_sync(Bmat, b, 16);
wmma::fill_fragment(Cmat, 0.0f);
wmma::mma_sync(Cmat, Amat, Bmat, Cmat);
wmma::store_matrix_sync(d, Cmat, 16,
wmma::row_major);
}
>>
>ribbit the reddit frog
I hope you die in a car accident.
>>
>>60885771
dont talk, just succ
>>
File: progress.MOV.webm (884KB, 1280x720px) Image search: [Google]
progress.MOV.webm
884KB, 1280x720px
>>60882065
>What are you working on, /g/?
I work on memes.
Progress is good so far.
>>
>>60885787
dumb frogposter
>>
>>60885818
That's cool man. Nice work!
>>
File: wedidit.MOV.webm (572KB, 1280x720px) Image search: [Google]
wedidit.MOV.webm
572KB, 1280x720px
>>60885875
Will have some milk plexiglass infront, that the light gets a little bit spread and will be seen better outside (hopefully). webm related.
Just was too lazy to put it back on for a little braging, kek.
>>
>>60885818
>>60885911
nice clock, ahmed
>>
>>60885911
wait so what is this? cause its not a clock. since you cant display 10,11,or 12 on the first cutout.
>>
>>60885221
>I know when to use it
I really hope you mean "never"
>>
>>60885911
Looking at both thumbnails the glass does make a huge improvement, I'd say.
>>
>>60882065
>>60882065
>>60882065

im trying to figure this out
>>60879832
any idea how i can go about this?
any help is appreciated
>>
>>60885980
it will be a countdown timer.
Me and my friends have an event every year in my garden and we need a countdown this year, so I am building a bigger one.
Would be awesome two have four numbers, so I could use it as a clock afterwards, but it didnt fit onto that wood and I was to lazy buying a new one, kek.
>>
>>60882136
For what purpose
>>
>he need static typing
>>
I'm writing a game in haskell in which nearly every function takes a data structure, and a lot return an updated version of the data structure.

I thought this might be a good application for the State monad. I also use IO a little bit, but not much.

I tried setting the two up, and they seem to simplify updating the state, but make accessing the state more complicated, and forcing do notation?

StateT seems to let me use slighty nicer notation than State, but then everything is polluted with IO which I don't want of course. Should I just stick to passing around my state?

Examples:

showdown :: Game -> Game
showdown game = foldl distributePot results (results^.bets.pots)
where results = getHandValue game


showdown :: State Game ()
showdown = do
getHandValue
pots' <- (^.bets.pots) <$> get
mapM_ distributePot pots'


showdown :: StateT Game IO ()
showdown = do
getHandValue
pots' <- use (bets.pots)
mapM_ distributePot pots'


I don't really know what I'm doing in regards to monads/monad transformers
>>
>>60886046
what kind of event? doomsday?
>>
>>60886095
>doomsday every year
>>
>>60886075
You could use MTL

MonadState Game m => m ()
>>
As an example of the kind of problem I'm having in C++:
#include <string>
#include <stdio.h>
class Foo {
private:
std::string foo;
public:
Foo();
};
Foo::Foo()
{
foo = "bar";
}

Foo bar = malloc(sizeof(Foo));
*bar = Foo();
free(bar);

Would the free call the destructor on the class bar points to, or would the string in the class that bar points to be lost?
>>
File: IMG_1826.jpg (425KB, 3000x2000px) Image search: [Google]
IMG_1826.jpg
425KB, 3000x2000px
>>60886095
we play polo.
But I wont tell how exactly, cause I am a faggot and it will be way too easy to stalk some of muh frens, as I ujst looked.
And as one round will be under 10 minutes long that is more than enough (hopefully kek)
>>
>>60886075
I think you should stick with State and StateT IO when you need iO. Also check out the ST monad.
>>
>>60886069
Dynamic typing sucks and only a few languages do it right (basically Erlang and Lisp).
>>
>>60886143
You should probably use new in c++, I think if you use malloc the correct constructors/deconstructors might not get called
>>
>>60886143

First of all, your program wouldn't compile. You need a Foo pointer rather than a Foo.
Foo* bar = malloc(sizeof(Foo));

That still won't compile. C++, unlike C, disallows implicit conversions from void*. So you would have to write this.
Foo* bar = (Foo*) malloc(sizeof(Foo));

That won't call the constructor, and free won't call the destructor. It is preferred to use new and delete which will call ctors and dtors.
Modern C++ guidelines would have you use make_unique rather than new and delete, but that can wait until you're comfortable with new and delete.
>>
File: 1497037090554.jpg (295KB, 884x902px) Image search: [Google]
1497037090554.jpg
295KB, 884x902px
>>60886171
>IO
>>
Learning Clojure in order to become an enterprise meme master.
>>
>>60886263
thats a cute asuka
>>
>>60886143
You shouldn't try to write C++ like you are writing C.
>>
>>60886398
But muh orthodox c++!
https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b

sepples people are fucking disgusting.
>>
>>60886297
>meme
Just stop posting.
>>
>>60885804

>pepe
>reddit frog

Just KYS, newfag.
>>
>>60886424
Learning Clojure in order to become the next Hitler.
Better?
>>
>KYS
>ribbit spacing
>ribbit the reddit frog
I hope you die in a car accident.
>>
File: braveclojure.png (104KB, 900x900px) Image search: [Google]
braveclojure.png
104KB, 900x900px
>>60886297
http://www.braveclojure.com/
>>
>>60886436
>learning sjw language in hopes of becoming hitler
>>>/b/
>>
>>60886420

Classic C++ was fucking terrible though. RAII, Templates and STL are the best reason to use C++ and they didn't mature until C++11.
>>
>>60886436
Yes.
>>
>>60886467
I've already read that book. I'm currently doing basic programming challenges.
>>
>>60886143
Malloc and free only deal with memory allocation, not with object construction/destruction.

A summary:
#include <string>
#include <memory>

class Foo
{
public:
Foo(std::string foo) : m_foo(foo) {}
private:
std::string m_foo;
};

int main()
{
// C style -> cannot construct this way
Foo *c = (Foo*)malloc(sizeof(Foo));
free(c);
// C++98 -> raw new/delete
Foo *c98 = new Foo("c++98");
delete c98;
// C++11 -> RAII pointers (scope lifetime)
std::unique_ptr<Foo> c11sp = std::make_unique<Foo>("c++11");
// Or just use stack allocation
Foo c11sa = { "c++1z" };
return 0;
}
>>
Sepples tards are more or at least as obnoxious as js code artisans.
>>
>>60886502

>= {}
I hate you.
>>
File: yoba.jpg (15KB, 300x300px) Image search: [Google]
yoba.jpg
15KB, 300x300px
Going to job interview as junior C# / .NET programmer tomorrow. I'm so fucking nervous.

I'm afraid of being too nervous and not being able to code even simple stuff.

I know general OOP, interfaces, classes, abstract classes, finalizers, IDisposable and Dispose method, inheritance, everything related to it. I know all needed theory about incapsulation, polymorphism etc.

I am able to code large programs using google and stackoverflow, but im not sure if i can code independently yet
>>
new thread when? :3
>>
>>60886529
>I am able to code large programs using google and stackoverflow, but im not sure if i can code independently yet
That's why you're a junior.
>>
File: 1452791207562.jpg (112KB, 414x750px) Image search: [Google]
1452791207562.jpg
112KB, 414x750px
>>60886531
*shoots you in the head*

pssssh never kid
>>
>>60886529
>i know a bunch of syntax pls gibe job

fuck off codemonkey
>>
NEW THREAD!

>>60886597
>>60886597
>>
>>60886529

>scarred of M$ .shit net

kys
>>
File: 14948636621360.png (205KB, 512x472px) Image search: [Google]
14948636621360.png
205KB, 512x472px
>>60886580

Why so harsh you faggot? it's not only about syntax. I know every detail of how CLR works, know OOP and language.

Its about experience in how to properly use tools provided by platform, thus needing help of Google or stackoverflow. You can't just come up with perfect solution instantly.
>>
>>60886529
Pajeet already took your job
>>
>>60886615
You just said you're unable to do anything non-trivial without copy pasting all of your code from the internet.
Why would I hire you if you can't even code your way out of a wet paper bag?
This isn't even an issue of consulting documentation, you don't know how to program, period.
>>
>>60886615
No need to respond to him as he's obviously just a jealous NEET.
>>
>>60886634

I didn't say i can't code at all. What i meant is that i can't come up with ideas of how to properly implement some feature without looking at examples.

After i look at examples i'm able to reconstruct them in my own way/code + add something to it
>>
File: 1496865149218.jpg (46KB, 585x864px) Image search: [Google]
1496865149218.jpg
46KB, 585x864px
>>60886615
>OOP
It's shit though.
>>
>>60886669
>i can't write code without copying it from the internet

keep digging yourself into a pit, I got all day
>>
>>60886700
t. brainlet
>>
>>60886702
> i was born being able to write code without using internet

You are a fag and shitposter
>>
>>60886718
>i don't know how to program

see ya next thread~
>>
File: 1494178409386.png (610KB, 666x720px) Image search: [Google]
1494178409386.png
610KB, 666x720px
>>60886615
>You can't just come up with perfect solution instantly.
I can do that almost always. Programming is so trivial a nigger could do it.
>>
File: whatamIreading.jpg (85KB, 417x498px) Image search: [Google]
whatamIreading.jpg
85KB, 417x498px
>looking at old code I wrote and not understanding why it works
Thread posts: 321
Thread images: 42


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