[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: 354
Thread images: 34

File: dpt_flat.png (102KB, 1000x1071px) Image search: [Google]
dpt_flat.png
102KB, 1000x1071px
Old thread: >>60349876

Other thread deleted because of stupid Norwegian shit, I assume.
What are you working on, /g/?
>>
File: type gibberish.png (17KB, 810x219px) Image search: [Google]
type gibberish.png
17KB, 810x219px
typechecking
>>
>>60361465
This is the one true thread
>>60361476
Post the code.
>>
>>60361486
That is code
>>
Writing unsafe code that triggers type theorists

use std::mem::transmute;
use std::mem::size_of;

pub fn reverse_bits(b: u8) -> u8 {
((b & 0x01) << 7) | ((b & 0x02) << 5) |
((b & 0x04) << 3) | ((b & 0x08) << 1) |
((b & 0x10) >> 1) | ((b & 0x20) >> 3) |
((b & 0x40) >> 5) | ((b & 0x80) >> 7)
}

pub fn bit_reverse<A>(value: A) -> A {
unsafe {
let ptr = transmute::<&A, *mut u8>(&value);
for i in 0..size_of::<A>() {
let j = i as isize;
*ptr.offset(j) = reverse_bits(*ptr.offset(j));
}
}
value
}
>>
>>60361496
I mean something I can copy and paste.
>>
File: dlang_chan.jpg (139KB, 470x545px) Image search: [Google]
dlang_chan.jpg
139KB, 470x545px
Threadly reminder that dlang-chan is not dead; she's going to have her GC tumor removed (eventually); and she's super duper cute and easy to prototype in! Say something nice about her, /dpt/!
>>
>>60361507
what for?
>>
>>60361516
I'll save it for later and maybe borrow some syntax.
>>
>>60361525
don't be a dick
>>
>>60361525
>He doesn't borrow lifetimes instead
>>
File: 1457728085180.png (307KB, 500x500px) Image search: [Google]
1457728085180.png
307KB, 500x500px
>>60361532
>>
>>60361506
I'm genuinely amazed that anyone defends languages in which you can write a function of type (forall a. a -> a) that is not the identity function.
>>
>>60361506
Everytime you write an unsafe code, a kitten dies
>>
>>60361618
Every time you write unsafe code, a windows pc gets owned.
>>
>>60361592
That would be most languages really, but not all of them are retarded enough to let you do it without being extremely roundabout.
>>
>>60361673
Then most languages are terrible and shouldn't be defended.
>>
How the fuck am I supposed to concat two strings in CL?
>>
>>60361688
I agree, but obviously something which has such a function in the standard library is worse than something which lets you define it if you prove a contradiction.
>>
>>60361713
(concatenate 'string string0 string1)
or
(string-append string0 string1)
>>
>>60361713
string1~string2
>>
Explain to me why i shouldn't write K&R style function signatures to save horizonal screen space?
>>
>>60361949
Because horizonal line space isn't a concern?
>>
>>60361949
You should write K&R style because it's A E S T H E T I C, but line length isn't a concern.
>>
File: welcome.jpg (233KB, 1920x1080px) Image search: [Google]
welcome.jpg
233KB, 1920x1080px
What's the best way to start learning Java for someone who already knows some Python and took a basic CS course?
>>
>>60362092
Read a book?
>>
>>60361465
>Other thread deleted because of stupid Norwegian shit,
HA HA HA HA HA
We should ban Norwegians at all.
>>
>>60362098

Which book(s) specifically would you recommend?
>>
>>60362117
There are many resources out there that will tell you, anon. Stop being lazy.
>>
>>60362117
You aren't determined if you have to ask.
Use your brain faggot.
>>
>>60361592
>>60361688

The only language feature that you really need to be able to do this is the ability to cast arbitrary pointer types to a byte pointer. As much as this might break a lot of safety for you, it's pretty damn useful if you are trying to serialize/de-serialize data associated with some arbitrary byte stream, like a file or a network socket. I don't think I'd be able to parse DNP3 traffic for my research code if I couldn't arbitrarily cast UINT8* to struct SomePacketHeader* and vice versa.
>>
@60362221
>I don't think I'd be able to
I agree.
>>
>>60362236
are you saying #GirlsWhoCode is a fake hashtag?
>>
File: context crap.png (10KB, 650x205px) Image search: [Google]
context crap.png
10KB, 650x205px
Does anyone know anything about COM on Windows?
I want to extend the Windows explorer context menu, adding an item that will have dynamic sub-menus and labels (depending on the selected file/files/folders), much like pic related. The big exception is that I only want this to show up when my application is running since this local service will have to query another local server.

MSDN says I need to implement a COM object but finding documentation for it is impossible, the word "COM" itself is expected to be ".com" on most search engines and anything I do find is all about calling methods on existing COM objects, which isn't helpful since I need to write my own.

I just want to write something that when it's running adds a sub-menu to the context menu, if anyone knows how to do this please guide me in the right direction, if I can avoid COM that'd be great, if not let me know where to look to implement what I need. I'm going insane with this.
>Windows
>>
>>60360878
>>60360750
Please respond.
>>
Is there anything like avyjump for vim? Preferrably without having to use any extensions.
>>
Looking for a way to print a string in hex that works in both Python 2 and 3.

These work in their respective version:

Python 2: print ( "DPT".encode ( "hex" ) )

Python 3: print ( bytes ( [ ord ( c ) for c in "DPT" ] ).hex ( ) )

Fucking Guido, man. Changes the behavior of built-in functions.
>>
>>60362092
there is an entire free course on the java website that will teach you the basics. it's also a good oop course in general.
>>
>>60362264
https://www.howtogeek.com/107965/how-to-add-any-application-shortcut-to-windows-explorers-context-menu/
>>
>>60362909
>good oop course
>good
>oop
what did he mean by this?
>>
>>60362931
Thanks but that only covers static items and persists even when the application isn't running, I need the menu item to only exist while the application is running, and only display actions it can perform (dynamic entries).

This shouldn't be difficult but the problem is finding the documentation.
>>
finally got my new computer!

i7
asus ddr 4 thing
gtx 1060ti something
8gigs ram ( lol almost fell for the 16gig meme)
and windows home ( fuck my inability to focus on a single learning curve )

that of course was before. also got an xbx one so not much gaming on the pc.

imma work on some woreframe shill whem i get it up. gonna hang out and read tol i get a headachem i expect a post or two.
>>
>>60363423
Not programming.
>>>/v/
>>
>>60363440
shut up henry
>>
>>60363464
om jk talk to your hearta content. have sone water and a snack.
>>
>>60361465
>what are you working on
Making a Firefox plugin that queries a convultional neural network that detects porn and blocks it.

Going to call it jewish tricks blocker
>>
File: shot0033.jpg (310KB, 1920x1080px) Image search: [Google]
shot0033.jpg
310KB, 1920x1080px
/dpt/-chan, daisuki~

Ask your much beloved programming literate anything (IAMA)

>>60361465
Thank you for using an anime image.
>>
File: 1453270719438.png (17KB, 180x200px) Image search: [Google]
1453270719438.png
17KB, 180x200px
>>60363887
Oyasuminasai, Akari-chan. Writing an HTML parser is harder than I thought. Any thoughts other than not being retarded?
>>
File: 6489.jpg (497KB, 2560x1440px) Image search: [Google]
6489.jpg
497KB, 2560x1440px
>>60363940
import html.parser
>>
I want progress report on akari-bbs
>>
File: 1492867950634.jpg (78KB, 1200x675px) Image search: [Google]
1492867950634.jpg
78KB, 1200x675px
>>60363986
B-But that doesn't help me at all!
>>
>>60364090
Which mongolian puppet show is that from?
>>
>>60363887
This question >>60362264
>>
File: 1451937605829.png (8KB, 493x402px) Image search: [Google]
1451937605829.png
8KB, 493x402px
>>60361465
apparently it's all the rage to write ransomware at the moment
I'm working on my own
and already have the shitpostings for /g/ ready so I only have to copy paste it afterwards
>>
>>60364140
WAIT
>>
>>60364156
I had same idea just for kicks and then put it all on github. Problem is I have no idea how delivery system would work... Encrypting /home folder should be easy enough without special permissions but rest. hmmm
>>
File: 1460339733190.jpg (313KB, 1280x720px) Image search: [Google]
1460339733190.jpg
313KB, 1280x720px
>>60364090
%opt

html_parser :> scope.
engage.
<- getargs. = html.
html >- parsehtml html. = result.
result >- terminal.
send 0.
halt.
>>
File: 1472515081905.png (5KB, 168x49px) Image search: [Google]
1472515081905.png
5KB, 168x49px
To the guy who was developing a VM with that Qt IDE or something, beat this.
>>
>>60362236

You may mock me, but the way the network packets are structured, there's not really any other way to properly serialize it. Hell, one of the weird things in it is that there's a CRC every 16 bytes, starting at the header immediately following the data link header. This CRC is allowed to be in the middle of a header or object field. So you have to split up the application payload, copy it into a contiguous array without the CRC fields, and then start pulling off headers one at a time, since the header to use next is dependent on what the last header is. It's completely impossible to encapsulate a packet within a single type definition. Perhaps you could do the whole thing without defining any types at all and just operating on bytes, but that would be even more annoying. Cast byte pointer to a packed struct pointer containing some miscellaneous object header, and it's easier to figure out what the hell you're doing.
>>
@60364274
I didn't even bother reading your post. Just letting you know.
>>
>>60364294

Fair enough. And I'm well convinced that you never have and never will parse a binary network protocol. You'd change your mind rather quickly about things like transmute and reinterpret_cast if you did.
>>
@60364319
Did I say you could reply to me?
>>
>>60364332

I do not require your permission to reply to you.
>>
@60364340
I didn't give you permission to reply to me.
All subhumans have to receive explicit permission before responding to anything I say.
>>
>>60364340
Stop responding to bait.
>>
>>60364332
>trying this hard on the net
just be yourself anon
>>
>>60364352
>just be yourself anon
What's that supposed to mean?
>>
>>60364349
Blow it out your ass.
>>
Hello I want to be an autist like the rest of you but i'm beginning to lose patience with it all.
How many of you use an IDE when doing C coding?
I've been using gcc and command prompts for the last month and frankly i'm sick of it, especially after using the C IDE for nios for uni. Would I be a pleb if I started using an IDE? Maybe I'm not as well suited to be as cool as you all are.
>>
@60364378
I don't recall giving your mentally ill kind permission to reply to my posts.
>>
>>60364362
i mean stop trying to be alpha on the net, we can already tell what you are, im sure you're likable enough without putting on acts for us lol
>>
File: 1490484678175.png (435KB, 720x720px) Image search: [Google]
1490484678175.png
435KB, 720x720px
>>60364388
Set up a build system. Nobody actually compiles shit by hand.
Even a plain makefile is more than enough.
>>
>>60364392

Excuse me as I reiterate myself:
https://www.youtube.com/watch?v=8U18EuNN2D0
>>
>>60364388
Yep create makefile and just bind command "make && ./a.out" to something like ctrl + b
and in make just put
all:
gcc **.c

You really dont need IDE for C, stdlib is small enough...
>>
>>60364403
Think about why that makes no sense.

@60364410
Right now. You have my permission.
>>
>>60364436
>>60364405
WOW this sounds very helpful.
Yes I hated having to retype the command every time I got a compiling error.
Thank you very much.
>>
>>60364442
I guess I only make sense to the intelligent
>>
File: sicpm.jpg (52KB, 528x640px) Image search: [Google]
sicpm.jpg
52KB, 528x640px
>>60364388
c is an obsolete programming language. it's technology from the past for the programming techniques of the past.
>>
>>60364442

https://www.youtube.com/watch?v=dnMpP-rpJjY
>>
>>60364463
What do you consider to be "intelligent"?
>>
>>60364471
>c is an obsolete programming language
For something to be obsolete, something has to make it obsolete.
Nothing makes C obsolete.
Therefore, C is not obsolete.
>>
>>60364471
haha yeah I tried reading that book, maybe I should try it again.
Are there any cooler languages I should be learning that you'd recommend?
>>
>>60364494
>Nothing makes C obsolete.
False.
>>
Alright, time to bother to go to sleep now.
>>
>>60364459
just note on **.c if you are using bash you have to enable globstar its recursive glob. So it will match all .c files in all child dirs
shopt -s globstar
>>
>>60364507
Do you care to name a language that obsoletes C?
If you say C++ or Rust, you clearly have no idea what you're talking about.
>>
>>60364494
>Nothing makes C obsolete.
sure, this is why C is no more used outside of kernel development.
>>
>>60364539

I suppose you are one of those who want to write device drivers in javascript or java?
>>
>>60364534
>Do you care to name a language that obsoletes C?
Take your previous statement which was "For something to be obsolete, something has to make it obsolete."
Then replace "something" with "C".
>>
>>60364539
You're fucking stupid. Never mind the fact that basically every important library is written in C.
>>
>>60364570
What is an "important library"?
>>
>>60364551
device drivers is mostly kernel development

>>60364570
modern libraries are not.
>>
>>60364583
Apparently all the ones that aren't written in C++.
>>
>>60364583
A library which is important.
For example, off the top of my head:
libcurl
libavcodec and friends (ffmpeg)
openssl
zlib
libjpg
libpng
libvpx
(Basically every image, music, and video codec library, if you're following the pattern)

>>60364597
Now what the hell is a "modern library"?
>>
>>60364647
But how do you determine if it's "important"? And what time frame is this valid in?
>>
>>60364647
I forgot some other big players from windowing:
SDL
GLFW

>>60364662
It's used by a lot of other pieces of software.
>And what time frame is this valid in?
Right now.
>>
>>60364662
Most if not all AAA game engines, crypto libs, web servers, video/audio codecs, operating systems are written in C. Entire internet works thanks to C. So thats important. But ofc jquery makes C obsolete according to you pajeets, or some rust/haskell lib noone will ever use in real world applications
>>
>>60364702
>AAA game engines
sepples
The others are true though.
>>
>>60364748
Yeah i noticed after i wrote that... I was thinking c++
>>
>>60364702
>AAA game engines
Stopped reading right there. Try harder next time.
>>
>>60361465
Irregular /g/ visitor here. I noticed that the Renchon used in nyaa.pantsu and the Yuki used here are flat-coloured. Is this a /g/ thing or just coincidence?
>>
>>60364702
>Most if not all AAA game engines,
udk
crytek
unity3d
source
chrome engine
creation engine (bethesda)
idtech
...

all are written in c++
>>
>>60364809
>>60364767

Yeah yeah i messed up check, my general point still stands >>60364754
>>
>>60364702
>web servers
the most used web server (ISS) is written in C++
>>
>>60364830
What general point? I didn't read your post. Feel free to rewrite it, though.
>>
File: haskelel2.jpg (745KB, 1920x1080px) Image search: [Google]
haskelel2.jpg
745KB, 1920x1080px
>>60353706
yeah haskell has been ridiculous this entire time i'm not sure if it's ironic shitposting or if /dpt/ tards are really mentally disabled
>>
>>60364748
I hear a lot of them are ANSI C, the only big C++ one I know of is Unreal.
>>
>>60364870
>when you post bait and nobody responds to it, so you feel the need to reply to your own bait you posted a day ago in the next thread
>>
File: haskelel.jpg (99KB, 529x598px) Image search: [Google]
haskelel.jpg
99KB, 529x598px
>>60364946
>/g/ is one person
>a post which doesn't praise haskell must be bait
>>
>>60364967
No, you are one person, and you need to stop making the same post constantly.
>>
>>60364977
k tard, i haven't wasted my time trying to argue with you boneheads in a long time, search the haskelel images in the archives, i don't make the same post "constantly"
>>
>>60364702
>Entire internet works thanks to C
and thanks to C too for all the bugs/exploits we have now.
>>
>>60364989
You haven't tryed to argue at all

>search the haskelel images in the archives
Yeah because they're so funny that I want to look them up like some reddit autist straight from knowyourmeme
>>
>>60364993
50 year old architecture has security exploits, blames C
Seriously? Give me example of something as old and written in some of your approved languages without exploits?
>>
>>60365012
inb4 tried
>>
>>60365012
haskell is shit and you know it

for professional software development it just pales in comparison to java, C++ etc
>>
>>60365031
>java, C++
>>>/r/loo/
>>
>>60365040
nicely meme'd
>>
File: dijkstra.png (44KB, 643x220px) Image search: [Google]
dijkstra.png
44KB, 643x220px
>>60365031
>>
>>60365045
>meme'd
>>>/v/
>>
>>60365046
>it's this pic again
>it's still not an argument
you really don't have a life do you, you spend your whole life in this shitty general
>>
>>60365070
i don't, but it'd be better than spending your whole life being paid to advertise java
>>
>>60365070
You must too if you spend enough time to recognize patterns in it. Just an observation, not a jab, I know my life is worse than both of yours.
>>
>>60365027
how many exploits would have been avoided by using a better designed programming language?
for example https://www.imperialviolet.org/2014/02/22/applebug.html
>>
>>60365205
Yes but question to ask is whether these exploits are caused by language or architecture design flaw? And whether such exploits were known to exist at time system was made?

Fact is that at the time there probably wasnt any better language to make internet with...
>>
>>60364494
Rust and C++ Makes C obsolete, C isn't even as popular as it was back in the 90's anymore.

Language monopoly does not exist, except for Java
>>
>>60365205
you know you can write error code and just shitcode in every language
>>
>>60365243
>Rust and C++ Makes C obsolete
You clearly have no idea what you're talking about.
>>
>>60361465
An API for a rather strange graph database.

I am a computer science and what is software engineer.
>>
>>60365243
Rust thats used in widely in what areas? Windows programs/services/kernel? Linux? OsX? Dont think so... Language that barely anyone uses cant make anything obsolete even if you think its better. NOONE USES IT
>>
>>60365265
>Language that barely anyone uses
>NOONE USES IT
So which one is it?
>>
>>60365248
THISSSSSSSSSS

fucking delusional rustfags
>>
File: 1464988239571.png (509KB, 454x642px) Image search: [Google]
1464988239571.png
509KB, 454x642px
>>60365275
>uhh no, "noone uses it" is WRONG, actually very very few people use it!!! me and my mum!!
sad tbhdesu
>>
>>60365248
>Rust
>...and C++

>Pascal and C++ Makes C obsolete
>Java and C++ Makes C obsolete
>Brainfuck and C++ Makes C obsolete
>Haskell and C++ Makes C obsolete
Just because C++ is designed as a better C and probably makes C obsolete, it doesn't mean that "*any other language* and C++ makes C obsolete" is a true statement.
>>
>>60365321
I was merely pointing out how you contradicted yourself so quickly. I don't even use that garbage by the way.
At least thank you for posting a cute anime.
>>
>>60365328
meant to >>60365243
>>
>>60365328
this
Rust and C++ don't make C obsoete
C IS obsolete

>>60365340
i'm not him
>>
>>60365257
Oh i do know, sorry.
>>60365265
When C came out, exactly how many OS written with it within a year? Rust already has a few. But that logic is flawed, no one is going to reinvent the wheels, no one is going to write Windows with rust.

It's the technology that makes rust modern systems/general purpose language of today.
>>
>>60365350
>C IS obsolete
reading comprehension: 0/10
>>
>>60365243
>except for Java

I continue to be triggered by this fact.
>>
>>60365375
how can you accuse me of low reading comprehension when i didn't even read past the first sentence of your post???
>>
>>60365386
>there was only one sentence
>>
C++ makes C obsolete

rust is a useless fag language
>>
>>60365474
there was only one sentence
>>
>>60365385
stay cucked microshart
>>
>>60365465
It's OK
>>
File: 1492911190091.jpg (25KB, 555x347px) Image search: [Google]
1492911190091.jpg
25KB, 555x347px
>rust book is not available as a single html page
>rust book is not available in pdf
>rust book is not available in ebook formats
>github issues from years ago about this
>you have to write a script to export it

w-what
>>
>>60364559
>"For C to be obsolete, C has to make it obsolete."
what?
>>
>>60365646
that's what you get for using obscure shitlangs
>>
>>60365646
Safety.
>>
>>60365665
That anon is right. Only C decide when C is obsolete. C rulez, STFU.
>>
>>60365646
Does D have such problems, Dfag?
>>
>>60365713
the fuck do i know? D is too complex for me, that's why i'm chose to learn rust instead
>>
>>60365794
I ask Dfag, not you
>>
i'm going to do my part by publishing all my rust open source projects under completely random but offensive names, and adding random offensive suffixes/prefixes/infixes to my variables, since we have autocomplete anyway

>fuck_everything_until_dead
>skullfuck
>piss_drinking
>cum_everywhere

>web_fag_context
>i_fuck
>>
if it's so simple to write a lisp interpreter, why don't more programs use lisp for scripting
>>
>>60366019
AutoCAD uses
>>
>>60366019
if it's so simple to write a brainfuck interpreter, why don't more programs use brainfuck for scripting
>>
How the fuck does this thing get a stack overflow exception?

class intCmp : public jitasm::function <bool , intCmp, int > {
private:
int val_;
public:
intCmp(int val) : val_(val) {}

Result main(Addr a) {
mov(ecx, dword_ptr[a]);
test(ecx, val_);
je("isEqual");
return false;

L("isEqual");
return true;
}
};


Like what
>>
>>60366055
but lisp is actually usable
>>
File: 1487463346465.png (100KB, 1244x1024px) Image search: [Google]
1487463346465.png
100KB, 1244x1024px
>>60365465
C++ is utter garbage
>>
>>60365646
https://killercup.github.io/trpl-ebook/
>>
>>60365794
D is as easy as Go.
Rust is insanely complex.
>>
>>60366163
outdated, i'm just making a python script
>>
>>60366172
Point to me where is it outdated
>>
>>60366170
maybe, but the deal killer for me is GC (you can disable it, but i hear many stdlib features rely on it)
>>
>>60366178
>2016-10-01
>TRPL, not TRPL2
>>
>>60366180
The only place you should not be using the GC is in kernels and embedded system drivers, where you should use your own version of non-GC libraries though
>>
>>60366202
I disagree. I have a script that is taking a month instead of a day to run because it's hard to find the leak in python
>>
>>60366221
And?
>>
>>60366239
I never had that problem when writing C++ and C
Sure, it's only one datapoint, maybe I'm particularly unlucky, but that's my experience
>>
>>60366202
The question is when you should use it.
GC is not needed.
You destroy something when it is out of scope or not referenced anymore.
If you allocate memory, you should clean up after yourself.
Things you allocate shouldn't remain there until some GC finds the time to remove it.
>>
File: fuckthis.png (21KB, 798x381px) Image search: [Google]
fuckthis.png
21KB, 798x381px
>>60361476

I know those feels.
>>
>>60366323
t. idiot

even in "manually" managed languages people use custom allocation schemes where they allocate say 1 GB up front and it doesn't need to be cleaned up every single time you stop using something because that's inefficient, you batch it up just like a garbage collector
>>
Any mobile devfags here? What are some best practices cool kids use these days? Is going native with Swift/Java still the king? React native?
>>
is there any point in getting into ruby if I already know python pretty well? seems like a comfy language
>>
What's the best way to learn sepples through exercises?
>>
nth for D, surprisingly the best scripting language

ditch bash, python, ruby, perl or some other interpreted, weakly typed turd right this fucking instant. get the full power of C cousin with blazing fast compilation
>>
>>60367061
>script that needs to compiled
>>
>>60367041
I'd say _regularly_ solving algorithm challenges from hackerrank, codewars or another website to get the hang of the language basic feats. While writing a medium sized project yourself at the same time to dive deeper. Like a text editor or a game, or a program you or your friend wanted, something that actually, unironically can be used at least by one person. Trying to apply and copy concepts and techniques you read about somewhere. Throwing away a 1000 LoC file you wrote a month ago because now you realize it's complete shit it's a good sign of gaining knowledge. Trying to participate in open source projects would be logical conclusion after that

Thing is, C++ is enormous, one literally can't learn it solely from the books or exercises in a vacuum. A lot of knowledge is still "watercooler talk". Every decent C++ dev I know learnt a great chunk of it at the job regularly discussing shit with colleagues, reviewing each other's code. So, eventually becoming a teamplayer in some way is a vital part tbqh

Write, write, write, throw your code away, write, write, write. The only way imo
>>
>>60367234

Thanks for such a detailed response. I was sorta expecting a throwaway meme but you've given me resources and advice.
>>
>>60361465
Quick /dpt/
Name something like the Queen's Problem
but entirely different
>>
>>60361538
We Rust memes now? kek
>>
>>60367234
>Write, write, write, throw your code away, write, write, write. The only way imo
I agree.
This goes for everything in life. You learn by actually doing something instead of just reading about it.
>>
Can somebody tell me what's wrong
Sbcl returns the first line, but (amount of lines) times.
(defun lines (string)
(loop for x across string unless (eq x #\newline) collecting x into curr
when (eq x #\newline) collect curr into all and do (setq curr nil)
finally (return (mapcar (lambda (xs) (coerce xs 'string))
(nconc all (list curr))))))
>>
>>60367468
Funny, Clisp returns what I want.
>>
>>60366813
java for GUI and android APIs. C++ for computationally intensive tasks. if you're making a serious app, for yourself (not for a client), you don't need to cheap out with some rinky dink webfag shit.
>>
Reminder that you can trivially prove (a -> b) in C++:

#include <cstdint>

template<class A, class B>
B foo(A a)
{
(void)a;
uint8_t bytes[sizeof(B)];
return *((B*)bytes);
}
>>
File: 1432860473789.png (40KB, 335x342px) Image search: [Google]
1432860473789.png
40KB, 335x342px
>Deleting some unused git branches
>Accidentally delete one with some work on it
Fuck, why didn't I listen to the warning message?
There goes like 2 hours work. It could have been much worse, though.
>>
>>60367981
Here comes the reflog to the rescue.
https://confluence.atlassian.com/bbkb/how-to-restore-a-deleted-branch-765757540.html
>>
>>60366124
That's a matter of opinion.
>>
File: 1490304782727.png (352KB, 480x476px) Image search: [Google]
1490304782727.png
352KB, 480x476px
Any lads here who work with assembly knows a good book that teaches assembly and C and how those two languages connect with each other?

September this year I'm going to have a class that is purely assembly and translating C to assembly language but I'd like to get started on learning it now.

Thanks
>>
File: 1485473684854.png (408KB, 824x792px) Image search: [Google]
1485473684854.png
408KB, 824x792px
>>60368202
Holy shit, thanks. I didn't know git could do that.
>>
File: 6787.jpg (897KB, 2000x1012px) Image search: [Google]
6787.jpg
897KB, 2000x1012px
>>60368256
the whole purpose of C is to replace assembly. only a fool would learn assembly today. trust me.
>>
>>60368374

it's important to know how that shit works though
>>
>>60368374
I understand lad but the class is required for graduation sadly.
>>
>>60368374
No, anyone who is not a dipshit codemonkey or Pajeet learns assembly.
>>
>>60362711
print(b"DPT".encode( "hex" ))
, assuming Python 3 considers hex an encoding. The trick is that b"something" is the same as "something" in Python 2.7+, just like u"" is unnecessary but allowed for compatibility in Python 3.4+.
>>
do you ever feel euphoric from reading your own code?
>>
As a functional programmer I can assure you that OOP is worse than useless, it is actively harmful.
>>
>>60368562
Yes, finished projects sure are harmful
>>
>>60368562

objects >>>> closures
>>
File: sicppatt.jpg (66KB, 800x534px) Image search: [Google]
sicppatt.jpg
66KB, 800x534px
>>60368425
Then you should definitively not learn assembly which is only an abstraction interface.

>>60368562
Object is the most powerful abstraction technique.
>>
Fellow C and C++ friends, do you write
const int
or
int const
?
>>
>>60368739
const int
const is an adjective
>>
>>60368748

explain then why it's
int * const
and not
 int const * 
>>
Integer Constant
>>
>>60368766
In
int *const x

x is const, not *x.

In
const int *x

*x is constant, not x.

There is no contradiction.
>>
>>60368739
always at the end

int const
int * const
int const * const
int method() const
etc
>>
>>60368876
No. const is an adjective.
>>
>>60368901
yes and adjectives go after nouns in my language
>>
>>60368831
>>60368806

Const goes to the right of the thing it modifies. Placing it to the left leads to inconsistent and illogical behaviour.
int const  *x; // const modifies int.
int * const x; // const modifies ptr


const int *x; // const modifies int
int const *x; // const modifies int ???


Denying this is simply burying your head in the sand the same way
int* foo;
fags ignore declarator syntax.
>>
trying to make GoSublime work with vendor local packages :S
>>
>>60368925
I don't give a fuck. The language of computer is American English.

>>60368928
No.

const int *x
states that *x is a constant integer.
int *const x
states that x is a constant pointer to an integer.

Please use logic anon. It's absolutely coherent.
>>
>>60368963

>const int *x states that *x is a constant integer.
const on the left.
>int *const x states that x is a constant pointer to an integer.
const on the right.

Zero consistency, you see?
>>
File: Gin.Tama.full.1912378.jpg (845KB, 800x1500px) Image search: [Google]
Gin.Tama.full.1912378.jpg
845KB, 800x1500px
>>60368739
int const, always. trust me.
>>
>>60369014
>>int *const x states that x is a constant pointer to an integer.
>const on the right.
No. It's on the left of x. That's waht you're missing here.
>>
>>60369028

I wasn't aware x was a type.
>>
>>60369049
Is it trolling?
>>
Wrote my first autocompletion library(company backend) for emacs.
>>
Guys I'm lost. Lets say I want to clone just a directory from github for ecample https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FantasqueSansMono how could I do it? Made a crude hack using svn like this:
git-dl-dir() { svn co "$(sed 's/tree\/master/trunk/' <<< "$1")"; } 

But holy crap isn't there a sane way to just get one directory (without versioning crap, etc)?
>>
>>60369172
>just get one directory
That's useless, except if the git repo is made by people who don't understand what is a git repo.
>>
>>60369217
Well you're right, but I often find myself in this exact situation where I just want to dl a directory of fonts, images, iconsets or whatever without cloning the complete repo, picking the icons and deleting the whole thing after.
>>
>>60369172
you already have your solution
keep using your hack, theres no reason for github to implement something that helps abusing github as dumb filehoster
>>
Average two integers in Lisp.
>>
>>60364388

>How many of you use an IDE when doing C coding?

kek

use sublime text faggot
>>
So how do you read a string in C?
gets() is unsafe
fgets() includes '\n'. Why? I don't want my strings to be name = "John\n" what the fuck?
>>
>>60369996
Use readline or don't be a faggot and just replace the \n with \0.
>>
>>60369996

You use iostreams instead :)
>>
>>60369996
char *s;
s = malloc (20 * sizeof (char));
if (s == NULL) {
errno = ENOMEM;
return NULL;
}
if (scanf ("%19s", s) == EOF) {
free (s);
return NULL;
}
return s;
>>
>>60369996
fread
>>
Hey yurop /dpt/, can you implement this function?

f : (b -> a -> b') -> (c -> a -> c') -> (b, c) -> a -> (b', c')
>>
>>60370312
#define f(...) __VA_ARGS__
>>
>>60370393
trash
>>
>>60370075
>== NULL
>2017
>>
>>60370517
>2017
>not writing clear code
>>
>>60370517
Doesn't the C standard allow defining NULL as -1?
>>
>>60370312
what does it do?
>>
>>60370312
Ugly, but it should work:
fn f<A, B, C, FAB, FAC, AB, AC>(fab: FAB, fac: FAC, (b, c): (B, C), a: A) -> (AB, AC)
where FAB: FnOnce(B, A) -> AB,
FAC: FnOnce(C, A) -> AC,
A: Clone
{
(fab(b, a.clone()), fac(c, a))
}
>>
>>60370542
There is only one thing it can do in a consistent language.
>>
>>60370541
NULL shall be the null pointer
>>
>>60370547
Do you really have to write the types of fab and fac like that in Rust? That's horrendous.
>>
>>60370563
explain please
>>
>>60370563
Still depends on what all the symbols mean, and whether a, b, c might be reserved keywords, etc.
>>
>>60370598
Try to come up with two implementations (in a consistent language) that return different values for the same input.
>>
>>60370597
Yes, because they have to be generic over everything callable with the same signature. I could make them accept only function pointers like this:
fn f<A, B, C, AB, AC>(
fab: fn(B, A) -> AB,
fac: fn(C, A) -> AC,
(b, c): (B, C),
a: A
) -> (AB, AC)
where A: Clone
{
(fab(b, a.clone()), fac(c, a))
}

That would rule out capturing closures and possibly in the future, callable objects.
>>
>>60370674
Wait, what? (b -> a -> b') isn't a function that takes a function as an argument. It's a function that takes a value of type b as an argument, and returns a function of type (a -> b').
>>
>>60370734
>(b -> a -> b') isn't a function that takes a function as an argument.
It is in my language.
>>
>>60370817
I think you just made that up.
>>
>>60370835
Nope.
>>
>>60370904
Yep.
>>
>>60361465
I want to learn more about C and thus decided to write my own string class.
I've read about malloc and how it is supposed to be dangerous with all the overflow and stuff.
Can /g/ suggest an alternative to allocating more memory for a string?
>>
>>60370547
>Ugly
Indeed. Why the fussing around with cloning?
>>
>>60370955
>C
>class
>>
>>60370955
realloc
>>
>>60370976
Well if you want to be pedantic..
struct then
>>
>>60370817
>It is in my language.
Well a left-associative -> type operator is retarded. So your language is retarded too.
>>
>>60370517
I only do C89.
>>
>>60370992

so a struct containing a char*?

or a struct with a (fixed? variable-length?) array?

There's no point senpai
>>
>>60371007
Agreed. If I wanted to write as many parens as that would require then I'd use Lisp.
>>
>>60370962
Rust type system is affine, i.e. every variable is used at most once. The parameter a is used twice, hence i'm passing a copy of a to fab, before moving a into fac.
>>
>>60371059
So if I wanted to write a sum-of-squares function, I'd have to do something like this?

fn sum-of-squares(a: int, b: int)
{
(a * a.clone()) + (b * b.clone())
}
>>
>>60370955
>I've read about malloc and how it is supposed to be dangerous with all the overflow and stuff.
The problem isn't malloc itself. The problem is doing accesses without first knowing that the memory location is legal to access that way. The simplest way is to hide access to the buffer inside your code, and verify that the index(es) into that buffer provided by the caller are correct before ever using them to do the access. Build out from there.

For a practical modifiable string, make sure you store the length and the size of the buffer as separate values. Being able to use an exponential growth strategy for the buffer size makes simple appending of characters an amortised-linear cost operation instead of a quadratic. Simple appending is a very common operation in practical code; this is a highly worthwhile algorithmic optimisation (and is used by most high-performance string libraries in production languages).
>>
i see no ones on
>>
>>60371090
No, because there is a trait Copy, which marks all types that can be implicitly cloned. This trait is implemented for all types that can be cheaply memcpy'd, including integers
>>
>>60371059
>Rust type system is affine, i.e. every variable is used at most once.
Thus proving that Rust is going to be at least as annoying to ordinary programmers as Scala.
>>
>>60371150
In what way is this an improvement over C++, where this stuff doesn't get in your way at all?
>>
>>60371007
My language is 100% consistent - all operators are left associative.
>>
please write me a simple script with FIFO queue for ~10 strings, in which every time the script runs it calls OP a different name "faggot" "queer" "crayon eater" etc. and puts the printed name at the end of the queue
>>
>>60371276
This is not a homework thread, now beat it.
>>
>>60361508
Why would D be preferable to, say, C++ or Rust?
>>
>>60371258
Sounds like it's consistently shit.

Anyway, that's not the sort of consistency we're interested in, do try to keep up.
>>
File: happy.png (58KB, 250x215px) Image search: [Google]
happy.png
58KB, 250x215px
>be oopfag
>everyone: "hur a dur functional programming is so great"
>try lisp
>takes some getting used to but eventually understand it
>seems good but where are the classes and objects
>oh i get it, the absence of any kind of state is supposed to be "elegant" right
>yeahno
>learn about setq
>learn about using setq in conjunction with let and lambda to create stateful closures
>create a function that creates functions that create stateful closures with references to dictionaries of functions accepting 'this' parameters (said dictionaries are also created)
>call the function (the first one) "class"
>mfw i just ruined functional programming for everyone
>>
>>60371311
Use D and you too can be butthurt that your mediocre language isn't popular.

I've yet to see anything in D that would make me consider switching to it.
>>
>>60371338

functional programming is a meme

closures are weaksauce objects
>>
>>60371338
You can do functional programming in an object-oriented language, and vice versa. This is not a revelation. The only surprise is that anyone would ever deliberately try to do object-oriented programming in a functional language.
>>
>>60371403
>functional programming is a meme
that's kind of the whole point of the post
>closures are weaksauce objects
not if you do them the way i did
and that's why OOP is and will always be superior
>>
>>60371338
using namespace std
>>
>>60371403
t. dysfunctional programmer
>>
>>60371197
it's not an improvement at all, it's just more pedantic bookkeeping to appease the """"female"""" rust """"programmers""""
>>
>>60371432
>using namespace std
you do realize no competent c++ programmer actually ever does this except in cpp files
(and by the way in cpp files there's nothing wrong with it)
>>
>>60371338
>thinks FP is about elegance, not making it easier to write reliable software
>thinks statelessness is about elegance, not making it easier to test things
>>
>>60371340
>>60371311
it was supposed to have good compile-time metaprogramming stuff but i'm not sure how well it worked in practice and C++ is already adequate in that regard
>>
>>60371484
it IS about elegance though
>>
>>60371470
don't worry I have the certificate
t. pajeet
>>
>>60371505
The concise code you often get when doing FP is much easier to follow than a lot of OOP code I've seen, but that doesn't pay the bills.
>>
>using a language that doesn't have arrows
>>
>>60371550
>oopfag
>"it pay hte bil"
>get 1 euro
>"o yez"
>>
What do you guys use for compiling C++?
>>
>>60371609
g++
>>
>>60371576
You misinterpreted my post. I don't use FP because I can write elegant code in it. I use FP because I can write working code a lot more easily and quickly in it compared to using OOP, and writing working code is what I get paid to do.
>>
>>60371637
>functionalprogrammingfag
>"it pay hte bil"
>STILL not using data-oriented programming instead of either
>why even live
>>
>>60370992
I was thinking of using a char pointer and allocating memory as it gets larger
>>
>>60371668
Okay.
>>
>>60371659
>using data-oriented "programming"
>being a glorified dba monkey
>>
>>60371668
This is rather close to how a C++ string works, but I would advise against calling realloc for each individual extra char. If you do that, your string will be very slow.

How dynamic strings actually work in most languages that natively support them, as well as how vectors work, is this: With your char pointer, you also store two ints: one for the size of the string, and one for the amount of space pointed to by the char pointer. The reason you need two is that in an efficient implementation, these are actually two different things: at all times, you have some space allocated that you don't use. And then, every time you reach the end of that space, instead of reallocating it to be one char wider, you reallocate it to be twice its previous size. (Or sometimes 1.5 times its previous size. Different languages have different conventions for this implementation detail.)
>>
>>60371787
Yeah I did read up on that but the concern here will be using excessive space even though it may never be used.
I'd probably used a clean() function to trim off the remaining space for strings that I know will never be modified.
Thanks for the tip
>>
What implementation of common lisp should I learn? I already know r5rs, but that's scheme, not common lisp, and no one fucking gives a shit about scheme. It really irks me that on the OFFICIAL FUCKING WEBSITE for common lisp, more than one implementation is endorsed.
>>
>>60371848
Which implementation you use doesn't matter as much with Common Lisp, because the standard has most of what you need (so you aren't constantly relying on non-portable extensions from the implementation). For the stuff that isn't part of the standard (notably, multithreading and networking) there are portable libraries which work across all major implementations.
>>
can I use the function unlink() while the file is being used ? then use the remove() fucntion to delete such file, it got stuck in a while loop and I need to delete it this is on windows C language
>>
>>60372025
cool thanks
>>
>>60371338
lisp has never been about functional programming, and people have always used closures like you're talking about, stupid frogposter
>>
File: usa_presidents.jpg (840KB, 3600x2400px) Image search: [Google]
usa_presidents.jpg
840KB, 3600x2400px
>>60371848
common lisp being standardized, any standard conforming implementation is good. steelbank common lisp is probably the best.
>>
>>60371848
common lisp is fucking gay and scheme is way better you idiot
>>
>>60372280
>lisp has never been about functional programming
wrong
>>
Hi /g/
I know C, and I want to learn another higher level language. I'm thinking maybe Golang. What do you think?

Also, what are some good books to learn Go; preferably ones that skip the beginner stuff.
>>
>>60372394
>Golang
Why would you do this to yourself?
>>
>>60372306
>wrong
wrong
>>
>>60372414
I'm open for suggestions.
>>
>>60372394
>>60372394
>Go
female detected, reeeeeeeeeeeeee
>>
>>60372280
>he fell for the meme of calling anyone who posts rare pepes a stupid frogposter
>>
>>60372564
>rare pepes
>>>/r/the_donald
>>
File: spjJun06.8-e1470732652301.jpg (325KB, 2136x3216px) Image search: [Google]
spjJun06.8-e1470732652301.jpg
325KB, 2136x3216px
Did you know that part of the official strategy of the Haskell language dev team is to purposely avoid mass popularity, so that it can still function as a research language and slowly move towards perfection? What this means is that every time you mock Haskell, you are helping to assert its eventual dominance and losing a game of 4D chess against a bunch of 60 year old British functional programming gurus.
>>
>>60372597
>he fell for the meme of voting for donald trump and now he's so mad about having made a mistake that he accuses other people, particularly people who post rare pepes, of voting for donald trump -- he does this to diffuse the guilt, even though the object of his contempt in fact voted for bernie sanders
literally kys tendieless normie
>>
File: 143339968445.jpg (3MB, 1920x1883px) Image search: [Google]
143339968445.jpg
3MB, 1920x1883px
>>60372648
I am a British functional programmer and I hope in 40 years I am a guru

Haskell and Idris are the continuation of the British empire by other memes
>>
>>60372436
learn java fucking memelord no one uses go and there is nothing wrong with java don't fall for the ironic shitposting in this cancerous circlejerk thread
>>
>>60372657
still better than hillary
>>
>>60372528
There are no females in these here parts, my friend.
>>
>>60372735
things wrong with java:
1) no stateful mixins
2) no stateful multiple inheritance
3) classes are the only thing allowed at top level
4) if you're going to do OOP at all, you need at least either stateful mixins or stateful multiple inheritance, but you shouldn't be doing OOP at all, which is yet another thing wrong with java
5) it fell for the compatibility over optimization meme
>>
>>60372735
Java is similar to C, but with stupid OOP shit that I fucking hate.
No, I refuse to use or learn Java.
>>
>>60372790
>>60372798
kill yourselves shitmemers, even by your retarded standards java is better than or equal in shittiness to go
>>
>>60372811
calm down pajeet
>>
>>60372811
>if you don't like my favorite programming language, you must be just memeing
kill yourself.
>>
>>60372830
>>60372838
anon said he wanted to learn a high level language and suggested go. java is a valid alternative to go and has 1000x the job opportunities.
>>
>>60372856
I don't give a shit about """job opportunities""" senpai
>>
File: dogpiss.png (146KB, 1398x298px) Image search: [Google]
dogpiss.png
146KB, 1398x298px
Holy shit have you guys seen the hot fire Terry Davis is dropping on his youtube channel lately
>>
>>60372881
go is still a poorly designed and immature language
>>
>>60372811
>even by your retarded standards
HOW THE FUCK IS IT RETARDED TO AT LEAST REQUIRE STATEFUL MIXINS AND STATEFUL MULTIPLE INHERITANCE. THEY ARE VERY NECEssary to do anything in oop
>>
>>60372900
https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html
http://stackoverflow.com/questions/406081/why-should-i-avoid-multiple-inheritance-in-c
>>
>>60371340
You mean so you can make others butthurt for using a language they don't like
>>
>>60372951
if someone uses scala or idris or w/e, you don't get jealous or anything, you just think they're hilariously pathetic
>>
>>60372936

>Don't use scissors because you might cut yourself
>>
>>60371036
Maybe he wants to make something like c++11 strings. Or do you not think those are better than char * ?
>>
>>60373060

Why not just write C++ at that point
>>
>>60372790
Also the lack of operator overloads makes the language unbearable if you do any math at all.
>>
>>60373123

Fucking this. I had to touch upon bignums once in Java and it made me want to throw up.
>>
>>60372936
>https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html
>http://stackoverflow.com/questions/406081/why-should-i-avoid-multiple-inheritance-in-c
bunch of bullshit, mixins and/or multiple inheritance are necessary not "harmful," composition is not a viable alternative for most applications
>>
>>60373123
>>60373147
(You)
>>
>>60373110
I think that about every C application.
Making a basic string part of the language was a good idea.
The situations where it is bad is so rare and so easy to avoid that I really don't see the point c strings.
>>
>>60373229

The problem is (and the problem I imagine >>60373160 has with operator overloads) is that shitty developers feel the need to inject every single C++ feature at every possible opportunity.
>>
How should I implement my
detonate()
method?
>>
Trying to get distance myself a bit from OOP and write more data-oriented code.
I want to write code that utilises as much of the cache-line as possible.

Been thinking a bit about how threading affects DOD. Does anyone here, that's more into CPU hardware know whether all cores share the same cache, or if it's divided between them?

My guess would be that there are multiple lv.1 caches (one per core) and that the lower levels are shared. But I'm probably wrong.

Other OOP->DOD tips are welcome.
>>
>>60373433

>My guess would be that there are multiple lv.1 caches (one per core) and that the lower levels are shared.
pretty much this
>>
>>60370955
Make your own allocator by first allocating a larger block via malloc and then distributing that memory to strings. Ok, that's not exactly less dangerous but it has the potential to be more efficient.
>>
>>60373433
"DOD" is just good OOP. You're still doing OOP.
>>
>>60373497
viper.jpg
>>
>>60373278
Operator overloading is used when using an operator is more clear than a word.

Say you have an array and you want to access an element at a specific index.
Overloading [] makes sense.
If you have a matrix class and you want to make multiplication, * makes sense.
If you have a state in a graph, the < operator makes sense to compare the heuristic.
There is so many situations where you want a class with many elements to have a specific meaning which makes the code readable.
And I think it is fine, even in situations where an operator could mean different things.
Take << for example.
Aside from bit shifting (which is rarely relevant unless you are working with numbers), it usually means turn this object into a string stream and write to this output.
>>
New thread:

>>60373589
>>60373589
>>60373589
>>
>>60373497
Yea, of course it's not all black and white.
Situated use is probably king.

The reason I asked the question to begin with, is because I'm thinking about using an entity, rather that a component system for my next game project.
>>
>>60373569
in a high level language (higher level than C/C++) it is very rare to "need" operator overloading. bignums in java aren't worse than using gmplib in C. and go doesn't have operator overloading either.
>>
>>60373899
I don't know. A library like eigen is much more natural to use and leads to very good efficient high levels of abstraction.
>>
>>60373497
not really.
>>
>>60371025
Does C89 not recognize NULL pointers as false?
void *ptr = NULL;
if (!ptr) {
/* Is this not valid C89 code? */
}
>>
>>60374690
>Does C89 not recognize NULL pointers as false?
Yes, but I don't care. I refuse that confusion between integers and booleans.
Thread posts: 354
Thread images: 34


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