Open Side Menu Go to the Top

03-09-2013 , 03:13 AM
Quote:
Originally Posted by gaming_mouse
dave,

curious why you think C is "totally awesome"? especially as someone who has experience with clojure and python....
Good question;

Consider that book I linked to up-thread. If you take away the exercises, the index, and the extra stuff that few would ever need, the content focusing on the "how-to" aspects of the language is about 500 (+/- 50 ?) pages and those pages give an incredibly thorough treatment of the language, ranging from all the oddities of printf() to complex pointer management. C is incredibly simple yet powerful.

How many pages are those Lutz Python Books? How many pages are the Python docs?

Specific examples;

C - > Array

Clojure "equivalent" to Array -> Seq, List, Vector. The operations on these types are, for the most part exactly the same, but there are some irritating differences.

"How to do X?"

C, from what I've done so far, has been very simple to work with. The solutions to everything I've worked with so far has been utterly obvious.

Going back to the array:

If you want to print a table that prints the array index and the values of those indices:

Code:
Index           Value
0                 7
1                 7
2                 6
3                 0
4                 1
5                 8
How many ways can you think of to do it in C?

How many ways are there to do this in Python?

Attitude.

C is meant to be close to the machine. This is obvious from the very first few programs you can write. C makes this machine-nearness feel welcome.

Contrast this with Clojure, which is built on the JVM. For the most part, I resent Java interop. Mixing (java.util.Date), et.al. in Clojure just looks ugly and feels like hackery when you do do this.

Basically, working with a simple language with no added cruft is a breath of fresh air for me. I'm also very pleased to be learning about procedural and imperative concepts, so maybe it is partly because it is so new to me, but there is something to be said about how straight-forward and intuitive C makes all of this stuff feel.

Okay, admittedly, I haven't got the the part on complicated pointer and memory management, so maybe I'll change my mind really quick at that point. The simplistic pointers and string management is conceptually easier than Lisp though. Doing stack management and registers in Lisp is an utter nightmare and I really can't think how C could make it more complicated. Mind that the Scheme I used didn't have indices.

I don't feel like C, Python, or Clojure are any worse and better than the other. They all have their silly things that will burn you from time to time, but they all have their place in the "Totally Awesome" category. I just think that these three languages excel at their own little things and do a great job at it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
03-09-2013 , 05:32 AM
Always cracks me up to go to the doctor and see their software still rocking the Windows 3.1 interface. Doctors and lawyers have no incentive whatsoever to upgrade their software. It would probably cost them money because they could bill less hours.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-09-2013 , 07:26 AM
Last time I tried to learn C++ beyond simple stuff I came away with the following conclusion:
I'm too dumb for C++
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-09-2013 , 10:32 AM
I totally disagree with this take Dave. If you had a choice between writing say a Windows device driver in C or C++ you should choose C++ and it isn't even close. C and C++ are "close enough" to the underlying architecture of the machine to give one the required performance. Writing gigabytes of assembly language code would be ridiculous (to get really close to the architecture) as globally optimizing C/C++ compilers is obviously a better choice. Clearly many languages don't satisfy the general requirements stated above.

Now if I was writing a windows app I wouldn't consider C/C++, seriously. Would you do linear programming in Python or Lisp? Web applications?

My view is that that the pick the language(s) that are appropriate for the problem domain you're working in.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-09-2013 , 02:03 PM
Quote:
Originally Posted by adios
I totally disagree with this take Dave.
I'm sorry. I'm not sure what this refers to. Are you saying about my post in particular?

Quote:
If you had a choice between writing say a Windows device driver in C or C++ you should choose C++ and it isn't even close. C and C++ are "close enough" to the underlying architecture of the machine to give one the required performance. Writing gigabytes of assembly language code would be ridiculous (to get really close to the architecture) as globally optimizing C/C++ compilers is obviously a better choice. Clearly many languages don't satisfy the general requirements stated above.
I think everyone here sort of hammered on the thought that C++ is the only choice in certain domains. sng_jason is a (real) games programmer. I do recall our discussion about GOAL, but that is an outlier company.

