N O
HN user
bwackwat
https://bwackwat.com/
I enjoyed the paper, thanks. I am now inspired to rewrite some C++ in Haskell.
Anyone have a modern example of this type of research? Opinions are welcome!
This is the most valuable comment here.
All you need is vanilla JavaScript! Seriously. Email me at john.has.come@gmail.com I will be glad to discuss my approach to completely avoiding these frameworks.
It was remarkable to me that I could not think of a good example for you. Apparently I myself to not have any good C# to share even though I have worked with the language a lot.
Anyways, I suggest you use Visual Studio, use the code formatter, and stick to common good programming practices such as: using proper accessors (public, private, protected), don't duplicate code, name variables with style, document things that you think you'll be curious about later, and use git to keep track of your code.
Haha, yes!
Wait a second, lets just use rsync!
Coffee
I have been using symmetrically encrypted TCP servers and clients, which I have been developing in a C++ library.
I believe the standard is basically TLS 1.2 asymmetric encryption and then token-based authentication via username/password mechanisms. For example, most databases are securely accessible via external services using TLS.
Key distribution in my case (symmetric encryption,) is trivial, but securing or replacing those keys is non-trivial and I have yet to solve this problem.
Nonetheless, securing private or even public TLS keys is a seriously difficult problem as well.
This is a hilariously difficult question, and I think stuff4ben provided a great answer.
I'm going to start naming my web servers:
web-server-load-balancer
web-server-1
web-server-2
web-server-3
Right. I think it is quite practical to wrap std::thread into "tasks" using std::mutex and/or std::atomic<T>.
If anyone has a multi-threaded conundrum, I'd be glad to discuss it.
Modern C++ has some great, simple constructs like std::thread and std::mutex.
What kind of parallelization do you need?
Ok so I guess the resulting lesson from Canada for me is that having a HASH or MAC for encrypted files is the most critical part of any secure system OP is interested in.
Furthermore, Canada, what about privately managed machines communicating via TCP and AES 256 CBC symmetrically encrypted messages? I also use a random salt and a transaction number.
Until now, I was thinking that successfully decrypted data would be safe. Is the case for TCP encrypted data the same? I need to have a MAC for each message and verify that between ACK's or something?
EDIT: Did some research: https://en.wikipedia.org/wiki/Authenticated_encryption
It looks like incorporating a MAC within or alongside the encrypted data is not as insecure or as complex as I was afraid.
Can both my TCP encryption and OP's file encryption problem by solved by just appending a HASH of the encrypted data to the end of the encrypted data (EtM), or appending a HASH of the plaintext data to the end of the plaintext data and then encrypting that (MtE)?
I agree that using the command line for this type of problem is going to be problematic.
I also see clearly how hashing the encrypted data before "storing it at this 3rd party" would allow you to verify CBC block modifications.
I guess I don't understand GPG well enough to see how it solves this problem better than AES CBC 256. Could you perchance provide a link? Or explain how GPG would take care of this?
He is uploading files to an UNTRUSTED third party.
I'm personally curious about the best solution...
@Canada, if the "malicious"(untrusted?) server modifies the backup how could you decrypt anyway?
Use AES 256 bit encryption. It looks like you found some openssl command line tools to do this, which appears fine. (I can't speak on the details of that particular tool.) Depending on your technology stack, there are probably a number of tools which can programmatically encrypt and decrypt files.
For example, I use CryptoPP for AES 256 bit encryption in C++.
VirtualBox
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-...
Then you can setup a great Linux VM and not have to worry about anything! (Sorta joking.)
# yum -y install epel-release xterm firefox
# yum -y install cinnamon*
# echo "exec /usr/bin/cinnamon-session" >> ~/.xinitrc
# startx
Oh yeah you mentioned code editors I recommend VIM, GEDIT, or Sublime Text 3 on Windows.
redhat linux, postgresql, modern C++, and plain old js
I see how a mail server would be annoying to maintain. How about a file server with server-grade hard disks setup in RAID?
I hope current digital file storage strategies and Ethernet internet exists in 20 years!
Notepad on Windows, vi on Linux.
THIS is a great idea. THIS is how brain-wave-mapping should be approached. THIS is actually how AI will become anything.
Create a successful business; "$300k is not that big amount."
Software engineering covers is an increasingly wide range of skills. For me, it has been critically important to realize the things which I love doing in this field, and the things which I am genuinely particularly good at.
Overall I might not necessarily "talented," but I certainly enjoy my side projects, have looked for jobs in different areas of work, and try not to shy away from my opinions.
Your comments are varied and it is difficult to fully understand your perspective. Nonetheless, I greatly recommend finding two things: the things you love about software engineering, and the things you believe you have done well within the field.
Capitalize on those things!
Code with few dependencies! I am not a fan of app-generators or specialized overweight package managers. Folks take enough advantage of yum/apt.
I personally recommend a vanilla front-end. Contact me for details.
^_^
Do what inspires you! That likely implies you don't consider the opportunity costs; be ready to take risks and learn from your mistakes.
Try to reach milestones on any project. Personally, in this stage of my software engineering I almost always intend to ship projects with "production" quality to "production".
I was stickin' to Python :)
That's a cool alternative though, thanks.
import os
os.urandom(24)
'\x17\x96e\x94]\xa0\xb8\x1e\x8b\xee\xdd\xe9\x91^\x9c\xda\x94\t\xe8S\xa1Oe_'
os.urandom(24).encode('hex')
'cd48e1c22de0961d5d1bfb14f8a66e006cfb1cfbf3f0c0f3'
My opinion is that this is disingenuous to the 'stdlib' title.
Consider it.
Well it was a type of joke on describing the job with "sexy". The meaning is: don't get tricked. Job interviewers intentionally make the position/place/company appear and feel great, but the reality might not hold up to that. It's an expectation.
It sounds like the new city and the lowered salary of the job with "sexy" features is thus also a fine idea. Without more details it is purely up to your judgement on how "sexy" that job really is compared to the other.
Sexy.
"...sexy job and sexy product..."
Is that what your genitals or brains tell you? Trust your gut. My gut tells me that that particular insight will not run true. Higher pay in a place you are already comfortable is certainly... less risky.
For some an interesting job is worth everything; for others salary is worth everything.
How old are you? Do you have a family? Is moving easy? How badly do you need money, considering debt?