Comment on: C++ is a pleasure to work with.
Most languages are at this point. But C++ has so many features, if you don't know what to do with them, it's very easy to make a mess of things.
Comment on: Please help: Need to work remote within 9 months
My advice would be to sign up for an AWS account and build some stuff using their free tier of services (they are very generous). There's lots of stuff you can create, but do something end-to-end, even if it's a dumb thing like dumping shit from Twitter's API into some kind of analysis tool.
Comment on: Pair programming: Why it is a bad idea.
If you don't have the patience to mentor an inexperienced developer, you lack the experience necessary for your position. Ask to be apprenticed or resign immediately and start your own company where no one will slow you down.
Comment on: [Rant] Angular 2 is a disaster
welcome to voat
Comment on: I feel dirty ... Lol ... Started using visual studio code and so far liking it better than sublime.
well shit there is a linux version https://code.visualstudio.com/docs/?dv=linux64_deb
Comment on: I feel dirty ... Lol ... Started using visual studio code and so far liking it better than sublime.
I used PhpStorm for a bit and found it to be really slow and un-intuitive compared with Netbeans. Eclipse is kinda sucky too, but I haven't used it seriously in a few years so things could have changed. I don't have a Windows machine so I've no way to try VSC.
Comment on: What language should I learn to become an Artificial Intelligence programmer?
0 03 Jun 2017 02:35 u/Drenki in v/programmingComment on: Forget quantum and AI security hype, just write bug-free code, dammit
Haha, I'm going to train a neural network to parse CERT exploit alerts, provide it with code that demonstrates previous exploits, containers that can be configured as target environments, and then sit back and watch as it magics me up proof of concept scripts each time a new exploit gets reported.
Comment on: Agile, Unit tests and rapid release cycle is pure evil.
Sorry man, but the guys with the money figured out it really pays to be a first-mover and agile delivers... something... quickly so it will be popular for a while still to come.
Do you find yourself in a non-first mover market? Then you may have succumbed to industrial espionage in the form of culture poisoning. Make your opponent think an ineffective strategy is desirable, and you won't have to work too hard to defeat him.
Comment on: Which programming language to learn first [infographic]
Kind of a hard sell as PHP is 100% geared towards making web development possible. But, the concept of functional programming is pretty powerful - it's currently used a lot in JavaScript.
The basic idea is that your function has input parameters and it's job is to transform those inputs into a new output. That is, a function should not touch anything outside of what it's passed. So if you pass an array into a function, when it finishes, it gives you a new array (or some other new data). This means that you can have a very high confidence when it comes to testing your application or making changes and usually you end up with more readable code.
The JavaScript world has gone crazy with functional programming lately. So to really wrap your head around some of the libraries people are creating, understanding how functional programming works really helps.
Really, for web development, the move is to JavaScript. Why should the server side code use something different than the client-side code? (Yes, client-side will always be more restrictive, but there is still going to be tons of overlap.)
Comment on: Which programming language to learn first [infographic]
1 14 Jun 2016 18:17 u/Drenki in v/programmingComment on: Why can't programmers... Program?
But law, medicine, and finance are already full of idiots.
Comment on: (Daniel Laeng) Real programmers use programming languages (Not shell scripts) [slide deck]
2 04 May 2016 20:31 u/Drenki in v/programmingComment on: F*** You, I Quit - Hiring Is Broken
I disagree, none of his exercises were out-of-the-ordinary.
Comment on: New to mobile programming - how difficult is this concept?
Probably not too hard, but I don't have much experience developing on mobile.
Given how many people are creating apps these days, seems anyone could do it with a little dedication.
For anyone who wants to give it a go, I would also recommend this:
Don't transfer garbage. Have it send unecrypted text that has all the keywords the three letter agencies watch for. It's unlikely to overload their system, but at least it makes their domestic spying less useful.
Comment on: Python game developing Problem ?
I subscribed though.
Comment on: Python game developing Problem ?
Sorry mang, I don't know shit about moderating or actually developing games.
Creating games is something that I wanted to pursue a long time ago, but the industry changed and now it's pretty disgusting (AAA money grabs and "casual" gaming) or overcrowded (indie stuff).
Appreciate the offer, though.
Comment on: Python game developing Problem ?
Take a look at pygame.
Comment on: Creating an AI that writes and improves programs
He was just starting small.
Comment on: Hey, what about books for preparing for programming interviews (and tests)?
HR is your biggest barrier. Once you've passed that, I've found that, these days, they are more interested in whether you'll fit in with the culture. At least, that's been my experiences with medium - large companies.
But, hey, once you do land a job, you should come back here and post your impressions of the job-hunting experience.
Comment on: Looking for a text editor or IDE
https://netbeans.org/ is quite good at this point and t's not just for Java.
Comment on: Does the Go programming language have any future?
Apple has Swift for its iOS and devs seem to love it so you could make the argument that Google would create and support a similar language for Android.
But Android devs and iOS devs are two different beasts. Even though it's clunky and slow, a ton of people are too familiar with Java and too stubborn/uncurious to really switch.
It shouldn't matter to you too much whether it has a future. You should ask, "Is this the best tool for my current project?"
As you advance as a programmer, you'll see that languages don't matter as nearly as much as the platform(s) where your program runs and the available development tools.
Comment on: As a Linux Developer, do you find the GNOME or KDE ecosystems better and why?
Bozos use anything but emacs!
Comment on: As a Linux Developer, do you find the GNOME or KDE ecosystems better and why?
I came to say this.
Comment on: Coding Bootcamps ?.
I would say that the bootcamps are mostly targeted at existing programmers (or experienced hobbyists) who want to advance with a new skillset.
Comment on: Extremely severe bug leaves dizzying number of software and devices vulnerable
da fug, getaddrinfo() is an extremely straightforward function. how the fuck did they mess it up. i gotta see this.
Comment on: What constitutes 'coding'?
"Scripting" usually refers to automating one or more existing programs with a scripting language. Performance, architecture, security, correctness, etc. are not really a concern so much as getting the job done.
"Programming" or "software development/engineering" will take those other things into account because the goal is to make a robust application or library.
"Coding" is what lay-people call the other two things. Try to avoid these people at all costs when learning because they usually have terrible advice, practices, or understanding of how computer fundamentally work.
Comment on: I' found that i'm learning about C# (and other programming languages/syntaxes) a thousand times faster when i know the grouping/names/functions of the structure. could anyone compile a list of terms?
Well, it helps if you have an underlying understanding of how programming languages work, but here's some references:
http://php.net/manual/en/langref.php
http://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html
https://docs.python.org/3.5/reference/
http://perldoc.perl.org/index-language.html
None of these will tell you how the languages work behind the scense. They tell you how to work with the languages themselves. When it comes down to it, there's not a whole lot of big differences between languages, though people like to pretend that there are.
The biggest differences between languages is whether they are functional or imperative. Of the above listed, Perl is probably the most interesting. It has no built-in object system, but you can use the features of the language to build an object system. Unfortunately, this means that there are many different object systems running around in its libraries now.
Most O'Reilly books have an introduction book for a language that covers most of the concepts, etc. The Perl ones are a lot of fun, actually.
Comment on: Anyone know what happened to Dev-C++ and Orwell?
I dunno. I've been using Netbeans and it's pretty good.
Comment on: I want to learn Python.
Are you still using Eclipse? I've switched over to Netbeans.
Comment on: I want to learn Python.
True, I hate it as well, but it does get rid of a lot of arguments about what formatting style to follow.
Comment on: Programmer quits work on project after getting triggered by a variable name (The comments, however . . .)
For the people who matter
Comment on: OpenSSH and the dangers of unused code
Most compilers are good compilers these days, you just have to make sure you turn turn on the right options
gcc -Wunreachable-code
In non-compiled languages, a linter will do the same thing.
Comment on: OpenSSH and the dangers of unused code
A good compiler will remove unused code or at least warn you about it.
Comment on: OpenSSH and the dangers of unused code
Unused code is unreachable code and poses no risks.
This is talking about half-implemented features? I'm not even sure what their point is.
Comment on: How Microsoft Lost the API War - Joel on Software
(article is old, but i thought this was interesting)
IBM reinvented itself as a big ol' technology consulting company that also happens to make cheap plastic telephones.
Hasn't IBM's sales been declining for the past 18 consecutive quarters?
Announcing Rust 1.6 - The Rust Programming Language Blog
5 1 comment 24 Jan 2016 19:06 u/Drenki (..) in v/programmingLandmark Algorithm Breaks 30-Year Impasse | Quanta Magazine
0 0 comments 24 Jan 2016 13:20 u/Drenki (..) in v/programmingComment on: The Ruby Programming Language community is now under siege by SJW entryists and the trojan horse Code of Conduct
Haha, what?
Comment on: Programming for a Year and Need Direction
People live-stream their coding sometimes. Could be a great way to get inside their head!
As for getting hired, showing a portfolio of work is always a great way to make up for experience. It also really helps if you know people in the business (but this is true of any job). Contributions to open source projects always looks good because they are usually have a pretty chaotic organization to them.
Don't forget reading material - they'll probably want to know how you stay up-to-date with our ever-evolving technologies.
Comment on: I am having a hard time finding examples....
Classes are just conceptual boxes that you can use to keep related methods and variables in. Some people try to break their programs up intonthe classes they think they should have, but another way is to just start writing code and once things are working, start figuring out what what makes sense to group together.
As for code samples, Stack Exchange is usually an excellent resource.
There is no such thing as good HTML or CSS. I do web programming and am super thankful my front-end people handle the layout stuff.
As someone else said, look at Javascript (which is a super cool language given what it can do and when it was developed).
I consider this essential reading for Javascript: http://javascript.crockford.com
This is a good article on Functional Programming, which you may find insightful: https://www.smashingmagazine.com/2014/07/dont-be-scared-of-functional-programming/
In general, Smashing Magazine is a pretty good trade publication, I highly recommend putting it on your reading list.
What else, hrmm..., sitepoint.com cane be hit or miss but there are some good tutorials every now and then.
Comment on: I am having a hard time finding examples....
O'Reilly books have traditionally been a good source for explaining a language or technology. They won't give you a fundamental understanding of the theory of programming, though, and unfortunately I don't know of any resources off-hand.
Have you tried any of the online learning places like Codecademy? They are pretty basic, but serve as a good introduction.
Comment on: Why Java? Tales from a Python Convert : sookocheff.com
C# is still pretty much Windows-only for now.
The state of programming languages is pretty poor at the moment.
There was an explosion in popularity of Ruby, Python, Clojure, Go, and a bunch of other languages, but they haven't really added anything to programming languages. What they've done is add elaborate tools and scaffolds to make working with them easier. that is, what some people call a "feature" of a language is really just syntactic sugar.
Naive Programmer: "it's" is so much easier to write than "it is", I'm going to write a new language which has this feature!
Unfortunately, it means that the good ideas have been spread out among the different "languages".
Take a look at the "Multiple Catch" examples. Nothing has changed with the concept of exceptions or how they're thrown and caught. The only thing that's changed is the perceived convenience of the new syntax. I say perceived convenience because while the new method makes it easier to duplicate code, it means that you have to do a lot of extra work when you want to "unduplicate" that code. In other words, something has changed in your program and you need to handle each exception differently.
Also:
unit tests — which are only effective if you already know what bugs you have
u wot?
Comment on: DevopsWiki : List of Linux Programming and System administration Tutorials
A camera.
Comment on: DevopsWiki : List of Linux Programming and System administration Tutorials
0 10 Dec 2015 17:14 u/Drenki in v/programmingComment on: Do you need an advanced degree to work with "cooler" things like AI and Machine Learning?
I have an undergraduate degree and my education included these topics (even had a big project on machine learning). I would only consider them "advanced" in that they are a step up from the more common data structures and algorithms.
Now, if you want to be able to understand the gibberish language used in research papers, you will either want to go into grad school or just tough out the needlessly inflated language.
Comment on: "Tomato" versus "#FF6347" - the tragicomic history of CSS color names
It was a terrible idea. Would have been nice if you could create a color definition, thoug really not necessary once you have a proper toolchain to manage such minutiae.
Comment on: Is having a Documentation Manager a good idea?
Oh man, I'm sorry. Hopefully you're not also running on Ubuntu because it is built off of Debian unstable and has given us nothing but problems.
It's SUPER POPULAR in the dev community though.
Comment on: Is having a Documentation Manager a good idea?
What project?
Comment on: Is having a Documentation Manager a good idea?
Consider these scenarios:
You have documentation for a particular function or class. (source doc)
You have documentation for how the program is supposed to operate and how to tell it what to do. (purpose of code + manual for how things work + configuration documentation)
If you are providing a service, then you must keep track of how everything works together. (system documentation)
For the first, your programmer's tools should be doing this automatically. Maybe details are left out, but it's something THEY should be adding and filling in when it gets overlooked.
For the second, yes, you absolutely someone who is a technical writer. I can't tell you how many projects I've found on github where there is literally:
- No explanation of what the project is.
- No explanation of the theory underpinning its function.
- No explanation of how to install it.
- No explanation of how to configure it or what the configuration options do.
As a programmer, but someone who can speak fucking English (yes it is a country and I have been there), this infuriates me. I usually find that these projects are garbage, despite how convenient they may be once you figure out 1-4.
For the third type, you would normally have your network person, engineering person (devops), and programmers get together to figure out all the little pieces of information that are needed to rebuild your system in the event of a failure. This information is tremendously useful for when a new person comes onto the team or when a piece of software fails or even when hardware bites the dust. Every once in a while, you should practice rebuilding everything from your notes to make sure it's all up to date - preferably with VMs in some kind of hypervisor environment.
Hope this helps.
Comment on: Hand coded assembly beats intrinsics in speed and simplicity
But then how will NSA inject backdoors if you do the assembly by hand?
Comment on: Hand coded assembly beats intrinsics in speed and simplicity
Whoa, this looks like it will be a heavy read. May have to save it for the weekend.
Comment on: What makes a good interface?
You missed the point. The idea is to start off with a bad user interface and then build it into a good one. This is only a couple of small steps towards that goal, with explanations behind each decision.
Comment on: Netpowder, a mini-server in the browser
You seem relatively young and I see a very bright career ahead for you.
Just don't get sucked up into Facebook, Google, or Microsoft. They will likely waste your talents.
Comment on: Python or Perl? + Questions
Haha, man, I swear there is a conspiracy to keep things complicated. Especially with web development.
With CSS, for example, let's say I want to place an item dead center in the middle of the screen. I can't do it anymore without some bizarre incantations.
It should be "horizontal-align: center;" and "vertical-align: middle;". Those make sense, right? Nope, you gotta do all this because they've created make-work: http://www.w3.org/Style/Examples/007/center.en.html
Comment on: Python or Perl? + Questions
I think one of the biggest problems in CS, from an educational standpoint, is that the new generations aren't learning much from the old ones. Things are constantly being re-invented because there is an underlying idea that "new = better" and because they weren't able to understand why or how things came to work the way they do.
Don't get me wrong, the structures that have risen up are monstrous and daunting and there hasn't been much work towards making them accessible.
Comment on: Python or Perl? + Questions
Perl is a more interesting language than Python or Ruby; the other two are far more fashionable, though. You may want to learn both, but use Python or Ruby in day-to-day projects.
The reason I say it's more interesting is because it was created by someone who studied linguistics. Read this speech given in 1999 (it's still relevant even today) and if it interests you, go read the Perl llama book ("Learning Perl") and see how you like it. I guarantee it's unlike any book about programming you've ever read.
To answer your other questions:
- There was a Perl compiler, but the executables it produced had about 1.5MB added to them for the overhead needed. So not really worth it, especially considering it is included in just about every *nix distribution.
- Perl is a scripting language, as others have pointed out. You write the code, you ask the Perl interpreter to run it, it compiles your source into bytecode and runs it in on a virtual machine (python, php, ruby, etc all do this too).
- Python thinks it knows better than you about source code formatting. It might be right, but I don't really care either way.
Perl has a repository of libraries called CPAN. It's huge and a bit of a mess trying to find which library is right for you. Don't worry about that too much because it isn't necessary if you just want to try it out.
PHP is a good alternative if you are looking to build resume skills. Even though there are other, more fashionable, languages out there, the large majority is for PHP (just don't expect to end up at a fancy silicon valley start-up with PHP).
Comment on: Python or Perl? + Questions
I agree with you mostly. But you may not realize how much of the internet is still being held together by Perl.
Comment on: Developers Who Can Build Things from Scratch
I guess I've been lucky because I've always been around those types of developers. I didn't know there was another kind!
Comment on: The magic of the Kalman filter, in pictures
Pictures? No, there are diagrams. Looking at them, I have no idea what a Kalman filter is, what it does, or how it works.
I'm not shitting on the content of the link, I just got something completely different from what I expected when clicking.
Comment on: Project Rosalind - learning bioinformatics with programming exercises
Thank you for this! A long time ago, I worked for a small company that made bioinformatics software more readily available to my university's labs. I worked on the infrastructure of making it available, not the actual software itself. I was always curious though so I'm going to take a look at this and see what I can pick up.
Comment on: Locks and concurrency
Yes, I was familiar with deadlocks and race condition issues. Never actually ran into one, though my programs were fairly small.
Comment on: Locks and concurrency
I agree. I accidentally started programming using concurrency. I say "accidentally" because I was the only programmer and I didn't know any better.
I'm not working at that low a level anymore, unfortunately, but it gave me a much better appreciation of things that do it well.
I'm bookmarking this so I'll have a reliably clear reference should I ever decide it's time to dust off those skills.
Comment on: In light of GitHub's recently-announced anti-straight-white-male Code of Conduct, I'd like to reiterate some alternatives to them.
That's exactly the point - get more people using it heavily who don't pay for the service. Funding for start-ups vanishes if they are around too long without show potential for profit.
Comment on: In light of GitHub's recently-announced anti-straight-white-male Code of Conduct, I'd like to reiterate some alternatives to them.
In this case, over-use of a free product is as effective or better than a boycott.
If their system is strained, their wallets are strained, and the only recourse they have is to charge paying customers more, which drives them to competitors. If their response is to offer fewer free services, their popularity goes down and they become irrelevant.
Comment on: [Question] PostgreSQL vs MySQL?
Pretty much all of this goes for either MySQL or MariaDB.
- MySQL has had "foreign data wrapper" support since around 2007, they call it Federated Databases.
- #mysql on Freenode.
- https://dev.mysql.com/doc/ - some of the best-written documentation anywhere.
- MySQL has a good number of creature-comfor featurse. For example, the "UPSERT" command has been with MySQL for a decade. MySQL also has had the "REPLACE" command which will either add a new row, or replace one if the values you're passing match an existing row's primary key.
- MariaDB has support for working with JSON directly, though I don't know why you'd do this at the database level unless you absolutely had to. Probably makes more sense at the app level.
- MySQL can operate in a strict mode where it will complain about truncated values or bad dates more vocally. (By default, it generates warnings, in strict mode, it will error.)
One of the things that really took me by surprise with Postgres is how rigid it is. For example, there is no good way to join tables from two different databases, even if they are on the same server. Actually, I think you can do it with federated databases now, but it's still a bunch of hoops to jump through. With MySQL the syntax is straightforward, the only drawback is that the user doing the query must have the right permissions for both.
There's lots of little differences like this (and big ones, too). At this point, I don't even know if it makes sense to try to compare them. For your purposes, either is most likely going to do the job and then some.
Comment on: [Question] PostgreSQL vs MySQL?
Man, it's an old, tired debate as to which is better.
For small projects, really doesn't matter. For serious projects, you're likely going to need to mod the database itself to get the featurse / performance you need.
A common jab at MySQL / MariaDb is that its SQL syntax is not 100% ANSI compliant. In the real world, it doesn't matter too much whether your SQL is 100% ANSI compliant as the one advantage would be for when you switch database providers and that almost never happens. Even when it does happen, it's likely that you had some kind of wrapper around your SQL and that wrapper will be able to gracefully handle the switch to a new database system. In day to day use, the choices made for MySQL syntax make sense and make the life of a DB admin a lot easier.
Actually, all of the tools around MySQL make it a nicer environment for administration. phpMyAdmin and the MySQL command-line tool are head and shoulders above what PostgreSQL has on offer (i.e. pgAdmin III).
ACID compliance. PostgreSQL and MySQL both offer ACID compliant databases (MySQL through its InnoDB storage engine).
There is the problem of scaling for both. Once you get past a single server, unless it's a simple master-slave set up, you're going to have to make a serious compromise. Take a look at this matrix to get an idea of how messy the landscape is here. For MySQL, there is a storage engine called NDB that's made for high-availability applications. One major downside is that the tables must be kept in memory so you will have some beefy hardware requirements. NDB seems to provide a much more sophisticated solution to PostgreSQL's.
Short story, for a small-medium website, either is going to work pretty well for you. MySQL / MariaDB tends to be more intuitive while PostgreSQL tends to be more "correct."
Here's a good example of how MySQL is easier to work with in a day-to-day situation. TL;DR While column order reallly doesn't matter too much, MySQL goes above the strict ANSI SQL to give you a waaaaay nicer way to add a column to a table where you want it. PostgreSQL is stuck with the mentality that plain ANSI syntax is the only thing they'll consider. I run into these little quirks all the time since I work with both DBs and it amazes me how fun it is to work with MySQL while PostgreSQL is such a pain.
For day-to-day maintenance, there's only one thing I've found Postgres doing better and that's listening when I tell it to shut down a run-away or locked query. Doesn't happen often, but when I need it, Postgres handles it pretty quick. been a while since I've had to do it on the MySQL db but a few years ago when it was more actively worked on, it seemed like the kill command was obeyed only sometimes.
Comment on: Is it possible to make my own private cloud server?
Might be expensive to have your own cloud, but I'm sure you could set up a personal server.
Comment on: Overview of the JavaScript ecosystem
Haha, basically, if you aren't already entrenched in the JavaScript ecosystem already, you are hosed if you want to break in.
This shit has gotten needlessly complicated.
Comment on: I have created a subverse dedicated to data-structures and algorithms
I subscribe. Show me algostructure scale internet linearly.
oh good, let's have a flame war :-D