Of course, some people are sick-minded and like to fiddle with bits. Not sure about writing gigs of it, but if that's what they like, more power to them.

Quote:
Now if I was writing a windows app I wouldn't consider C/C++, seriously.
If you asked me today? I wouldn't either, but I wouldn't be particularly proud of my creation so there's no good opinion there. I would probably prefer something that allows access direct access to C or compiles to JVM and probably show a preference to JVM. May also prefer something like IronPython to access .NET.

I'd be a tad bit hesitant to do something in Python, tbh. It probably just still has the "teaching language" standing in my head that I'll never be able to get rid of, but I'm also not sure how well it would fare once the app gets past a certain size. It really is a simple language to code in but there are plenty of ways to get strung up quick. Largest app I ever wrote was about 2,000 LOC, and it is not a web app, so take that for what it's worth.

Quote:
Would you do linear programming in Python or Lisp?
Not sure what linear programming is. I thought it was more or less a logic course and not particularly focused on programming. Linear Algebra and matrix multiplication? Not in the "real" world but as an academic exercise, yeah, already done some.

Quote:
Web applications?
Probably have a preference to doing web apps in Lisp. :/

Last edited by daveT; 03-09-2013 at 02:15 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-09-2013 , 03:35 PM
Wanted to clarify on using python for larger projects. I *do* think it is a perfectly okay language to make larger programs. My experience was a little underwhelming because the SQL library I used wasn't that good and python's csv library is lacking. Assuming an outstanding SQL/PL or a decent python SQL DSL -- I guess using the pandas library -- I'm sure teams or individuals can create highly elegant large systems. I'm not entirely sure how it would turn out if it was turtles all the way down to OS though, so I'd probably look into Jython or IronPython before I ever attempted a non-web app with it again.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-09-2013 , 04:17 PM
Quote:
Originally Posted by daveT
If anyone is interested in a great C book, check out:
http://www.scribd.com/doc/39933932/C...ition-K-N-King
Thanks for this link.

Also, good point about looking back at where I was before starting to learn any CS and thinking about what I'm willing to try now. Definitely have started to develop a "computational thinking" mindset and am not as intimidated by large project ideas.

I would think you fall into the category of programmers who just enjoy the art of solving problems, no? Are you stimulated by all "hard" (as opposed to soft subjects such as English and Social Studeis) problems--i.e. theoretical math / arbitrary scenarios--or more solely CS-related problems?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-10-2013 , 09:58 AM
Quote:
Originally Posted by Urinal Mint
Also, good point about looking back at where I was before starting to learn any CS and thinking about what I'm willing to try now. Definitely have started to develop a "computational thinking" mindset and am not as intimidated by large project ideas.
That's all that matters, really.

Quote:
I would think you fall into the category of programmers who just enjoy the art of solving problems, no?
This is a very difficult question to answer, so bear with this response if it gets long.

My initial answer to this is a hesitant yes, but I don't want to say that because that implies I like doing everything the hard way for the sake of it. In contrast, I am just as lazy as everyone you'll ever meet; I'd rather write functions that compute n^x any day than write a large simulation. With this information, there has to be some extra motivation behind the art of solving problems.

The fist reason is practical: I'll never be able to attend college, so I have to learn this stuff on my own. Assuming that I will one day stand at a whiteboard, the burden of proof is far heavier on me than a 20-something with a CS degree from the local community college, must less a bona-fide uni. I simply have no choice in the matter to learn the "tough" stuff that is a given for anyone to pass their basic courses. It would help if I conquer the more difficult things, but even at my absolute best, I can't compete with a well-taught student.

The second reason is also practical: Things that are mysterious shouldn't be mysterious and they aren't always as difficult as you either think now or as difficult as others would have you believe.

