/dpt/ daily programming thread

Fuck weaboos
Previous -
What are you working on, Sup Forums?

Other urls found in this thread:

tsunami-udp.sourceforge.net/
twitter.com/NSFWRedditGif

I'm making a pizza atm

C

why was last thread deleted

What's the best programming language and why is it Excel Formulas?

Don't know why that thread got deleted, but what is it that makes Linux better for programming? I use both Linux and windows so I don't mind going either way.

Because they were posted before the bump limit.

Oh. Well it's past bump limit now so it's fine.

Why were all the other threads deleted?

Learning rails for the backend of an app I am creating, learning http stuff for the front end, learning js for the web app

Can you use Excel formulas to implement a universal Turing machine?

It's not OOP

Let's get this thread back on track!

vim, gcc, bash in general, etc

Please stop posting your forced memes.

So you mean terminal?
I use atom though, not vim. Been learning java on my laptop, running Fedora.

Fuck off.

Windows has that

I don't know about other languages, but practically every single aspect of C programming is better on some sort of *nix.

sudo apt-get install libwhatevah

>Fuck weaboos
I would so love to drop you normalfags into 2007 Sup Forums & watch you get triggered at "Sup Forums - Techloli/g/y". Why are you so butthurt about anime being on the majority of boards on an anime imageboard?

Linux is better because:
>gcc/g++/gdb out of the box ; Windows requires the installation of a bloated, laggy substitute called MinGW
>100's, possibly 1000's of programming-related packages in the repositories
>better, more functional, more aesthetic text editors & IDEs

I'll help.

>memes

>Fuck off.
Make us. I'll bet you were the jock in high school that laughed at the kid who always raved about how sexy hentai is. Leave.

Lets not forget
pkg-config --cflags --libs whatevah

Good ideas for side projects?

You have been visited by the crossdressing C programmer of Shimoshina Academy!

Good performance, triple indirection, and tail call optimization will come to you, but only if you post "Keep overflowing the stack, Hime!" in this thread.

>>memes
Posting traps really is a forced meme.
It was not a statement about animu.

Yes, of course you can

