For our workloads, Azure is a worse deal. Broadly, we found that compared to EC2 instance types, you paid a slight premium of 20% or so to get 2x the RAM and 100s of gigs of ephemeral SSD storage (vs little or no SSD storage), while taking a perhaps 30% hit in CPU performance.
It's not terrible, and depending on your workload, might be better than EC2. I'm personally very partial to Amazon's spot instances and t2 family types, neither of which Azure offers.
Even so, compute only represents ~25% of our AWS bill. For enterprises who have significant Windows/AD investment, Azure might be a no brainer from an ops cost point of view.
You need to consider that the bulk of developers are actually using the Microsoft platform. For the most part they aren't interested in the free software community. Linux VMs are not an option for a lot of corporate tasks.
That is of course changing and probably the main driver for Microsoft being more open.
Disclaimer: I work for Microsoft.
Is there a place that offers some simple apples-to-apples comparison for typical use cases? All three require complex calculators that account for bandwidth use, ip addresses, etc.
Edit: I do see some tools after searching some, but they are all flawed a bit because the three providers don't all offer the same thing. Azure's 2 core machines start with significantly more RAM than Google or AWS, so it's not a great comparison. The tools don't make that sort of mismatch easy to see.
~3-4Gb RAM: Azure (2cores, >100$/month), Google (1core, ~25$), AWS (37$, or compute optimized 75$)
high memory 13-14Gb: Azure (>246$), Google (~63$), AWS (16Gb, >172$)
UPD: Thanks to tyingq, Azure 3-4Gb RAM (2cores, starting from 70$)
If you are running Linux , azure works really well. Give it a try if you can set aside your bias.
The OP needs to quantify the statement about azure being expensive or else it will just sound like anti-Microsoft fud.
In Azure, MS frees you from that CAL charge.
I would be grateful if someone could confirm or reject this licensing issue - I heard it once from a MS employee but perhaps he misunderstood the thing about VPS somehow?
I don't know the answer to your question, but I did some research and will also speculate. I could be totally wrong.
I don't believe there's a tariff on oil imports in the US for those reasons. So why don't oil companies buy oil? Probably because the infrastructure required to move and store oil is incredibly expensive, and because the oil buyers could just go straight to the source.
The amount of oil that would have to be purchased in order to increase prices again is totally astronomical. I imagine most oil companies prefer to have low storage costs and therefore try to avoid overproducing, which means they probably don't have massive amounts of unused storage space.
Thank you so much for a prompt response. Might I ask what happened and why I was flagged as a bot?
I have to find out what happened to my projects on NPM, bower and jsdelivr since Github was returning a 404 for those projects for an unknown amount of time. While on your end it's a flag, it might affect a bigger pipeline and cascade into more trouble. Is any step being taken to avoid this? How often is it done?
So your statement "everything should be back to normal" might not hold true for the reasons explained above and in my question on Hacker News: https://news.ycombinator.com/item?id=10916349
BlogSpot thought I was a bot when I moved multiple WordPress blogs over to BlogSpot over the course of a few weeks. Manually copying and pasting 50 or more old posts per day seemed to be the issue.
I've done useless projects at school and at work but the point of those projects was to get credentials or money.
If you're doing this for fun, you should start with something you want to make. A game idea, an app idea, a robot that does something. Break the problem into the smallest parts and start with that.
I also hate complicated compiling processes, bloated tools, or anything to do with configuration. But that's just part of software development. You'll have the motivation to plow through that if you really want to build something.
Since I love tech and programming I wanted to get back, not to find a tech job or run a tech startup, no I just wanted something to distract myself after work. So I began dipping into random languages, libs & frameworks. Bought books, read tutorial and did crash courses. I chose popular and new tech, stuff that matters and things which frequently pop up on HN. From mobile development over functional languages to the hottest JS front-end libs. I played around but usually after a few days I lost quickly any interest, I didn't know why.
Eventually I found the best way get back again and it's easy: Look for a real problem you have yourself and you want to solve. Just for yourself, just to use it yourself. Once you identified the problem you search for the right tool and everything else comes by itself and before you realize you mastered a heavy language/framework in a few days/weeks.
Without a concrete mission which really must matter to you all efforts to get into any appealing tech such as Swift, ES6, react-redux, Android dev, Go will feel shallow and you'll end up wasting time going through tutorials/books/guides questioning your journey.
C# using Visual Studio is a great next step as the IDE is first class. Microsoft give it away now free.
 https://handmadehero.org http://philipbuuck.com/announcing-handmade-quake