That is quite the mouthful, so let me divide it into two pieces, and start up with the second half first about unmasking the illusion of difficulty. There is a certain class of programming "tools" that "make things easy for anyone" but honestly are so far beyond hard that it does nothing but make life extremely difficult once you know anything beyond the basics. It's silly because many of these "extremely difficult" things are actually super easy with raw code.

The above thought ties well into the first half of the reasoning. Things that are mysterious to a beginner should not be mysterious as they progress. A simple example is routing. On it's face, routing looks like pure magic, and it sort of feels a bit like magic, but like any magical spirit, once you can give it a name, you can understand it, and once you understand a few minor concepts, the entire spirit is no longer so magical, scary, or mysterious. The only way to unravel these mysteries and name the spirits is to push myself to learn more about how the system works.

This ends up becoming a self-feeding cycle. I actually enjoy unwrapping the "mysteries" of the machine and gaining a deeper understanding of the underlying ideas. Learning that everything on the computer is basically AND, OR, and NOT is just incredible. Learning how to combine those ideas and how systems tie together is fascinating. I like being able to think about a system as a layer of abstractions and how all this stuff ties itself together. Programming is incidental to the exploration, no more than a simple tool that conveys ideas.

Math and programming work hand-in-hand in this regard. Take this as an example:



Looks mysterious, but it is pure genius how it all is derived and why it works. And how it end up being the foundation for so many other things. There was something interesting I read about math, which said that you can't truly appreciate math until you can see the amount of thought that goes into a simple symbol. Each symbol has a ton of history and it all merged by the collection of great minds spending decades working at these problems. To give you an example, do you know what E=mc^2 is actually a representation of the Pythagorean Theorem? Consider the simple '+' sign. Clearly if the computer is all 0's and 1's, '5 + 3' is not functioning the way you learned in 1st grade.

I take a different approach to learning. Most people start up with a "goal" or want to create something they are interested. I have nothing good or bad to say about this approach, except that it isn't for me. I am not trying to attain any certain path: I am trying to learn the ideas because ultimately, they all tie together anyways and there's no need to become a language / domain maestro at this point. I am not trying to answer "what do I want to do," but prune away all the things that I don't want to do in the hopes that those things I do want to do are left, and that I am not limited by some domain or paradigm. I can tell you for certain there are a few things I would never want to do with my life: building websites and building simulations are two things that come to mind. The point is that it doesn't matter.

I just read the above and realized I didn't really answer your question. I just don't have a definitive answer despite the explanation.

Quote:
Are you stimulated by all "hard" (as opposed to soft subjects such as English and Social Studeis) problems--i.e. theoretical math / arbitrary scenarios--or more solely CS-related problems?
I was, and still am, a writer. I used to draw, but I was never professional-level at it. I still have a deep appreciation for fine art and literature. I also enjoy certain aspects of psychology.

I enjoy the fuzzy land where humanity and data merge and this is why I don't really like simulations. Sims seem rather cold and disconnected. I prefer sifting data and analyzing the prior results, which is why things like marketing & sales analysis and "big-data" issues are more interesting to me.

I also find I like the human-to-digital interaction sphere as well. It takes considerable thought on how to create something people find easy to use, looks good, and make people want to come back. It may seem odd that I don't enjoy building websites with this information, but I guess I should clarify that I enjoy working with SQL and CSS. The rest is bonkers boring, IMO.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 01:00 AM
NodeJS v0.10.0 is now released: http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/

Those that use it: excited?

I'm actually kind of surprised that the version number is so low. It really is new and I find it incredible people talk about it so much so soon and it seems to have incredible mind-share.

Looks like an interesting effort, but I swear if I ever see a Node'er say something silly about parenthesis in Lisp, I have plenty ammo...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 08:57 AM
I'm excited but not drooling at the mouth. I like how they are trying to improve the GC though and that they are going to put in a huge effort to improve the http lib in v0.12 and automate some deployment tasks.

