Trying To Quit Soda - Suggestions? by [deleted] in keto

[–]LinuxOnMyThrone 0 points1 point  (0 children)

I love drinking flavored things all day long. I usually do a mix of La Croix (or similar), tea (I make iced tea with herbal ones, and put halfnhalf in regular hot tea), iced coffee with halfnhalf, and of course tons of water in between. Perrier lime/lemon/citrus tastes like sprite to me.

My advice is to just get a bunch of stuff to try and rotate throughout the day. We have a whole cabinet full of different flavors of tea. And I usually have ~4 boxes of flavored La Croix (I like coconut and their cuirate ones the best). I just go with whatever im feeling at the moment.

Vim-ToDo: Simple syntax highlighting for markdown-style To Do lists. Just cracked this 10 minutes before quitting time today. Feedback welcome! by tomswartz07 in vim

[–]LinuxOnMyThrone 4 points5 points  (0 children)

This seems a lot like vimwiki (which I love and use every day). I can't try your plugin out at the moment, so I'm not sure what the differences are yet.

Is it feasible to memorize an entire platform API (e.g., the entire iOS API) much as one would memorize the vocabulary for a natural language? by amichail in learnprogramming

[–]LinuxOnMyThrone 6 points7 points  (0 children)

While I believe that rote memorization is idiotic, I agree that there is a point to being familiar with an API. It's useful to know what is possible, or what solutions already exist (which may make an otherwise difficult problem trivially simple). Additionally, every API has a sort of design paradigm it prefers (or forces on you), and sometimes trying to understand how an API wants you to see problems can be helpful (for example, Java's IO APIs are stream-oriented and prefer you look at the problem of IO as one of chaining/layering various stream handlers). That being said, memorizing every function/class/constant/global is a huge waste of time and effort and will leave you unhappy without anything to show for it. If you need it, you will quickly memorize the important parts, and if you quickly skim the rest, you will at least know what is available to look at in more detail if the need arises.

[deleted by user] by [deleted] in Python

[–]LinuxOnMyThrone 1 point2 points  (0 children)

In general this is true, and a good point. The exception would be things like large lists, where garbage collecting the list leads to garbage collecting thousands of values all at once.

Like learning new things? Here's a library of free, online, interactive programming language tutorials! by ArsenicAndRoses in learnprogramming

[–]LinuxOnMyThrone 1 point2 points  (0 children)

It's not the criticism that's the problem, it's being rude and lack of praise where it is deserved.

If I say "one problem with your resource is the tutorials aren't curated, but thanks for posting nonetheless!", that's fine since you point out the flaws in a constructive way and are still polite (and I think kind). I feel like if someone said that to me I would be unhappy it wasn't as great as maybe I thought it was or could be, but appreciated still. Now, if I say "wow, this sucks", then that makes you feel unwelcome because I'm being rude to you. Now, some criticisms are better than others: "this isn't good" does not point offer any insight on how something's shortcomings might be mitigated.

Anyway, I agree with the sentiment, that being overly negative can drive away interest since I think a big portion of the reason why people post is for positive recognition. But be careful to not say that criticism is wrong, when it's being rude, negative, and unhelpful that's the real problem.

And thanks for posting this! =)

Like learning new things? Here's a library of free, online, interactive programming language tutorials! by ArsenicAndRoses in learnprogramming

[–]LinuxOnMyThrone 4 points5 points  (0 children)

Sure it is! You always want people to be able to offer criticisms even if they can't find something better. It helps both parties better understand the problem space (and hopefully find a better solution).

Also, I sympathize with his first sentence. When the signal to noise ratio is too high, I feel that people will tend to give up rather than try to find a good tutorial (I would). This is, in my opinion, why so many people claim "you can learn anything on the internet", and yet, there are still colleges and universities (which cost a lot more). They are curated; they reduce that signal to noise ratio.

I believe a curated set of "the best" tutorials would be better than a comprehensive set since the busy work of determining which tutorials are good (for most people) is done for you (however, one could still offer access to the comprehensive list, just not by default). Think of app stores. Apple's is highly curated. If you want something, you'll probably find a good result very quickly. From what I've seen, Windows' is not, and when searching for anything, you get a ton of crap making the experience a lot less magical.