As far as language, Python is my current favorite. It just has the lowest friction by far.
It's a hobby, there's no reason to start with the overhead of an industrial grade IDE.
Heck you could just download Emacs and spend a long time writing code in Elisp.
Seems perfect for you (in short notice you should be programming little agents to collect resources and other rudimentary AI). It's great for learning.
Please feel free to reach out if you think any of my experience could be relevant and you'd like to chat further.
I even used mine for all of my writing and work for about 5 days. Playing with the Pi brought back some of the freshness of my old hacking/tinkering days.
welcome back into programming. A lot of things happened since the 1990s :)
by now it can run server side or in a browser, but since it is a really flexible spec it could reach also other contexts like electron apps or AWS lambdas.
So tell us what mindset you mean, without using the word "hacker".
Offline, face-to-face is best. But even online works better than nothing.
You solve coding puzzles but in a very limited retro environment.
Then, for some reason, I setup their build environment on a VM, setup my git client to push to their gerrit and started making some easy changes. I've focussed on the VCL, which is a core component of LibreOffice, and the more I have read the code on OpenGrok the more things pop out at me. So I tend to submit patches.
Right now I'm reading up on how LibreOffice deals with fonts. It's a bit messy, but the code actually can be refactored, so that's what I'm doing! Actually, it's kind of fun. I rather like running doxygen to see what the collaboration diagrams look like after I've changed the class structure :-)
I mean, I don't think you're deliberately being misleading, but it feels a lot like you're saying one thing, yet doing another. Just out of curiosity really, why haven't you already Googled and started - what are you holding off and waiting for? It would take, what, 10 minutes to Google a Java tutorial and open https://repl.it/languages/java and get some text printed, right?
I learn better by experimenting with other peoples code than by a textbook [..] Im looking for recommendations of textbooks
Here is a link to the Livestream Event: http://livestream.com/spacex/events/4695903
No guarantees though
In this case though from what you say, a drug charge, no convictions since, with that much time since conviction, I personally wouldn't even worry about it. If you know the individual well, are willing to go to bat for that individual, and it is a problem for someone else, that is their problem and probably not worth your time fighting over to convince them otherwise. At the friends/family stage though, this level of concern is even further reduced in my opinion.
Investors do care about the group they are investing with. I think you can make a clear case that this party is a low risk.
These individuals have riches just as we say that we have a fever when really the fever has us. Seneca
The last few months of 2014 and the first couple of months in 2015 - when Canadian winter SAD and the stress of starting a new business kicked in - really did me in mentally and I was going through a severe bout with depression.
This book was recommended to me by a friend and founder. It gave me the tools I needed to deal with the ongoing BS life tends to throw at you. Amazing how powerful and still highly applicable a mindset developed centuries ago can be today.
It really reminded me of the Admiral McRaven speech about making your bed, which is occasionally quoted here:
> If you make your bed every morning you will have accomplished the first task of the day. It will give you a small sense of pride and it will encourage you to do another task and another and another, he said.
A while back, I was joking with some friends that TAoCP is to the programming world what Finnegans Wake is to English literature: you're not supposed to read it, nobody's ever actually read it. We all just say we've read it, talk about how brilliant it is, and place it prominently on our office bookshelves to silently humblebrag to anyone who drops by. Sorry you had to spend $178.08 on that lesson, mate.
A king once solicited a scholar to read an ancient hindu text, so that the king may better understand God. The scholar goes away, and after a period of time comes to the king. The king asks "Have you read the text?" to which the scholar replies "Yes I have." The king does not believe the scholar and sends the scholar to read the text.
Some time passes by, and the scholar returns. The king again questions the scholar, and again the scholar replies that he has read the text. The king sends the scholar away telling the scholar to read the text.
Some time passes by, and the scholar does not return. After some additional time, the king has grown impatient and sends some men to find the scholar. When they arrive at his home, the scholar is no where to be found, and has seemingly disappeared.
After studying the text so diligently, the scholar has ascended to heaven and joined God.
My assumption is that once you've truly read The Art of Computer Programming, you will transcend your human form and be one with the Cloud.
 Source: My dad, who is not the most reliable person when it comes to these sorts of things.
 I'm paraphrasing it, as I am also no the most reliable person when it comes to these sorts of things.