The version number isn't too low. It went from v0.1 all the way to v0.10. It has been through everything in between. It's pretty common to goto 0.10 after 0.9 if you're not quite ready to ship 1.0. I've been messing with node since v0.4 and have used v0.6, v0.8 and soon to be v0.10 once I make sure all of the libs I use still work which I think they will. They stick to an even release = stable , odd = experimental.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 09:02 AM
I always have questions about a project's development practices when they gimmick around with 0.x too long.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 09:48 AM
Do any of you guys work standing up for at least part of the time?

I just started doing it for a couple of hours a day and I think I like it. Just wondering what other people think.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 09:58 AM
Quote:
Originally Posted by jjshabado
Do any of you guys work standing up for at least part of the time?

I just started doing it for a couple of hours a day and I think I like it. Just wondering what other people think.
I pace. I'd love a standing desk if they cost reasonable amounts.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 10:00 AM
Luckily I work from home and have a ledge that's a very nice height.

I also just use my laptop (no second monitor for me) so I can move around pretty easily.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 10:06 AM
2 27" screens make that harder.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 02:30 PM
Quote:
I'd be a tad bit hesitant to do something in Python, tbh. It probably just still has the "teaching language" standing in my head that I'll never be able to get rid of, but I'm also not sure how well it would fare once the app gets past a certain size. It really is a simple language to code in but there are plenty of ways to get strung up quick. Largest app I ever wrote was about 2,000 LOC, and it is not a web app, so take that for what it's worth.
Many,many LOC ERP system handling huge customers..no problemo
Bottleneck is pretty much always disk IO/database related anyways

Quote:
My experience was a little underwhelming because the SQL library I used wasn't that good and python's csv library is lacking.
Got around this by using ZODB (+MySQL for indexing) + I stayed away from all things SQL anyways. For CSV stuff we had our own little daemon that used open office for all sorts of conversions and neat tricks, basically we kind of turned open office into Google docs before Goolge docs existed :P


Quote:
Would you do linear programming in Python or Lisp?
NumPy/SciPy goooooot, dunno Lispland though
---

Since I got good info regarding google ads in here before...is there any reliable way to guestimate how much a youtube view is worth? It'll probably depend on the niche etc. again but some ballpark numbers would be coolio
[my guess is that they are mostly worth something because they can increase your traffic to other stuff not due to the direct add money]

Last edited by clowntable; 03-12-2013 at 02:42 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 03:53 PM
Quote:
Originally Posted by clowntable
Many,many LOC ERP system handling huge customers..no problemo
Bottleneck is pretty much always disk IO/database related anyways


Got around this by using ZODB (+MySQL for indexing) + I stayed away from all things SQL anyways. For CSV stuff we had our own little daemon that used open office for all sorts of conversions and neat tricks, basically we kind of turned open office into Google docs before Goolge docs existed :P
I already knew you did the ERP in Python.

My main concern is portability. I was pretty well burned by developing part of the program in Win 7 and pushing it over to Vista, which is why I'd probably look into Jython or Iron if I did it again. How did you handle portability issues?

I don't want to get into the gory details of it, but the main bottle-neck wasn't the SQL per se. I already had the queries indexed and tuned to run amply fast for the purpose. The bottleneck was that the postgres driver I used was ample but failed at a certain point of elegance, thus I had a ton of copy/paste code where it should not have existed.

Quote:
Since I got good info regarding google ads in here before...is there any reliable way to guestimate how much a youtube view is worth? It'll probably depend on the niche etc. again but some ballpark numbers would be coolio
[my guess is that they are mostly worth something because they can increase your traffic to other stuff not due to the direct add money]
I have some youtube videos demonstrating my old talent. I have a total of 20,000 views and no business came as a direct result of those views. It doesn't help that I can only be useful if the clients are in Los Angeles. These videos did, however, result in gaining clients and work after I directed people to the videos and so it was excellent for conversion in that regard. I was offered the contract from google for ad-share, but I never bothered to join in. Of course, it also helps that there is a pretty green bar and comments like "holy ****, you're amazing!"

