[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
I am a 23 ChemE process entgineer, I've used Matlab and
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /g/ - Technology

Thread replies: 35
Thread images: 1
File: LAMP_software_bundle.svg.png (100 KB, 800x450) Image search: [Google]
LAMP_software_bundle.svg.png
100 KB, 800x450
I am a 23 ChemE process entgineer, I've used Matlab and Solidworks. And I game a lot. I've taken half of an intro to Java class before I stopped auditing it due to a change in work schedule.

So, I want to be able to run a server cluster to create a private website, data base, and email server. Basically, I want to own my own services than using gmail, drive, and hosting a website on godaddy or whatever.

Naturally, I want to make it secure. I am very interested and programming. DESU I hate being an engineer. My dream is to be able to travel the third world using a laptop to keep my bank account full. I know I need a marketable service that users will pay for but that is something I will have to think about for a long time to invent one.

Anyways, I am fantastic at logic and math naturally as a ChemE. I was top of thermodynamics which is probably the hardest class most people face. Enough bragging.

Now I humble myself before you /g/. I want to run everything on Linux Debian or *BSD. Gentoo an Dragonfly also interest me. I have only used Ubuntu before a while back. I see that there are hybrids of one framework running on the kernel of another, but that is beyond my understanding at the moment.

I am going to make my old gaming XPS PC a server to practice on.

So I want to ask, what is the first language I should learn? Apparently Assembly is not used. C and C++ is used a lot. Should I tackle those first? How about C# (that is mainly for .net Windows so not for me, right?) and objective-C which I have no idea what that is.

Is learning C and C++ the best beginning steps to learn for what I want to do? I will buy books and DL materials tonight if /g/ commands it. I was going to start with Python but then I thought Go would be more useful, but I thought it'd be better to learn a "lower" language to learn first.


Pic related.

tl;dr: Should I learn C and C++ first before learning higher level languages like Go?
>>
I am also looking into the Dell Latitude to buy. I am trying to figure out what the cheapest one I can buy is then upgrade on my own when I find discounts and sales on HDD/CPU/etc
>>
so much fucking filler, what the fuck have you been smoking

>>55292116
>tl;dr: Should I learn C and C++ first before learning higher level languages like Go?

no, but learning and becoming proficient at C or another non-oop language might be useful when learning an oop language like c++, go, rust, java, etc
>>
>>55292116
fucking crackers always screwin things up. just wait till i tell tyrone about this one.
>>
It sounds like what you want to focus on first is linux system administration. It's a wide field in and of itself.

It'll get you to the point you can run your own web server and email. It will introduce you to computing concepts that you'll need to know to write software, even if it's not a webapp. And it'll give you'll have a better idea of the kind of things you can and/or want to build.

The choice in language is heavily influenced by what you want to build.

iphone? objective-c
andriod? java
websites? html, css, javascript
website server? ruby or python are popular. Javascript and java too. Anything is an option.
desktop applications or network server? Anything is an option, popular ones depends on os: c,c++, java, objective-c, .NET languages all popular
embedded systems and operating system internals are the only place you'll see assembly anymore. C is (very) slowly getting relegated to this area too.
>>
>>55292116
Industrial Engineer here
You're fired, go home and come back when you're done smoking pot and you realize you're just a glorified chemist. Let the men handle things like this
>>
>>55292478
>embedded systems and operating system internals are the only place you'll see assembly anymore. C is (very) slowly getting relegated to this area too.

c is an industry standard in embedded systems, you'll only be using assembly on odd chips with severely limited resources (i.e., almost never)
>>
>>552924
Bud. And I just wanted people to know I am not an idiot, so I won't get shitposters. I included a tldr though.

Okay so C seems to be the consensus to learn first to understand programming in-itself before moving on to applicable languages.
>>
>>55292505
I thought of doing IE, then I decided I wanted to be productive with my life and create something. I create and make efficient the factory you lazy people just manage. I am the Architect, you are just a Program--- like the Matrix. And no, I need bud to stop my seizures.
>>
>>55292478
cont.

Start by building some websites.

That means learning html, css and JavaScript for the client side. For the server side learn either Ruby or Python. The web framework to learn for Ruby is Rails, and for Python is Django.

>>55292508
I didn't say there was a lot of it, just that it was only relevant to a thing OP probably doesn't want to jump directly into anyway.
>>
>>55292548
>What is lean, six sigma, process improvement, continuous improvement, data mining, statistical ergonomics, process flow design
Ok buddy. I'll be the boss you can be the worker be. Hop to it
>>
>>55292478
Where does Go, Haskell, Ruby on Rails, Erlang, and Clojure fit into this scheme,

I know R is useful for statistical analysis which is something I am interested in as a ChemE. Efficiency is always the top priority.

I am trying to move away from Google and host all my stuff on my own. That's my goal. To resecure my privacy on the internet and erase as much previous data as possible.
>>
>>55292584
Don't get me wrong, these aren't all hard and fast rules. In some cases (like HTML for websites) you must use it, but in general I'm listing the general category they're suited for.
>Where does Go,
Google's use for it is network servers.
>Haskell,
A functional language (a different kind of programming, interesting but unpopular). Used by wankers for wankery who will figure out concepts that will be stolen by languages people actually use.
>Ruby on Rails
Ruby is a scripting language popular for automation on linux systems. Rails is a web framework popular for using Rails on a server to generate webpages.
>Erlang,
High-uptime systems. Originally built for telephone switches, popular for network servers. The neat thing about Erlang is that if your program crashes only _part_ of it crashes and you can recover from it.
>and Clojure fit into this scheme,
Closure is a functional language that runs on the same VM as java, and can be built into Java programs (most programs can use components written in other languages, but how well the pieces fit together is another, more complicated topic. Most can call into C, because the OS and it's libraries are mostly C).
>>
>>55292568
Too bad I come from a rich family. I can put up factories in our third world shit-hole and make $$$. And I get a nice large inheritance.

In the end, it's all about dat white privilege. Engineer is just because Doctor or Engineer is the most respected professions in my parent's culture.
>>
>GNU nowhere in that image

Pfff

Try running a server without bash, emacs, and gcc

It's GNU/Linux. You literally can't do anything without GNU.
>>
>>55292768
Thank you. You are helping me a lot. I am taking notes on this.
>>
>>55292584
>I am trying to move away from Google and host all my stuff on my own. That's my goal. To resecure my privacy on the internet and erase as much previous data as possible.

then why the fuck are you discussing programming languages? go pick up a distro of your choice (centos is industry standard, you cannot go wrong with it) and look at various mail servers, web servers, file hosting techniques, etc, and get to work

as far as programming goes just pick something that's fairly well used and documented and has good libraries and be done with it, once you know how to program learning new languages is trivial and an exercise in time
>>
>>55292821
Because I want to learn and I imagin securing a server against hackers/intruders is more difficult than simply DLing a distro and appropriate program compilations.

I intend to become political in my country and people there that are a threat to the mega-rich families end up getting shot or blown up. I want to learn how to write secure software and hosting for youth dissidents against the fucked up system we have.

Today we just had 10 suicide bombs. Thanks ISIS! fuckers
>>
>>55292786
No problem. I'd suggest you start out with a popular modern language, ideally well suited to what you want to build.

Of course you don't really have a good sense of what those are yet, which is why I wrote >>55292552 The html/css/js set are unavoidable, and something you'll eventually want to know. Ruby and Python are modern, feature rich, and have good library support for you to build on. Even if you don't stick with websites, they are good go-tos whenever you want to write 1-off custom software for yourself.

There is a reason Java is the intro language at many universities even though it gets a lot of shit-talk. It's easy to learn, and has a lot of concepts that are present and similar in other popular languages. It can be used to build a webapp server, or a gui app on Andriod, windows, linux or os x. Things like Erlang, Clojure and Haskell are a more intresting topic of discussion for internet people, but certainly don't start with them.
>>
He's a ChemE guys, make sure your suggestions are in the form of a flow chart or he won't be able to parse what you're trying to say.
>>
>>55292768
Okay so let me try to get a grasp on this:

I should learn C as the bones of the core software the server runs is in C and C++. I should learn Ruby on Rails in order to generate websites written in HTML5, CSS, JavaScript. Java is also useful for sites and most youth in my country use Android phones, so I will need knowledge in Java.

Go is going to be used for network servers. What do I need to learn in order to manage the database that is contained on that network server? I want to learn R to make everything efficient. To manage the database I use either MariaDB, Drizzle, or MySQL (but I know there are NoSQL too). For the web server I see there is Apache, Cherokee, Lighttpd, and Nginx.

PHP is also for websites, but I'm not sure on it's exact function nor do I know much about XML.

I was told the most secure server I could do is a Debian build on a rented Russian server cluster with OpenBSD (or NetBSD?) on the access points (vpn, ports, etc). Also to DL all the enhancements like AppArmor, SELinux, and so forth.

How could I integrate Erlang into the server to keep it running if it is DOSed or attacked in some way?

I can use Kali Linux, Pentoo, and I forgot the name of the third distro that has penetration tools to check on my server.

Sorry for my cluelessness. Obviously, when I am not going to become a God at all of this. I will have to hire people to help me, but I am only doing Engineering/waiting for inheritance until I can afford to quit and devote myself full-time to a project like that that I feel will be a major thorn in the side of our political establishment.

I want to give the youth the means to upload and share their viewpoints and to provide evidence of corruption and nepotism. I want to allow he youth to publish e-zines, newspapers, any political material they wish anonymously without fear of rebuke.

So I am starting now in learning this. I think in 5 years time, I may be ready to hire people and begin to make it all a reality.
>>
>>55293115
lol, that is exactly why I included the picture in OP.

Flowcharts make everything so much easier. Everything can be accomplished step by step if you know the order.
>>
>>55293225
After reading that word soup, I don't know that I can help you.

Forget programming for now. You want to start with linux system administration and computer networking. Not only will you never build a secure system without better understanding how a computer works, you won't build anything at all.
>>
>>55293472
Then don't be a shitposter and explain. I am trying to figure out how each piece of software integrates into one another and what languages underlie each.

As I have explained, I am planning on renting a server cluster in Iceland or Russia. I will put GNU/Linux Debian on it and (not sure if this was a troll or not) overlay it with Open/NetBSD as there are several distros that combine both.

For knowing how this OS works, C and C++ are needed.

For the server to maintain a database, Go manages the network server for multiple people to use my server in various capacities as a CGI.

To do email, I need Apache or something similar.

To create a website, I need knowledge in HTML and JavaScript for the front-end. Server-side I could use Erlang, or Go, or Java or PHP or Ruby on Rails. Database will be MariaDB or MySQL.


So my question to you is what would be the better Serverside language to learn?

So, for sure I am learning C, C++. Go, Javascript, Java. Learn Apache or equivalent and MariaDB or MySQL for database.

Is that better?

I am unsure which languages I need to learn for server-end webpages. Java and Go could be enough, but I always thought PHP was necessary. And then there's Ruby on Rails. I am learning Java and Go regardless though.

I was curious about your statement how Erlang allows downtime not to affect the whole. Where would that apply in the server cluster?

As I said before, I want a secure filehosting database, email client, and webpage server. The fewer and more secure languages I learn the better. I hope this rewrite helps.
>>
Also ideally, I would want to use TOR for encryption or i2p. I have several people in Syria with very important documents that show the atrocities of ISIS. I would like to give PGP encrypt a link through my secure email server, have them go to the link, enter a password I would also send them in some form of encryption, and allow them to upload the file to my secure server.

So my additional question is, I can secure and encrypt everything needed by not being stupid with the code itself. I am sure there are guides on how to encrypt passwords, emails, etc.

How would I be able to create a changing onion page that goes to my server? Is there anything special I need to learn or is it written in a tor tutorial somewhere on the internet?

Otherwise, I want people to have the ability to post publically their own material. Maybe a forum or a blog type deal. The political groups I will give webpages to post their newspapers or whatever if they are unable to print them physically for distribution.

I know I am asking a lot but as I said, I am 23 and I think in ~5 years of study I can get a firm grasp on this enough to help a bit the professionals I hire.

I am thinking of crypto-currency for donations as well, but that should be easy to set up. What will be harder is allowing people to anonymously buy them, but if this becomes a reality, I will use this cluster to do that. Hopefully by that time, btc is dead and a true untraceable currency is popular. I would fund the initial stock of coins then set up physical locations where people can pay in cash, since I don't believe credit cards can ever be anonymous.

But this is forward thinking. Right now, I am just trying to grasp the basics.
>>
You will have issues with your own email server being blacklisted by SpamHaus and all those other blacklist services who evilly blacklist anything that doesn't bribe them.

You could colocate a server rack somewhere if you wanted and run shit off it but it quickly becomes expensive if something goes wrong. You can also buy a dedicated server then you don't have to worry about replacing hardware yourself or do the Heroku/Digital Ocean VPS method. Probably woudl be good to start with Digital Ocean it's a flat fee per month.

Gentoo, and any other rolling release OS is a nightmare to use for a server. If you're gone for a week or two good luck trying to merge all those changes. OpenBSD is really, really easy (so is FreeBSD). FreeBSD is used by Netflix and Facebook for a lot of their infrastructure for a reason mainly because of simplicity in configuration and operating.

I recommend you go on libgen.io and search for 'devops' and see what books come up. Also pirate 'Site Reliability Engineering' by Google which just came out.

If you want to just learn to program do the Zed Shaw free books http://learncodethehardway.org/ (these are free online)

The Go Programming Language book that just came out is also great, especially if you're interested in "back end" networky/server sheeit. http://www.gopl.io/ but it assumes you can already program somewhat.

If you want to learn C, get the standard K&R book on C. Then do Zed Shaw's "Learn C The Hard Way" as he shows you modern C. Then read the linux kernel (and/or BSD) style guide to see how modern C is written. There's also the book 21st Century C. Go is very similar to C with curly braces, similar for loop syntax, except it's garbage collected so no memory leaks.

tl;dr do a Zed Shaw book then pick up the go book and work through it.
>>
>>55293774
And Basically, to summarize, I am just looking at Solution Stacks and trying to find the one with the best result towards my goal and then trying to learn each part and its language.
>>
>>55294146
Awesome. Thank you so much. Downloading now
>>
>>55294020
Any kind of custom crypto engineering, even if you are just stringing together libraries like OpenSSL is very, very difficult and prone to errors.

Do these first: https://cryptopals.com/
Take this: https://www.crypto101.io/
Follow this blog: http://blog.cryptographyengineering.com/

Also go on hacker news and read every comment tptacek as written from the beginning of time. You'll see how Rogaway manipulated XTS in order to inject a blind shell (why you never use XTS to store in the 'cloud'), you'll see how people incorrectly use hashes to store passwords instead of bcrypt/scrypt, you'll see the millions of follies that cryptoengineers with PhDs have managed to do over the years from simple javascript hijacking to advanced curve backdooring.

It would be easier to just install Subgraph OS, and have your contacts pass your info over CoyIM (XMPP) and you become the 'above ground' propaganda news source posting it to Twitter much like how AnonNews or YourAnonNews works.
>>
>>55292470
Underrated post
>>
>>55294199
Thanks again. I may do the Jabber and Subgraph route now until I learn more. That way I can build a userbase and spread the "brand" if you will. I am still going to read everything you have linked and told me to. I find this all very interesting. I am having wild ideas. Cryptocurrency is what sparked my interest in computer programming and their possibility. The moneyed-elite have to be cut down by the sword or the coin for any progress to begin.
>>
>>55292505
>You're fired, go home and come back when you're done smoking pot and you realize you're just a glorified chemist.

Chemist here. No. We look down on Chem Engs. They can't work in a lab.
>>
>>55292116
>tl;dr: Should I learn C and C++ first before learning higher level languages like Go?
you should if you want to understand things better. plus, read books on networking and operating systems.
>>
>>55292584
Go is Kernigham's replacement for C, specifically for systems and network code. It's memory safe so isn't exploitable like C is. It has excellent concurrency built in for running an insane amount of threads all at the same time for distributed computing which is exactly what Google does. It's a very, very simple language, in fact it's more of a tool than it is a language.

Haskell is used by a lot of data scientists in the petroleum industry for some reason, I have no idea why. Haskell is also used by hedge fund traders working the stock exchange floor and if you ever go onto HN's who's hiring page (hacker News) you'll see Haskell jobs for HFT (High Freq Trading).

Rails is a shitty framework for running web apps. Pretty much the bulk of most "startups" are using RoR plus js. Ruby is pretty easy, it's a LISP-1 I believe dialect but "Rubyists" have some stupid fucking ideas like Gems and other bullshit. Imho Ruby and Rails is pure AIDS but almost everything runs it like Github, Airbnb, Craigslist, ect.

Erlang is for building custom web servers when you need extreme pinpoint concurrency or building a trading engine. You can also do this in Go but won't get as much accuracy which a lot of financial developers want.

Clojure is Lisp that runs in the JVM so you can use all of Java's existing libraries which is a big plus. There's many good reasons to run inside the JVM many of them security related due to memory leaks.

Companies choose which framework/language to use based on: levels of security needed, ability to hire employees (pajeets for low pay) and whatever tool fits the job, so if you need massively concurrency you use Go or Erlang
>>
>>55293774
Here's how computer languages work:
>Someone might have a problem or need a way to justify spending their time
>They create a new programming language, adding to a sea of already existing solutions
>Some other people get in on it. They add to the language's development or just use it for intended or unintended problem domains

You inherently choose a stack of software to solve a problem.

To simplify your thoughts, think service-oriented. You have problem or need that needs to be addressed. To address it, you must obtain a service that is rendered by a process, computer application, or physical entity. Processes may involve both digital and physical steps, as well as sub-processes.

Email is a required service:
>Email client as the interface to send and receive email (Thunderbird), installed on client machines
>Email server application to process, send/receive, store, and manage the email.
>Email server application requires other items to function like a data source/sink (MySQL) or shared code modules (libraries). These sit alongside the server application in the same environment.
>The environment needs to be managed by an operating system (Windows, Linux distro), that handles abstractions including management of logical networking and physical hardware functions.
Thread replies: 35
Thread images: 1

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

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.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.