If you're in the Toronto region, I actually run a reading group for these books: http://www.meetup.com/Knuth-Reading-Group-Art-of-Computer-Pr.... We get together about once a month and go through the problems together. Just last night we had a 2.5-hour session about only section 188.8.131.52. I doubt you'd be able to get this much content from a sub-sub-sub-section of CLRS.
Depends what you want from it. I used the first book to study for my Bachelor's degree final state examinations, and it served me well :-)
In other words, yes it is very academical, in the truest sense of the word.
From what you say, that you want it to "mention of pipeline stalls, designing for cache performance, branch prediction, multithreading, etc.", you might find better use of Andrew S. Tanenbaum books. I have only read his Computer Networks , but it has saved me at least 14 hours of boring lectures at uni, and helped me with some protocols work. He still does research in distributed OS-es, so would hope, that rest of his books would have same amount of readability and usefulness as the one I have read :)
Back to Knuth, if think you have no use in mathematical formalism, or college math in general, you will probably find it little more than intellectual entertainment.
There are of course areas where having formal theory of a thing is beneficial when programming, even if you yourself don't apply it (i.e. the chapter on random numbers seems like something everybody touching any code related to security should read, i.m.o)
But even then, if you suddenly need to learn more math theory, there are probably better sources than Knuth.
As somebody who finished my Msc already, I like it as my intellectual entertainment just fine :)
Computer science and software development are usually thought to be the same by non computer scientists, but in reality computer science is basically applied mathematics. Expect a lot of it.
There's the rub. TAOCP is Computer Science. "Practical programmers" aren't even engineers. So yes. The books for your intended purpose aren't worth anything.
It will have worth when you are writing something 'serious' like compilers, kernels, or complicated games. CRUD apps, nah.
Those are issues for a subset of computer hardware. Embedded computing is still huge and has drastically different performance requirements. TAOCP is designed to stand the test of time, not focus on micro-optimizations that generally have limited performance impact and are a waste of time 99% of the time.
If you want to scratch that itch, a better way would be Cormen, Leiserson, Rivest, and Stein's Intro to Algorithms (https://mitpress.mit.edu/books/introduction-algorithms).
I'm not aware of such a universal reference for the interaction between algorithms and architecture ("...pipeline stalls, cache performance, ...").
Until that day comes...TAOCP sure looks nice on the bookshelf.
In a sense it's all irrelevant today. How many of your colleagues mentioned O() in any of the past five standups? Add a load balancer and scale up by adding instances, that's today. Don't even profile, much less understand.
However, if you're the kind of person who thinks hard about abstract matters and would like to encourage that side of yourself, then you might want to read that. You'll probably find it hard, particularly if you're a "ruby programmer" or "java programmer" rather than a "programmer", because Knuth is rather the opposite.
Interestingly, I have found that some parts of the book offer much more useful information than others. All offer the same thorough, intellectual approach, but while much of what volumes 1/3 say is useful for a modern programmer (but not for a modern <language> programmer), what I learned in volume 2 hasn't been of much use to me. Today's languages and libraries offer both math and data structures. But in practice, for whatever reasons, they seem to have liberated me effectively from caring about seminumerical algorithms, while I still think about data structures every week.
Knuth writes about making things fast with drum memory. I don't have drum memory, but making my data structures fast within the real-world constraints remains a topic, and somehow it's the same topic. Knuth also writes forty pages about floating point, but when I use floating point I don't worry about that part in the same way. The libraries do what I need and their internal problems rarely or never leak up to me. (Well, at work we do occasionally share "14.000000000002%" of revenue... but it's not a problem. Insignificant.)
Should you read the series? Well, that's largely up to you. There are other books that cover subsets of the material, and many books that cover algorithms not in Knuth's text. However, there are such amazing gems of knowledge in this work that it would be a shame to miss out. I'm sure that many people keep this set on their shelves for some sort of bragging rights, but I often leaf through sections for both inspiration and for entertainment.
You don't _need_ to read TAoCP, but it is a refreshing read. To get the most out of the text, you will need to have a pretty good understanding of mathematics, and you will need to be willing to work out the things he describes on your own. It's not a passive reading experience, like reading most fluffy books found in the "computers" section of the average bookstore or library. It is an active experience, like reading a mathematics textbook. There will be parts that challenge your conceptions, and there will be parts that will take several attempts to fully understand. Then come the exercises, some of which are still open problems in Computer Science.
It is a worthy endeavor. I recommend it.
It is humorous and it includes notes from past students in the margin. I really enjoyed it.
Shameless plug: I wrote an illustrated book on algorithms that aims to be an easier read than TAOCP, CLRS and others: http://amzn.com/1617292230.
> For all its focus on algorithmic performance I found no mention of pipeline stalls, designing for cache performance, branch prediction, multithreading, etc. which are all very fundamental aspects of good performance on modern hardware
Yes, but pure computer science is not worried about that (maybe about multithreading)
But yeah, for a more practical/specific work there are better options (but it's going to be specific to an area)
Knuth has spent 50 years creating computer science that we can take for granted. But in the end TAoCP is a "little book on compilers" and if that's not relevant to one's vocation and the topic isn't intellectually interesting in and of itself then it's probably not the right book for a person.
Knuth always reminds me how hard this stuff really is.
: edit. The First Edition has a centerfold showing the sequences of different society's executions across multiple tape drives.
Knuth is also a fan of abstracted programming languages like Literate programming which he claims without it he wouldn't have been able to create a lot of the exercises in recent TAOCP volumes so anybody declaring that if you're "just" a Java programmer you won't get any use out of the books are likely incorrect.
TAOCP creates challenges for many readers, because it does address most problems with an enormous amount of depth and breadth (but at the same time, offers a pretty exhaustive treatment of many topics) and requires a level of mathematics that may be daunting for beginners.
If you want a more accessible text in the same vein, you may want to give Mehlhorn's and Sanders' "Algorithms and Data Structures: The Basic Toolbox" a whirl, as it is freely available online . It is a text aimed specifically at undergraduates and isn't as ambitious as TAOCP, but it still is something that may require a fair amount of effort to follow.
There is a note from Bill Gates in the back that says if you can read it all and understand it, contact him for a job.
Edit: read the comment by @geff82 in this thread. This is perfect.
The real gems are the exercises and answers to them; there's at least as much useful/applicable stuff as in the main text. I tried to solve them, but found myself unable to proceed with them if difficulty was > 20, even if I understood the concepts. I have no idea on how to attack them. (Even non-mathematical ones.)
IMHO, TAOCP needs "Volume 0" which would teach you problem solving in this particular domain. (No, "Concrete mathematics" is not it. That book is, IMHO, awful: many problems depend on having tricks up your sleeve.)
Any tips on how to approach exercises which seemingly don't have a lot to do with the preceding text?
That doesn't mean the algorithm books are useless, it means they give you a bunch of options, and you have to decide which algorithms and data structures will perform best on the specific hardware you're using.
But, at the same time, TAOCP is terrible as a practical algorithms book. It's perfect for graduate level algorithms classes deep diving into mathematical proofs and analyses, but for practical, "real life" coverage I prefer Skiena's "Algorithm Design Manual."
I got a set when a coworker jumped ship with no forwarding address and left all his books. It seems useful for people implementing languages and standard libraries, less useful for people using them.
I keep volumes 1 and 2 on my desk in case I ever need to refer to them for information about a specific topic, but I have yet to actually open them.
The important thing that distinguishes the book is this: the attention to detail. Knuth is one who famously shuns email to "get to the bottom of things", rather than stay "on top of things".
I am trying to get into an area called pseudorandomness, and Knuth vol 2. 3rd edition has an excellent treatment of the subject in all its incarnations. The details that are in the book beat even the original research articles where the results first came in. So I refer to Knuth first to see if it is there, and then go to the research articles!
Bottom Line: To get the details correct, trust Knuth, rather than a random blog article on the web on the same topic.
They are not easy books. At the time I read them, I had a 45-minute bus commute each way, which gave me a nice forced reading window. I don't know if I'd make it through them today, without public transportation. Too many more entertaining things to read or do at home.
Early in my career, I got the first three volumes.
The volume on sorting and searching was the most useful, and there the most useful was AVL trees. Next, heap sort and the Gleason bound. Sort-merge? I'd known that already, but if don't then can learn it there. Radix sort? That's what the old punched card machines did; in some cases it's faster than heap sort (doesn't contradict the Gleason bound because that bound assumes that the sorting is from comparing pars, and radix sort doesn't do that). Radix sort could be still be useful in special cases. Lists, queues? Obvious.
The fast Fourier transform remains important, and some of what Knuth writes about it is good and tough to find elsewhere.
Somewhere in those first three volumes are some really good summaries of combinatorial formulas, with some results not easy to find elsewhere.
The volumes give some good examples of how to do the math to evaluate the performance of an algorithm -- might need to do that sometime, e.g., for some guaranteed performance in some embedded system -- and if need to do that then it's far easier to read at least the start on how from Knuth than reinvent it yourself and likely easier than from other sources.
The level of clarity, precision, and quality in Knuth is about as high as those go and a great example for others.
That's most of what I got from those three volumes.
For the later volumes, right, I didn't bother. But, if I have a question that might have an answer in one of those volumes, then, sure, I will eagerly look.
I did not learn much of practical use for my day-to-day programming. Sadly, I will probably never read the other two volumes in my boxed set. They look great on the shelf.
The MIX assembly language was my least favorite aspect of the book - and I ENJOY creating and tinkering with toy virtual machines.
MMIX (MIX's modern RISC successor) will probably be a lot nicer.
Perhaps assembly languages are essential to demonstrate the concepts properly. And I understand the arguments against using a popular low-level language such as C. But it sure would have been nice to have a simple and readable pseudo-language for the examples rather than MIX!
3. [M50] Prove that when n is an integer, n > 2, the equation xn + yn = zn has no solution in positive integers x, y, z.
Knuth's book was published in 1973. The initial solution to this exercise was solved by a then Princeton professor in 1993 and was finalized by same professor and his former student by 1995.
I suspect that for most of us TAOCP is a rich red wine that we would sip from occasionally to get that feeling of "aha, so that's what red wine should taste like!"
In a lot of ways, it is a faster and much more practical way to learn how to think about algorithms and data structures quickly and code them fast.
Sounds like what you want is a prescriptive tutorial addressing a set of specific computing problems. That's not what TAOCP is.
You are not supposed to read about any algorithm. There is nothing special about knowing how some sorting algorithm works, or any algorithm for that matter. That knowledge is no better than knowing how some war in history happened. Or remembering arcane trivial about things. Knowing how to sort a list a dozen ways, no big deal. Unless you discovered the algorithms yourself, there is nothing special about just knowing how these things work.
You are supposed to learn how to discover your own algorithms, reasoning from the first principles, learning the axioms that govern the area of the problem, learn the rules, then work out step by the step, deriving new results from the results discovered a step back.
You are supposed to learn how to reason about the problem. You are supposed to learn to understand the problem, state it in simple terms, learn to draw diagrams to represent it, solve sub problems. Build theories, hypothesis, question them, prove them etc.
We don't do algorithm studies the right way.
Even software interviews are not testing algorithm skills, they are testing algorithm memorization skills. Nothing different than those teachers who used to confuse memorizing multiplication tables with genius.
Asking other's advice is as stupid as judging a book by its cover.
If you have studied a tad, or read books in the past, there are ways to efficiently evaluate a book:
Read some pages randomly. Think 30s if you liked it. TAOCP is indigest for sure.
Then take a topic for which its relevant. Read it. Did you learnt something?
A) no, either you or him is an idiot. Go to B)
B) Was it luck? Reproduce nth time (n being left to your choice and whatever)
C) after nth iterations : - is something interesting worth learning? - can you understand the book (don't lie to yourself)?- do you like reading it?
Then look at the tag price. You look at your internal evaluation and buy or not the book according to your needs.
I liked reading part of this book, and i grasped the underlying context fast enough to be so bored (trying to build a consistent mapping between algebrae and code) that I never opened it again.
In microelectronic you learn to draw your logic on Silicium and wire the logic... It is much more powerful and is one of the key concept of parallelism. Geometric approach.
But, this is my subjective opinion of the book. Talent comes with strong balance between opinions and curiosity.
If you want to understand better computers I would suggest to take a look at VHDL rather than TAOCP ... if it SUITS you.
You should be the master in your choices.
21st Century C - Ben Klemenshttp://www.amazon.com/dp/1449327141/?tag=stackoverfl08-20
You asked about "Modern C" and that caught my eye. Most instructional resources on C focus on facts about C without putting them into perspective as to which C era they belong to. "21st Century C" takes an explicitly modern perspective, is opinionated as to which aspects of C you can postpone or ignore, and provides updates for people (like me) who have mostly been familiar with K&R or C89. I found it a really fun read and would definitely recommend it as #1 for your question about "Modern C".
As to if you should learn C, I am super opinionated but I think C still has a lot of value, even for someone who doesn't describe themselves as "full-stack". The reasons are obvious: the kernel is written in C, libc is written in C, the webserver serving your web application is almost definitely written in C, but if it isn't, the compiler that compiles the language it is written in is almost definitely written in C (hats off to Golang for getting off their C compiler). Despite its flaws, I love C.
Next, I'd try "C the Hard Way" which is just as beginner, but is an attempt to make C programs safer (and expose you to some of the glossed over details)
However you may have people who live in those countries, with dual citizenships/also live abroad, that make purchases from within those countries.
Second, IANAL, but if you are a US-based company you may run into restrictions with accepting payments from customers in embargoed countries (i.e. Iran, Syria, etc...).
International transfer of funds done wrong could get you into incredible 'I need a lawyer' territory very quickly.
BTW, Visa does not issue credit cards, Visa partners do. And they certainly do and work in most of the countries you listed.
HN discussion from almost a year ago: https://news.ycombinator.com/item?id=8699178
Word Up! by Marcia Riefer Johnston (http://www.amazon.ca/Write-Powerful-Sentences-Paragraphs-Eve...) is also solid for improving the quality of your writing. The book itself is a bit precious, though.
How to make sense of any mess by Abby Covert is great for organizing (which is a big part of tech writing for me). Available on Amazon and now also at http://www.howtomakesenseofanymess.com/
* Chicago Manual of Style
* NASA Technical Report Writing (Technical Memorandum 105419 (1))
(1) A personal favorite: http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/1993001...
I'm on a device with a glass interface so it's too difficult to get the link, but you can just google it.
I tend to abhor full ORMs that require layering deep knowledge of the ORM's idioms on top of my existing knowledge of SQL and the underlying SQL implementation. An ORM doesn't magically free me from understanding the actual implementation and the additional overhead often isn't worth it.
The switch in code was trivial as we were making full use of the Django ORM and the migration script we created was simple as they were both Relational DB's. However most of our time was spend testing and creating fail safes as changing a production DB if done wrong can have dire consequences.
That said, the original reason I encountered for a db abstraction layer (orm or otherwise) was if you were selling software to be hosted on a clients stack. The more dbs you could support the better.
I found JIRA really clunky and overly complex. I much prefer Trello at the moment. It has fewer features but I find it is far faster and more intuitive to use. It does have web hooks and third party site integration but it depends what you want to do.
Watch as everyone in the office gets up and goes over to each other's desks.
First message: "Initiating mandatory inappropriate content scan"Second message: "Inappropriate content found...adding to log."Third message: "More inappropriate content found...adding to log."Fifth message: "User ID and Name added to log. Transferring to central administration offices."
The look on some people's face was priceless haha.
Soon they got wise to my ways and the gig was up.
I then found some Novell app that was installed on every computer that allowed the exact same thing but made it even easier! I think there was a list of names that I could select and then send a message. That didn't last long though. It was soon too blocked.
Any teachers out there? Don't let your students get bored.
Edit: I also just remembered each student had a personal network drive that they could access on any computer. Each student got something like 250mb or something like that. When you logged in as normal, you could obviously only access your drive and no one else's drive. I can't remember how but I figured out how to access other people's drive. The great thing was, I had read/write access :/ I could put anything in anyone's shared drive.
Come to think about that...I was a turd in high school.
1) Homegrown, pre-internet, pre-SMTP homegrown email system in the early days. Engineer colleagues spoof an email from CEO, put nice guy on notice that CEO was hopping mad about his product and would be by late that evening to check on some issue, forcing the guy to stay there most of the night in terror.
2) Hunt and peck typer for a team lead/manager at the dawn of the PC era. Reports pry the keycaps off his IBM keyboard, swap the M & N. He types memos. "This computer is screwed up--these memos have all the m's and n's swapped! I think the PC is going bad" Colleague, a touch typer, sits down and says "Let me try." He types the memo flawlessly. "Works for me!" Eventually the touch typist gets bored of having to "fix" the PC with his magic touch and mercy is finally shown.
3) PR1MOS system. CS001 student walks out of computer lab, fails to log out. Edit login script to call itself on next login. Log out. That was really mean and probably pissed a lot of people off.
4) Sending bells to people's terminal sessions. Randomly. But only when they weren't paying attention. Cube farm fun.
How many of these things from the past would likely be grounds for termination/expulsion these days?
Also sent a fake "Exteme Marketing" Pizza Hut promo email to a colleague a few years back. It looked mostly normal but had lines like "BEST FUCKING PIZZA EVER"
sure enough, a kid comes in, sits down on the machine, goes through the login sequence, then hits the "press any key to continue" prompt. he scans the keyboard, finds the "any" key, and presses it. computer promptly reboots. kid waits, login screen comes back up, he goes through the sequence, hits any ...
he finally went to find the lab attendant TA, at which point my friend quickly swapped the keyboard back. so when the TA got there, everything just worked, and when it came to hitting "any key" there was of course no "any" key to be hit, and the TA explained what to do.
(epilogue: my friend's reputation had preceded him, the TA figured out he had something to do with it, and came by later to ask "how did you make that guy think there was an 'any' key?", and offer to buy the keyboard when let in on the joke)
Another prank, was a very bad one I admit.With the help of a friend, we made a fake Quake 1 loader. While it was outputting a lot of cool techno jibberjabber to the screen, it was running on the background a deltree /y c:\. > nul
This was a bad one, but hey. It was the time of Anarchy cookbook, and floppy disk bombs, and all those crazy things :)Cheers
This will make the terminal scroll more and more as bash sessions are started.
However, people get used to this since it happens gradually, and eventually will go nuts trying to figure out why there terminal takes forever to start (it's scrolling pages upon pages).
Another one we did was take a screenshot of a 404 page, and then randomly show that instead of the site that they were working on, but only for their IP.
A quick and easy one was to just crank someone's speakers all the way up, for the next time they play music.
Change the keyboard mapping.
Back in the 90's was installing black orfice on a friends computer, though they didn't appreciate that. ;)
So, you just edit your target's ,profile (or .cshrc or .kshrc) to echo the appropriate escape sequence to greet that party with the message of your choice upon login.
dir netstat -b systeminfo
They usually freak out thinking that I'm hacking them. I act like I am too.
Turns the screen upside down and quite a number of people don't know how to do it.
Another one is enabling scroll especially for someone who is working in Excel.
Unless you have something bizarre in your contract it's unlikely they could sue. Unless specifically stated the fact that you quit wouldn't be counted as company confidential information. Further more given the person you told is a board member of the company it's not clear that anything you told them could breach confidentiality.
Normally most companies have a clause specifically saying you can't claim to work for them after you leave the company.
There must be some bad blood here, or some underlying issue that is causing your ex-employer to freak out. Worry about that. If your ex-boss is some crazy paranoid, that's the problem right there. No amount of legal argument will make a difference.
You didn't elaborate on HOW you were threatened. If you don't get it in writing it didn't really happen. If it was a phone call follow up with an email to make things clear. You might find you get a fast retraction.
Your employment status is a fact that isn't proprietary, so it would be hard to argue that it should remain confidential, but that depends on the terms of your agreement.
In the end, you need a lawyer, not HN.
Not sure if they are too small for your company?
I can't stress enough the need to put in place vesting.
Now when a new guy comes in, you are told for the first time that you have only 5% equity in the company.
I would suggest that before you do any further work in this startup, have a call with your US partner and speak to him about this - get everything clarified. If he does not speak to you directly about this, then you need to be very concerned.
It is very hard for HN to tell you how equity should be split, as no one here knows what each of you bring to the table. Typically, equity discussions should be carried out right before you start a partnership, so I urge you to have this discussion with him now.
How important is everyone to the success of the startup? If you have 5%, you should be increasing the valuation of the company by 6%. 26% share should increase valuation by 36%. 36% share increases it by 57%.
However, this assumes it's unpaid. The ones getting salary need to increase valuation by far more.
I don't know the credentials, but if the two larger portion guys play a big role in valuation, it should be fine. E.g. good degrees, previous experience with startups, investments, rare skills.
If you don't think it's fair, then it isn't for the same reason. What I think isn't really part of the equation.
At this point, you should just be figuring out the founder split (not saving some). You will dilute evenly when you take investment and start an employee pool.
Being a contractor is even worse, because it is understood that you don't really care about the organization's mission so you're work is evaluated at a higher bar than everyone else's.
All-in-all technical expertise alone doesn't actually count for much in this world, unless you use it to make other peoples' lives easier in some way.
Past that, see what you can negotiate for in exchange for a lower salary. Maybe it's three months of paid vacation per year, or a four (or three) day work-week, or something along those lines.
Remote work might solve some of your problems as well.
Based on prior experience, I could devote a few months to interviewing (which we agree is no fun!) and find a full-time job with a good salary and benefits. That would also lock me in to working all the time, with a couple of weeks of vacation per year. If I pushed it, maybe I could get 1 month of vacation.
The salary associated with a full-time job is very attractive, but far more than I need at this point in life.
A few years ago, I found contract work using craigslist. I've been able to generate about $2K/year on that (Boston area is not good for craigslist tech gigs). Other than that, I've found it impossible to make the ~ $20K/year that I need for my living expenses.
I wish I could advise you. I've heard you can make a low-stress "lifestyle business" that requires moderate work, but I have yet to figure out one that works. For example, the "retire early extreme" guy reported that he spent 4 hours per week typesetting articles in LaTex - http://earlyretirementextreme.com/my-4-hour-work-week.html I could do this! But I've never seen work like this offered. I've looked for similar opportunities (mostly on craigslist) but never saw anything like that.
I've heard you can work on open-source projects and find nice contracts that way. I'm sure it happens, but does it happen reliably enough to just pick some OSS project, start working, and wait for clients to call? I don't have the time put a lot of work into a project, and then after months find it does not lead to contract work. If you have time to burn like this, you may want to try it.
There are people here at hacker news who sell ebooks and info services and seem to do very well. But for every one who is successful, I suspect there are tens or hundreds of others who did poorly. So, it's something you can try... but like OSS work, it seems to have a high risk of failure.
The usual response for getting contract work seems to be to "network". I have a very small network of people that I know and trust. This network has helped me find FT work in the past, but it has never generated contract work.
I wish I could be more positive, sorry!
I have to disappoint you. Finding clients is always time-consuming. Not really painful but sometimes can be hard and you feel like there are 1m thick steel walls everywhere.
That's what interviewing is, selling yourself to a client.
But if you want to do a lot quickly, you need to find a project in active development. If possible, get in contact with the developers and find out how they are coordinating and planning. Are they using email? Slack? irc? Hangouts? Meetings? Join in if you can!
Once you've decided to get involved, read the code and really understand it. Make sure you are meeting the standards and conventions the others are using, and that your additions are compatible with the rest of the system.
If your not familiar with git, you need to be: http://think-like-a-git.net
If you get a good idea, make something simple and open source it. Put it up on Github and maintain it, to show that you are capable and interested in contributing. This might help you with teams that are a little skittish.
And if for some reason you can't find a good project to join, then get a friend or two together and make one. You want to make something that is useful to people, and actually gets people interested.
Some items to you might want to pay attention to when getting your project off the ground are mentioned in the ChangeLog article they are discussing here: https://news.ycombinator.com/item?id=2162078