A little bit of history is in order here. It used to be that posting videos on youtube was a super-easy way to up your google rankings. After google declared war on content farms, the farms quickly pushed out tons of youtube videos and kept their rankings. This party lasted about 6 months and now that is over.

Youtube does great for demonstrating your product if it is a "soft product." For example, if I wanted to show off all the features of some project's back-end interface which is a nice way to sort of "try before you buy," and it is obviously quicker and more easy to make the back-end look easy to use. I would definitely do a video for that. Youtube fails miserably at showing your company's "hard" products ("look at all our great pens!") if there is not any real information to gain from it. Company vlogs, and other non-essential things like that don't do well. Television is still the king for product and "image" advertising. Youtube is great for conversions.

The long-and-short of it, from seeing how competitors used youtube and discussing this stuff with people that are knowledgeable in this sphere, is that youtube is great as long as you fit it into a larger piece of the puzzle, but like advertising, SEO, etc, it alone isn't worth very much. I know it doesn't sound like anything more than common sense, but there really isn't much magic to it from my own observations and experiences.

Hopefully someone else will destroy this post!
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 03:58 PM
Quote:
Originally Posted by Neil S
I always have questions about a project's development practices when they gimmick around with 0.x too long.
Is it a huge thing if the product is barely 4 years old?

I wonder what landmarks they are trying to achieve to get to v1.x.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 03:59 PM
Quote:
Originally Posted by daveT
Is it a huge thing if the product is barely 4 years old?

I wonder what landmarks they are trying to achieve to get to v1.x.
4 years is an eternity in software.
Just saw that their next release will be 1.0. So... well, ok. I guess they see that it's time to put up or shut up, as well.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 04:46 PM
dave what is your old talent?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 04:57 PM
Quote:
Originally Posted by daveT
Is it a huge thing if the product is barely 4 years old?

I wonder what landmarks they are trying to achieve to get to v1.x.
They made this clear in the post you linked.

Before shipping 1.0 they want to clean up the http lib, that's what v0.12 will do before 1.0 hits. There was a pretty long gap between 0.8 and 0.10 though, I wouldn't expect 0.12 to hit for a while.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 05:41 PM
Quote:
Originally Posted by Neil S
I pace. I'd love a standing desk if they cost reasonable amounts.
i used to own an adjustable www.geekdesk.com

i enjoyed it very much. its nice to be able to just walk away for a break and walk around. they are fairly expensive, if anyone knows of cheaper ones please let me know. found this link and it seems the geekdesk is the cheapest

i also paired it with a straddle chair, which took some getting used to.

Last edited by greg nice; 03-12-2013 at 05:49 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 10:04 PM
Quote:
Originally Posted by gaming_mouse
dave what is your old talent?
In my past life, I did massage.

Quote:
Originally Posted by Shoe Lace
They made this clear in the post you linked.

Before shipping 1.0 they want to clean up the http lib, that's what v0.12 will do before 1.0 hits. There was a pretty long gap between 0.8 and 0.10 though, I wouldn't expect 0.12 to hit for a while.
Right. That's version 0.12

I thought about it for a second and I think I agree w/ Neil. Waiting for 1.x makes it feel like a not-yet-ready project and now that people are getting acclimated to 0.x, it'll be devastating if they break backwards compatibility at v1 after they sit on it for nearly 5 years. I'm thinking of the current fracture in the Python and Perl communities here. You would have to trust that Node JS is a highly-tuned and masterfully planned language to trust that the jump to 1.x won't create serious issues to those who want to upgrade. Not only that, but Dahl already stepped away from the project. Most of the popular languages have a BDFL.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 10:13 PM
Quote:
Originally Posted by daveT
In my past life, I did massage.
Ha, I did not expect that, pretty cool tho.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-12-2013 , 10:17 PM
There is an outside possibility that my job will send me to the big nerd ranch iOS boot camp... SQUEEEEEEE!
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

      
m