Infinum is one of the top developers here in Croatia. Nice to see them responding well to this.
702 karma · joined May 6, 2009
Software engineer and internet explorer.
Dublin, Ireland | Zagreb, Croatia
Infinum is one of the top developers here in Croatia. Nice to see them responding well to this.
And it seems great.
One of the problems newcomers face when starting with node is the deployment of apps. Currently, if you try to search for "the right way", you will find many different methods ranging from custom scripts, modifying your application in some way, to external tools like upstart and monit. Of course, if you use a PaaS solution like heroku, cloudfoundry or similar, some of this problems go away.
All this deployment possibilities are great, in their own way. Pm2 is not here to replace them. It is here to give you a good production ready solution without much hassle. You want to publish your app? Use pm2. If you are facing a larger project, with many special details, then you might consider a custom solution for deployment.
Personally, I am planning to try this out for various smaller apps that need to be up 'n running, but don't have time to setup proper production environments and maintain all those environments.
- rsync algorithm
- rsync protocol
- rsync program
The algorithm is fairly well described here: http://rsync.samba.org/tech_report/
The protocol documentation is non existant (AFAIK), and basically the only standard is the rsync program itself. The protocol is strange, and there are some quirks, so it is not trivial to replicate or write custom clients.
This is why it is hard to implement an rsync program that can talk to the standard rsync program, but it is not that hard to implement your own client and server which use a custom protocol that implements an rsync-like algorithm.
And, if it does, is it really 20% of the regular work hours? In my experience, 20% usually comes to something like: "Work on the important project 100% of the work week. After that, work 20% more on something you like."
Everybody I know that works in Google, works far more than the standard 40h per week. Even if you cut of 20% of that time, they still work more than usual. Ofc, that doesn't mean it is generally the case, that's why I'm asking.
It is better to get out of your comfort zone not by doing the same thing in a new way, but by doing a new thing. You are bored with your job? Its not Java, or c#, or c that is boring. It is the stuff you are using it for and the way you are using it.
Anyway, Node is an excellent tool. Just don't use it as an easy way out of your comfort zone.
There was confidence and security in the well known world of stuff you already tried and built. The confidence that came from the knowledge of how difficult or easy something could be. The skill of estimation was fine tuned, and the feeling for effort was strong.
It was not the fact that nothing could go wrong that was comforting. It was the power to know what, when and where could go wrong.
An anxiety-neutral condition, with limited set of behaviors to deliver a steady level of performance, usually without a sense of risk.
A true comfort zone.
Then we chose Node.js for a project. We are yet to see how wise a decision that was business wise, but it was certainly good for the soul.
http://reperiendi.wordpress.com/2007/11/03/category-theory-f...
You should also check out modules like step or async, to make your chained callbacks look nicer. This way you will avoid long code pyramids.
Use a tool such as JSHint or similar, to detect errors and potential problems in JavaScript code. Try to integrate it with your editor or your complete development environment.
Regarding editors or an IDE, well, you basically have a standard pick here.
Although there is one interesting and somewhat new player you might want to check out - Cloud9 IDE, an online development environment for js and Node (amongst others). Since the code is available on github you can also deploy it on your own machines if the hosted options don't suit you.
I was just searching old HN stories trying to find the very first story on node.js. I thought it would be fun to read all the comments again and see the reactions. Still haven't found the story on node.js, but this is in the same spirit.
Moseley and Marks disagree with his premise in the paper Out of the Tarpit [2]. They propose an approach based on functional and relation model to minimize accidental complexity.
Even if you don't agree with the conclusions or some of the premises in this papers, both provide an excellent read on the subject.
[1] http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBulle...
Do you know how and where dropbox uses rsync?
There have been some tries to port the rsync program to other languages/platforms [1], but they are usually not in sync with the current rsync program. I am talking about ports of the program, not new implementations of the algorithm.
http://web.mac.com/ben_moseley/frp/paper-v1_01.pdf
They say that the only essential complexity is the one inherent to the problem the program is trying to solve. Everything else is just here because we haven't yet found the methodology or invented the tools to battle it.
They also describe an ideal world, where all the programming is done in way of declarative programming - what you want the code to do, and not how to do it.
Hm. This sounds logical, but is it really true?
Congrats to WhoAPI.
http://en.wikipedia.org/wiki/Paul_Graham_%28computer_program...
Why is Google so careful with opening more stores like this?
It seems pretty clear that such stores are extremely good at selling products to your average customer. Why not open dozens, even hundreds of them, all over the world?
What I was getting at would be more in the lines of "confined to a single paradigm and style". And again, not saying either of the two mentioned are. It is more a question of future orientation and concept.
1. Make the most popular languages, c# and Java, more complex by adding more features such as functional and dynamic support.
2. Make the "core" languages simple and precise, and encourage the use of other languages for adding more options and features to the platform.
Currently, for example, c# does support functional style programming, but there is also f# which ships with VS2010. At first, it seams as if the designers are not sure which of the two approaches to take. and just go both ways. Java is a little behind, but that's why we have clojure and scala.
I always blamed Captchas as being to hard and not user friendly.
This title got me wondering - maybe it was by design, and I am an idiot.
I wonder why do we, as humans, consider eating bugs strange, and why haven't they evolved as a regular part of the modern human diet? Is it only for historical reasons, social, or is it something physical or biological?
If you are building an interactive web application that should be akin to classic desktop applications, you should really build a separate UI, just like if you were building a desktop application. If you are using a framework such as GWT, than it doesn't even have to "look" like two different applications from the developers point of view. Building a detached UI doesn't imply creating a nice public API at the same time.
On the other hand, if you are trying to create a content based site logically designed as linked pages of content, there really is no good reason to brake the classic web page layout and reinvent the wheel.
The problem, ofc, is what to do when your site is a hybrid between the two. Well, maybe a hybrid approach should apply also?
Most of the problems mentioned with the newer approach, js UI, are technical problems that must be solved (by us), not conceptual problems in the approach itself.
As if you are building a giant simulation, where a very complex software system is interacting with unpredictable human players, and nobody, including the creators of the system, knows the limits of the simulation. This is the most interesting part of this type of games. This is why we get full working computers inside Minecraft, all sort of unpredictable scenarios in Dwarf Fortress, and also some really surprising glitches like the virtual epidemic that plagued the servers of WoW in 2005, almost like a real disease:
We'll see how all this bad press is going to spread across the rest of the mainstream media and tabloids. I know we are all disappointed with the way airbnb handled the situation, but we really shouldn't be happy if all the sensation seeking press starts using this to boost their sales, and in the process damages this market beyond repair.
I wish all the best to everything made in Croatia.
Small remark: it is not clear what this is about from the front page alone. The about us link at the bottom does a good job explaining it, however. Maybe it should be somehow visible from the start to new visitors.