there are many things. Command line compiling for C or C++ is much better on linux (Windows either requires installing 4 gigabytes visual studio, or using mingw/cygwin which don't perform very well). Other langauges on windows require using the command line for invoking compiler/interpreter, and not even the fact that the windows command line is so severely limited, adding shit to windows environment PATH is just a big chore. On GNU/Linux systems all you have to do is export PATH=$PATH: or edit .bashrc or something like that. Even then, most of the times installing languages through package managers streamlines that stuff anyway and drops the executables somewhere that's already on the path like /usr/bin. Bash scripting is actually useful unlike batch scripts.

But none of those are true complete reasons. You could still live on windows without that stuff. What Unix operating systems have that is such a huge advantage over windows is grep. That's all I've gotta say about that.

Holy shit, weaboos on damage control

you mean anti-anime autists?
now shut up and post programming

Ah. My mistake. Carry on.

>Holy shit, normalfags on damage control
Ftfy.

Keep overflowing the stack, Hime!

please stop posting these
you're cursing people

pic unrelated

That's obviously false flagging from

Fair enough. I'll probably just stick to Fedora then, it's more convenient on a laptop.

Reading a book on abstract algebra
Anyone got any books they'd recommend on pretty much anything related to programming and mathematics?
>inb4 SICP

Did you get lost on your way to reddit?

Probably an autistic question, but can you program in C# on Linux, I know you can C++ and C, but for whatever reason I'm under the impression you can't use C#.

anyone with a lack of respect for academic integrity want to help me pass a college C course over the next two weeks for 1 BTC?

im not joking, im too stupid to even understand pointers, i should probably kill myself.

Well, Linux is way faster and uses less resources. Also, installing dbs and packages and such is much easier.

£oneãr ælgëßrå äñđ grë₱h thèôr¥

Âl$© çombïñàtōrìč§

I'll do it for 1BTC, but you also have to buy a skirt and crossdress for me over skype.

i gotchu senpai

Have you ever tried to actually understand pointers?

how do i build a better ftp?
i want it to go fast

Didn't know the robot was in effect on Sup Forums too. Thank goodness. Keeping Twittertrashspeak out.

You can, look into monodevelop for now. Microsoft is also pushing towards making .NET work well on linux.

How's that going?

Have as little protocol overhead and round-trips as possible.
It really depends on what you want it to do though.

I've been hearing this for over 10 years now.
Miguel de Icaza is a hack.

i should mention, i have a specific type of network
as least 40 ms ping time
at least 10 Gbps

Ah ok so I was right that it's not really supported. That's unfortunate I was thinking of working with it to try it out. Maybe I'll look into monodevelop but if it's not that supported yet there's not point to not stick with Java or C++

I didn't say you should develop .NET on linux, only that you kind of can. Given the choice you should use windows or a different framework, in my opinion.

who /VHDL/ here?

Are there any incompatibilities or shit, on Linux?

Would an employer laugh at my github if it had a BMI calculator, or temp converter on it?

i did verilog in college
it was the hardest "programming language" i ever had to learn

Yep.
It's really no better than having a hello world on your github.

Tanned != brown

I don't know a huge amount about designing networking protocols. I was thinking that you would just push all of the data as numbered UDP packets over the network, and having the receiver acknowledge the packets they have received (possible doing several at the same time), but then I realised that would just be poorly re-implementing TCP and other application-level protocols.

not if you made it as an android/ios app

The core part of .NET should work fine, so if you're just making console applications that don't use too much of the extended library you'll be fine. There are plenty of incompatibilities when it comes to graphical/UI libraries and things like that. Some of them have worse alternatives that you can use on linux, but othres don't.
Honestly if you're wanting to play around with it for fun you should go for it.

>tfw writing a binary format for text-based animations
Shit's hard, m8.

what did you learn first? Software or Hardware?

>but then I realised that would just be poorly re-implementing TCP and other application-level protocols

actually, you guessed on the correct answer
i have to constantly fight with TCP to get the best performance on long fat networks
getting the best performance requires using multiple connections in parallel, vastly increasing the tcp window size, and changing the congestion control algorithm

i'm of the opinion that it would be better to use a different protocol altogether

OP pic is not kawaii. Redo the thread nao

both
in the class we learned about the software and programming language side
but in the laboratory we had to synthesize everything onto FGPAs
it was a major headache for me trying to separate the two

TCP is a lot heavier than just having sequence numbers. UDP with sequence numbers and a basic ACK/re-send mechanism should work well. There are several tricks you can do, like having ACK(10) mean the receiver has received packets 0-10 instead of having to ACK each packet. Other than that you can mess with packet sizes and things like that to get marginal better performance as well, especially if you know what kind of a connection you're sending over.
You're probably splitting hairs at that point for a file sharing program though, unless you are planning on sending terabytes of data.

>unless you are planning on sending terabytes of data
actually that's exactly what i'm doing
minimum 1 TB
normal dataset size is 11 TB

Sent. :^)

tsunami-udp.sourceforge.net/
I can't vouch for this but it looks like what you want, maybe take a look at their code if you're interested in implementing it yourself.

thanks, i remember reading about tsunami years ago but it had fallen off my radar
i'll check it out again

one problem we keep running into is that the techniques required to reach 1 Gbps speeds (like in tsunami) are different than the techniques required to reach 10 Gbps speeds
in the lab we've been able to transfer at close to 100 Gbps but it requires several dirty tricks and is very fragile

Are you running into issues processing the data fast enough at those volumes? Maybe even little things like flipping the bytes to/from network order need to be parallelized on both sides or completely avoided when you're working with that much data.

In order to have it more clear you should understand what parts form a program.

Essentially understanding the difference of control flow statements from regular statements and instructions.

In hardware you have both of those things, the difference being that individual assigments, statements logic evaluations and what not are always there, they are not executed.

if you have something like the following assignment in C for instance

if ( x == 3)
{
Y = A + B
}
else
Y = A - B