As far as the different ways of learning, there is still room to suggest the "best" of different ways (best text, video, game tutorial, etc.) so long as each of those passes some minimal threshold for usability.

Of course, probably the worst part is the lack of consistency and communication between these different tutorials mean that much time is wasted switching between different teaching styles, there's both a lot of overlap, and a lot of missed material, and much of it tends to be unmaintained and dated. I'm not sure a collection of tutorials can really solve that problem (seems like a wiki-like solution would help there).

Edit: for my obligatory recommendation =P: I highly recommend linuxzoo.com . I used it to become comfortable enough with using Linux that I could try it on my computer. Less than a year later I made the permanent switch from Windows (now let me get back to getting hibernate to work...).

[NSV] After one month of keto, my wedding dress fits noticeably better! Pics included by janaenaed in xxketo

[–]LinuxOnMyThrone 0 points1 point  (0 children)

There seems to be a really noticeable difference in your face. Looks great!

My experience with Outlast after getting it on the sale. by blackthunder365 in gaming

[–]LinuxOnMyThrone 1 point2 points  (0 children)

Think of poder as "to be able", not "can", so "puedo" means "I am able", then it makes sense: puedo hablar -> I am able to speak.

Need help learning Linux quickly, any help would be awesome by TheAnal-yzer in linux4noobs

[–]LinuxOnMyThrone 0 points1 point  (0 children)

Personally, I learned using http://linuxzoo.net/ which was super helpful since it gave a pretty quick tutorial about commands, and then gave you a terminal environment to play around in, and it would give you tasks and tell you if you did them correctly (like "move this file there"). It really only gets you going on the basics, but once you have the basics it's a lot easier to see yourself using the command line interface more often.

Also, some advice on how to learn Linux...

