1,468 karma · joined April 4, 2007
* PubSub Concepts (https://en.wikipedia.org/wiki/PubSub_%28website%29). * Hotlist (https://en.wikipedia.org/wiki/Hotlist), * Amplify (https://en.wikipedia.org/wiki/Amplify_(company)) * Sailthru
I am currently working at Bloomberg, working on cloud infrastructure and SRE. My team is working on products that makes lawyers more productive and happy every day.
Most recently experiences are SRE, Kubernetes, Cloud and Data Pipe Line.
My email is ltreugene at gmail.com
Please don't feel bad or sorry here. Your critic to the code is VALID. Besides, you are not the only one who have understood the problem in K&R. I had a boss who was aware of this since 90's and talked about it when I was quite ignorant of his points then until I got bitten. But I am glad you rediscovered the problem and made an effort to write it on web.
K&R has its value in historical context. I hope you are not discouraged by the general reaction and I really think we should put more effort in creating new material to teach people in modern context. Please keep on working on it!
I meant "modern web UI is more advanced than desktop UI".
Like what Jeff Atwood said before in 2007.
http://www.codinghorror.com/blog/2007/06/who-killed-the-desk...
I found modern web UI is really much more advance than what existing desktop UI implementation. I was thinking of making a wrapper app around tcpdump/pcap app and generates a nice Web UI for localhost user.
--- from the blog
Garrett Says: February 2nd, 2012 at 3:19 pm
At one of my last companies, all of our web GUI pages were structured that if you passed in a parameter to the query the result you got back was effectively the same data, but as a JSON dump. This was used internally by some of our own implementation and tools, and allowed the whole website to be scripted. Written by hackers, used by everybody. Its also good practice, too, because it allows for the separation of UI and data. As long as the UI logic is separate, you can validate the entire data-processing component through automated testing, leaving only the UI processing code to be tested manually as that actually requires a human to look at and see if things are working correctly.
Good design leading to better quality and testability.
esr Says: February 2nd, 2012 at 3:22 pm
>Good design leading to better quality and testability.
Damn. Garret, can you email me more details? That sounds like a good case study for the second edition of TAOUP.
But despite of distaste, people does it.
For example, your employers knows it costs them much less than your salary for you to survive. You can live on basic food, clothing, and other very low cost means to survive. But don't we personally strive to look for maximize the salary?
I know you will argue that companies shouldn't be treated as human beings. But why do we need to treat a collective of human brings different from individuals?
1. A company may be hold such beneficial position for a while, but not forever if we allow competitions and fair market without political connection to protect this status quo by law.
2. Human being can invent things and no one buys them. We see this everyday in fail web startups. And customers vote with their money and their time to use service or product, so if an invention doesn't improve general/macro efficiency for its own customers with spent time/exhanges of money. It won't sell. And don't forget that people can choose not to use the service and product unless it is required by law. Apple/Microsoft are not in such position if I remember it correctly.
So invention as you said is improvement of efficiency. They may not improvement in their own manufacturing efficiency but they improve macro efficiency.
3. I understand the human right issue, that's why I raise restaurant business as a case. Why there are so many illegal immigrants working in restaurant business under bad conditions and people are aware of and without saying a word? Those workers also don't want to go to law enforcement to endanger themselves.
4. But to improve the human right issue in China, I don't think there is shortcut. The only way is to wait for the time that Chinese labors demand and fight for their rights. for democracy and rules of law. This takes time and unfortunately we are exploit them for business benefits.
5. As for fair taxation of such a huge profit. Don't you think it is very unfair for USA to take lion share of them and redistribute it to USA citizens ONLY. Or due to Apple's most work is done in china and let Chinese government to take majority of the profit on behalf of workers or ruling bureaucrats?
The power of technology for a lot of times just concentrates what was distributed, small scale into a behemoth. But at the same time, I think by blaming Apple but ignoring possibly similar industry that repeatedly rip off customers, ill treating employees, but at a distributed fashion is somewhat unfair.
The sad thing of my home country, Taiwan , is no one has such power to make such a big profit. All electronic manufacturers fight for 0.5% margin among each others, Chinese and Koreans. Most of ic companies are heavily subsidized by government with low interest loans. They are just too big to fail. I would rather to see they can build business that not only self sustain but making profit without tax money from general public.
But just in case, if you reread a book 20 years later. You may found the margin notes you left 20 years ago "romantic". Of course probably most books don't deserve reread every 20 years.
I don't have any notes that I kept on computer 20 years ago, they are either lost in disk crash or server meltdown. I still have some note books from then.
1. Writing down pseudo code for solutions. 2. Diagrams for architectures. 3. Flow charts for possible actions during problem solving.
But if you ask me to write down a real program in whiteboard, I find myself starting to got interrupted by thoughts about erase lines, moving blocks around and worrying about my writing is too big and board is too small for my code.
I think shared whiteboard is definitely a very good tool for discussions. But for me, even a rudimentary editor like notepad, vi helps me more in handling all rewriting/visualizing/pondering process. Probably I am not those programmers who can write down code without worrying about rewriting them. For me, write a program is like oil painting involving constant changes.
I got an interview in 2006 for Microsoft. I typed my C solution with Notepad via share screen over DSL. The code is "to find out the depth of leaf nodes in a binary tree and find out which leaf node is the shallowest/deepest" or something like that. I did that in 20 minutes and return solution to find out depths for all leaf nodes and sorted them by depth. And the interviewer saw how I worked during the session and laughed I was the first one to solve the problem in that way and much better than what they expect.
At the other hand, I got interviewed in Amazon around the same time. I completely choked on whiteboard because I did not prepare for session before like that and I still had a jet lag due to lack of sleep during flight in previous night. Then I got another interview in Bloomberg and I complete couldn't write code with pencil and paper.
My mind flows when I typed but chokes when I worked on paper/whiteboard. I guess the fluidity of editor is the key.
Later when I interview software engineers. I tried to let them to have a computer so they can write code during the session. I feel much better grasp for their potential and habit during the session than whiteboard and pencil paper test.
One question here is for generating search engine friendly web pages without javascript, do you guys use server side requests internally to api to get data?
I suddenly understood most our knowledge on those locations are probably based on few high resolution statistical samplings done in human explorations plus low resolution statistical sampling from Satellites Images. It may be good to build those bots to have real time high resolution sampling and let data scientists discover more facts and knowledge!
In "non-uniform dress code" united states, wearing uniform dress is quite non-conformist.
In "uniform dress" japan, wearing dressing like american is non-conformist.
Everything new was once old again.
So in fact, it is not Facebook API is the worst API but it is most widely used API. And this also shows how much power Facebook has now due to its tremendous data relevant to an internet users.
To be able to simulate circuits, I guess we need to add those Verilog/VHDL descriptions for digital circuits and I guess to implement that feature alone is a very overwhelming task.
I think implementing a tagging system is a very good start. And probably build a community of users that can give feedback on circuits will be very cool features for users.
I am glad to see you guys working on this. Wish you guys the best.
I guess other cool features in the long run can be 1. Integrate simulators so circuits can be tested. 2. Meta tags for search circuits based on purposes, types, components.