in software you do a conditional branch, one which would load the addition or the substraction instructions depending on what value does the X variable have, each of those instructions would load the result in the memory address of Y.

In hardware you essentially have the same thing. Only Y is synthetized as a register and the + and the - get synthetized as two harware blocks whose inputs are always A and B, the == logical operator could get synthetized as a designware who tests register X against the constant 3. They function at all times. BUT you get to decide when their outputs are saved in register Y with the aid of multiplexers and enablers. (if y.en == 1 at that particular time the input value of Y gets stored)

You can implement something like C's control flow in hardware with the aid of a FSM whose inputs would be, in this case the logical test X ==3 output and its outputs would be the multiplexor control signals who put either A-B or A+B at register's Y input and the enable signal that orders register Y to update its value.

In the end Harware itself consist in nothing but a Data Path and a FSM to control it. Pretty much like any other declarative programming language.

Noob question coming through. Can you install linux in your computer but still keep windows? What I mean, can you install linux on windows and use it without double booting? I want to start learning/coding in linux.

what is a virtual machine?

we don't change the endianness of the data payload

at very high speeds we run into issues with non-uniform memory access and contention on PCI express bus
our dirty tricks involve taking a diagram of the hardware and manually mapping the threads of our file transfer program to run on specific cores

if you want to learn some linux, what helped me a bit is having a raspberry pi to mess around with and automate some stuff on, you'll earn to ssh into stuff and connect through the network with it, write some startup scripts, etc etc

or yeah just use a virtual machine

vmware or virtualbox.

Y = A + (((2*(x == 3)) - 1)*B)

Thanks for the response guys. I am pretty new to programming.But I feel like learning how to code in linux(especially because its command line(terminal) its superior to windows) will take my coding skills to the next level. Any advice from you experience programmers on how to become a GREAT programmer instead of just one more in the herd?

How do I gently convince my girlfriend that she's not smart enough to learn C++?

You don't.

Should I learn Idris?

Yes, you should. It will be a learning experience.

But listening to her complaints is driving me crazy. She's been studying out of a book all summer and can't even understand pointers.

Just tell her they're literally just memory addresses and that she shouldn't worry about anything else.

Ironic, given that Nvidia is the leading cause of explosions and loss of limb.

OK but is it worth using in a project or is it a meme

This is going to be my own personal opinion and highly subjective.

You're on the right track with linux, I'd recommend you start out learning with C. It'll be really tough at first, you'll struggle to make even the most basic programs... but you'll learn how to help yourself and find the information you need when you get stuck, which is invaluable.

Secondly, learning from the "ground up", and starting with a so-called low-level programming language (as opposed to scripting languages like python/LUA/javascript that a lot of people recommend), is going to give you a better understanding of the fundamentals of programming.
Breaking your problem into its smallest parts, a good representation of your data and functions to transform that data into your desired result, will become second nature to you.

I could probably ramble on but this sounds autistic already.

It really depends what you want

Speaking about the performance characteristics of networking protocols, how well does SCTP perform?

Try teaching her java instead

you can apply the same method there, only there's no control statement so you would only get combinational logic, the only control statement would be needed to store that operation in Y. but that would be just a datapath with a Y/N switch for register Y. let me draw a diagram.

lmfao, I don't certainly don't mind you rambling. I appreciate listening(or in this case reading) to people who are more knowledgeable than me on a subject ramble. So ramble away my friend, I am reading. lol

i haven't considered sctp, but i will now!
thanks

The project would be entirely written in a functional language anyway, I just wonder if its improvements over Haskell outweigh the library support at this point and such things

Reinventing most of TCP is standard practice you code monkeying Pajeet

Is the weab shit finally gone?
Thank fuck.

What's a good beginner language? Java? That's what we're learning in uni.

Anti-anime fags confirmed for being non-programmers.

Python

the complexity/repetition in this codebase is getting insane. i may just make a tool to generate the code for me and start over from scratch :^)

It really depends on the project

>Java
>good beginner language
pic related

>Using a language that doesn't have macros

Anime fags confirmed fucking retards.

Python or Java are great, depends on what you want to do.