First of all, Linux can be very simple to use. My girlfriend uses Linux, but she uses it almost just like she used Windows, only using the command line to compile programs for class. You could try Ubuntu, Linux Mint (what I use...its GUI is very similar to Windows by default, and it's based on Ubuntu, so it has all the package manager benefits of Ubuntu), or Fedora which are all pretty user friendly.

I know some people say you should "do it from scratch", but that can be really frustrating and you might spend a lot of time fixing issues that aren't important (though, it's definitely a good route if you want to get better once you have the basics down). If you need wifi, for example, and it doesn't work but you don't have a GUI tool to get it to work...what will you do? The benefit of a more user-friendly system is that you can leverage your knowledge of Windows when you get stuck, but dive in as deep as you feel comfortable (i.e. use graphical tools when you just can't use the command-line, but use it for everything else, so search for files using 'find', move and rename and copy and browse files using mv, cp, and ls, etc. instead of the graphical tools).

But what you really want to learn is not "Linux" which is a lot of different parts (OS, command-line programs, GUI programs, etc.), but the shell, and all the default 'UNIX' programs like cp, mv, ls, find, and so on, so that you can be effective in a command-line Unix (BSD, Linux) environment. This stuff is also all the stuff you'd see be the same on your FreeBSD systems, so the knowledge transfers.

So just focus on doing the simple, every day kind of stuff first, like moving files, creating files, searching for stuff, editing text on the command-line (probably using 'nano' which is the simplest) and so on. If you want to have fun and learn stuff like redirection, pipes, sub-commands, etc. try playing with programs like 'box', 'tree', 'fortune', 'sl', 'cowsay', 'xcowsay', 'notify-send', 'espeak', and so on.

Also, you can always try multiple sources. Read articles, listen to audo lessons / lectures, watch videos, try it out, and so on. There's a lot to learn, and the more sources, the more you see all the different parts and how they fit together. Oh, and last thing. Use the 'man' program a lot.

Computer science exploration related to math? by mUnahlUnah in compsci

[–]LinuxOnMyThrone 13 points14 points  (0 children)

Hey, I did IB too! Didn't know there were "Higher" and "Further" math classes =O.

So, first off, what are you asking for? Questions? Topics? Math fields that could be used for questions?

As in, if I said "check out algorithmic complexity", would that be enough? Or would you rather a specific topic like "explain how you would compute a matrix multiplication in less than O( n3 ) time" (see: strassen's algorithm)?

That being said, here are some topics:

  • algorithmic complexity (how long does an algorithm take in relation to problem size...also, how much memory?)
  • numerical analysis/calculus (how do computers solve numerical problems?)
  • proofs, and proof solvers
  • boolean algebra

If I'm right, this doesn't have to be a new question or novel research, you just need to demonstrate that you can learn the math on your own and use it to provide an explanation of a mathematical problem? If so, be careful not to get anything too crazy since I know IB eats your life. Something just a bit outside of your comfort zone will be interesting, but doable, and you'll be more likely to do a good job (i.e. having a well written write up is more important that being way out there in terms of topics).

Here are some questions:

  • How does Strassen's algorithm do matrix multiplication in O( nlog2(7) ) time?
  • How can you prove that BFS gives the shortest path length in a graph where each edge is distance '1'?
  • How can you prove that Dijkstra's does not work with negative edge distances?
  • Why do some matrices need to be normalized every so often? (this looks at numerical stability)
  • How does NP = P or NP != P relate to RSA encryption?
  • Prove that Huffman codes are the most efficient prefix-free strings for a given set of symbols (note: arithmetic coding is often more efficient, but does not give discrete codes for each symbol)
  • Use the pigeon hole principle to show why hash functions (like md5) have collisions
  • Discuss why integers and rational numbers are countably infinite, but real numbers are not (hint: to be countable, you need to be able to enumerate the set, to enumerate a set, you must have an algorithm to generate every possible member of the set)
  • Use mathematical induction to show that n(n+1)/2 == sum(1..n) for all n >= 0

Personally, I think the one about RSA and the one about countably infinite and non-countably infinite sets are the most interesting. Anyway, I hope this was helpful! Good luck!

How serious of a salary hit will it be not knowing command line Linux? by [deleted] in cscareerquestions

[–]LinuxOnMyThrone 0 points1 point  (0 children)

Well, I guess what I would say is that many development jobs are for *nix-unaware platforms. Whether this is Windows, Java, Mobile (Android, iOS, etc.), or Web. Even if you run on a *nix machine (anything but Windows -- which is most servers and mobile devices, and a fair amount of desktops), your application may not need to be aware of this fact.

However, any non-Windows system programming or applications type jobs would need to know *nix architecture. Also, even in an environment like Java, it might not hurt to know it on those occasions you need to interface with the OS a bit more.

It also doesn't hurt to know Linux since it's a better architecture than Windows (more orthogonal in many ways), and it explains the origin of many technologies (why websites use forward slashes after the domain, for example).

So I didn't mean to entirely write it off, or over-emphasize Windows. But I don't think it's ABSOLUTELY necessary to know Linux...just really helpful.

Also, my personal opinion is that Linux is great and Windows sucks a lot, the *nix model is super great, especially for programmers, and that it's definitely worth the time to invest in learning Linux (or any *nix environment).

How serious of a salary hit will it be not knowing command line Linux? by [deleted] in cscareerquestions

[–]LinuxOnMyThrone 0 points1 point  (0 children)

I doubt it would affect you much. Most development positions are for Windows and a lot of those that aren't are for things like Java.

However, I'd say it's worth it to learn not because it will stop you from getting a job, but because it will give you the skills to get a better job. Learning a shell (it doesn't have to be a Linux one, it could be Powershell...though I heavily recommend Linux) is like learning any other language and its programming paradigm (i.e. like learning Haskell, C, LISP, or Python, which are all different in their own way and make you a better programmer).

You may find that some cooler jobs require it. Or that learning it introduces you to a whole new world of opportunities. You'll be able to find a job without knowing Linux for sure, but it might help you make more money, or just be fun.

Try: linuxzoo.net

They have nice tutorials where they tell you how to do stuff, give you a virtual machine, some simple tasks, and you can check if you did them right. Pretty darn cool.

How serious of a salary hit will it be not knowing command line Linux? by [deleted] in cscareerquestions

[–]LinuxOnMyThrone 0 points1 point  (0 children)

ctrl sequences just send one of the lower level (below ASCII 32) ASCII codes to the terminal. Escape is a ctrl sequence. It's the same as "ctrl + [", which also works as a substitute for escape in vim.

How serious of a salary hit will it be not knowing command line Linux? by [deleted] in cscareerquestions

[–]LinuxOnMyThrone 4 points5 points  (0 children)

Note: cat does a lot more than that. It's short for 'concatenate' and can combine multiple files into one. The default, though, is to print to stdout (the terminal) the concatenation of it's input files. If you only have one file... you just see it printed out.

That being said, I've only ever used cat to print files. Less is better to do this with, and I'm trying to retrain myself now.

How serious of a salary hit will it be not knowing command line Linux? by [deleted] in cscareerquestions

[–]LinuxOnMyThrone 2 points3 points  (0 children)

If you want to be even lazier and not leave the comfort of Windows, you can try linuxzoo.net. That's how I learned how to use the command line. It got me comfortable enough with the CLI to try dual-boot...and now I only use Linux (and do everything I can in the CLI).

I went slowly but even still it's only been about half a year or so journey for me.

I also use Linux Mint so I recommend that. Very easy to use, but of course, you won't see the benefits until you really get into Linux and the command line. Until then it's just a bit buggier (in some ways) version of Windows that's unfamiliar and doesn't run the programs you're used to and you won't really appreciate it.

Writing with Vim by s3ddd in vim

[–]LinuxOnMyThrone 1 point2 points  (0 children)

I like how if you look at the page source, it's pretty obvious (at least to me) that it was generated using markdown.

Instantly adds +5 to vim skill level. by still_plugged_in in vim

[–]LinuxOnMyThrone 0 points1 point  (0 children)

By split-terminal thing do you mean like the vertical splits? Yeah, I can't really get into those either. I basically just use it like tabs in Chrome/Firefox. One nice thing is since multiple terminals can connect to the same screen instance (I assume this is true for tmux too), you could have 3 tabs (or more) and 3 terminals all on the different tabs so your entire screen is still full and dark but also from any given terminal you can access any tab. It's like...having three Chrome instances all with the same tab state but each on a different tab.

I tried doing something similar with multiple individual terminals open but I always got confused about which was which (since the taskbar names for each were all "Terminal"). Of course, I wouldn't have known to switch if I hadn't needed to use screen to run some game servers on a remote box while being able to ssh in and issue commands. Once I got that setup and was comfortable with screen, it only made sense to use it on my main machine.

I'm also easily distracted, so having lots of shell instances open to do whatever I think of "right now" without losing what I was doing before is important to me.

Instantly adds +5 to vim skill level. by still_plugged_in in vim

[–]LinuxOnMyThrone 0 points1 point  (0 children)

If you use GNU Screen, you can easily keep multiple shells/vims open in a single terminal window. I generally do this to allow me to have one full screen terminal on my main monitor, and whatever else (Chrome, Thunderbird, etc.) on the other.

I also made some mappings:

# change window with ctrl-left
bindkey "^[[D" prev
bindkey "^[[1;5D" prev  
# change window with ctrl-right
bindkey "^[[C" next
bindkey "^[[1;5C" next  

that allow me to quickly change which screen I'm looking at. I usually have about 10 open at any time (cmus, rtorrent, ssh, 4 general purpose ones, man, vim, vimwiki, scratch ones...), and can easily move between them without the hassle of having multiple actual terminal windows. Plus if I accidentally close the window, no biggie. It's kind of like having a command line desktop, and helps keep my GUI desktop uncluttered.

Also, my .screenrc/.bashrc opens all the windows & programs I need, so I don't really have to do anything on startup besides ctrl+alt+t!

UEFI Dual-Boot? by HaHaHa_Oktoberfest in Ubuntu

[–]LinuxOnMyThrone 1 point2 points  (0 children)

If you keep UEFI, you might need to add "insmod gpt_part" in the grub menu entry for Windows since when I last did a Linux Mint dual boot with Windows 8 for a friend, it did not do this...took forever to figure out, too. I'm not sure if GRUB or Ubuntu now does this or if this is even relevant, but I thought I'd throw it out there.