Posts tagged with "Tech"
The Death Ray And The Lean Startup
July 27th, 2010
When I was but a fledgling entrepreneur, like most fledgling entrepreneurs, I became frustrated with the process of trying to raise money for my fledgling venture. Now, this was during the “dot-bomb” era, and so raising money was supposed to be easy. We also had an increasingly vocal contingent of curmudgeons, wondering why we couldn’t just earn our money like everyone else, with hard work and everyday construction materials. We were pioneers, forging a new economy from bits and bytes and assembling entire companies by applying mass production to “value chains” where “capital formation” was no different than tightening bolts on a combustion engine!
It's a Long, Long Poll
July 20th, 2010
HTTP, that sprawling protocol responsible for creating and sustaining
the World Wide Web, deals only in requests and responses. That is,
client-generated requests, and server-generated responses. This is strictly observed. J. Random Webserver on the Internet cannot call your web browser up and go beep in its ear.
It happens like this: A client calls out to his server and asks for a
martini. The server gives him a martini. This works fine until the
server forgets to put the olive in. Then what to do? The server can’t go give the client an olive on his own initiative. It just isn’t done. Don’t be gauche. The client must notice the missing garnish and make another request.
Adding Nodes to the DOM with Style
June 29th, 2010
Extension developers who want to overlay HTML on pages face two style-related challenges: preventing page styles from affecting the added HTML, and ensuring that the added HTML is visually over top of the rest of page. This blog post will show you how to use XBL to add nodes to the page with style, complete with a working demo.
The Startup Rush
May 18th, 2010
If you’ve been following along, you know that we have a major upgrade to our signature social media platform, Glass coming any … time … now. Everyone has been working long hours, sacrificing their evenings and weekends, to make this happen. We’ve wrestled with difficult technical challenges and had passionate arguments about the right and wrong way to do something. In the end, though, when all the different parts come together, and we see the result of all the hard work, it’s quite a rush.
A lot of people aren’t really cut out for start-ups. It sounds thrilling and romantic – it’s us against the world.
Self-Creating Franken Post
May 4th, 2010
A Markov chain is a system whose next state depends on the current state; the idea of a text generator based on Markov chains works like this: the next word in a phrase is selected randomly based on the current phrase. For example, suppose the current phrase is “6 year” and in our previous blog posts, someone mentioned a “6 year old” or perhaps a “6 year plague” (probably not, but just an example). In this case, the word “old” was randomly selected to go after “6 year”. The entire text is generated based on such an algorithm.
On Innovation
April 20th, 2010
Steve Perlman is a veteran entrepreneur whose past credits include QuickTime, WebTV, and MOVA, which helped earn The Curious Case Of Benjamin Button a visual effects Oscar. His latest innovation is the OnLive gaming platform, which takes the software-as-a-service concept to an extreme, and may well completely revolutionize the gaming industry in the process. He recently gave a talk on the platform at Columbia, which is, in itself, an interesting subject. What makes the talk worth posting here, however, is that, along the way, he shares a lot of insights on how to innovate successfully.
Get in the Zone & Increase Productivity
April 13th, 2010
Trying to sit down and start working on a design can be a real challenge. Though if I have my ideas ready to go and can get “in the zone”, I am golden. When I say “in the zone”, I’m referring to being completely free of distractions and 100% devoted to what I am working on. I am going to share my simple process on how I get “in the zone” and increase productivity.
Before I start doing any pixel pushing in Photoshop or write any line of code, I make sure I have all the details needed to begin. Depending on the project, this usually means sketches I’ve drawn up or wireframes that have been handed off to me. If I don’t have these details laid out, I’ll most likely end up shooting in the dark and waste a bunch of time.
Determining time estimates for development projects: A non-dev´s perspective
April 8th, 2010
As an engineer specialized in industrial processes, the subject of determining time estimates for software development projects has been something that I’ve always found very interesting.
Non-devs usually have no understanding at all about programming. They do not understand the considerable intellectual challenges that come with it. Every new design is a totally new problem. Coding one day can be like building a water dam, the next day a skyscraper and the following one a cargo port. In the end, they are all three examples of building efforts; however, the implications, required abilities and intrinsic challenges vary completely.
The Revolution Will Not Be Reading Your Email
April 6th, 2010
Information is useful. Historically, information dominance has built empires and colonial corporations. When the war path of the mongol armies under Genghis Khan could travel as fast as the information announcing their arrival, everything in their path was helpless. Today, unprecedented amounts of information is tied up in a complex mess of parties with various access and capability to interpret it, but by centralizing information on the internet, companies like Google have been able to derive enormous profits from such subtitles as displaying messages in the sidebar of people’s email clients. The popularization of the internet has changed many things about modern life, and will continue to.
Everybody Loves Ruby
March 29th, 2010
Everybody loves Ruby. She is a star of Style Network’s highest rated show which documents her weight -loss journey. Going from 715 lbs to 350 lbs. She even has the Ruby red hair to match her name. She tells her story to help those who are on a similar road and . . .
Browser Wars 2.0 - the Plug-in
March 23rd, 2010
If browser vendors believe he who has the most plugins wins BrowserWars 2.0 then make it easy for developers to write and distribute plugins. Chrome and Firefox do this:
• Both use javascript as the plug-in Lingua Franca.
• Both compete on providing the most powerful javascript engine in a browser;
• Both make it easy for developers to add plug-ins to browsers.
All browsers run javascript the difference being which runs it fastest. And Google’s hegemony is powerful – if Google is focused on plugins then you need to check it out.
Scalability is always with us!
March 18th, 2010
Since a couple of years ago, scalability has been my main matter of study -after data crunching. I do not stop investigating, doing and undoing. And I mention undoing, because one of the most important things I have learned of scalability is that you do and undo most of the time.
Once I was reading a document that assured that changing MySQL configuration to specific parameters, the concurrency of the database would rise drastically. As we did not have other possibilities, we tested it. As you can imagine, things always go smooth until you crash against a wall. When we activated this configuration after testing it, our servers started to collapse one after another.
Scriptable Applications and the Web
March 15th, 2010
Scriptability is a great feature to have in your application. It’s neglected far too often by application developers, for a number of reasons. The developers might be skeptical of the benefits, they might not understand how easy it is to add, or they might not suspect that any of their users would want to write code. (Only in very rare cases is it actually undesirable.) As applications move to the web, scriptability becomes even more important, but also more flexible for both you and the user.
Poor Man's Webspider
March 1st, 2010
Webspiders are fun, but the learning curve is awfully steep. Websites don’t like crawlers stumbling about where they’re not wanted, and barriers as simple as a login screen can stymie a beginner. Add in checks on user agents strings and javaScipt-heavy links, and your weekend is over before you’ve gotten anything to work—side project over! This blog post will show you how to turn your browser and lamp server into a spider capable of taking you straight to the fun.
The Basic Idea
A greasemonkey script will pull data off the pages we’re interested in and send them to a php script. The php script will then tell the greasemonkey script what to do next: either open an alert box telling the user something went wrong, or move on to another url.
The Case for IPv6
February 22nd, 2010
IPv4 has served us well. It got the internet off the ground. It’s time to move on.
It’s a common joke made amongst network engineers that the internet was an experiment that escaped the lab before it was finished. The first time I heard that was from Paul Vixie during a talk at USENIX around 1995 or so. The most recent time I heard it was from Vint Cerf during a talk about IPv6. I find it funny because it’s kinda true. When the addressing scheme for IPv4 was decided, it was still an experiment in a lab, and the designers of the protocol figured they would have an opportunity to change the addressing at a future date. Then the internet became wildly popular and took off beyond anyone’s wildest imagination. We’re rapidly running out of available IP addresses.
Design Critiques for Non-Designers
February 15th, 2010
You may have noticed that our society is becoming increasingly driven by visual communication. From billboards to magazines to websites to computer applications, people are more tuned in than ever to the aesthetic of the designs they encounter. Most of the time this visual processing is done sub-consciously, to the point where you might think that every day people aren’t sensitive to good and bad design. However, there is definitely a proven correlation between good design and the resulting trust and love of your product or service. This is why it’s important that people learn how to think about and talk about design to others even if they’re not a designer themselves.
A Pamphlet On Surviving the Web Development Wilderness
February 8th, 2010
So here we are on the eve of a public beta launch for a project we have all been working extremely hard on. In a flurry of excitement and anticipation we have spent the last few weeks buttoning up absolutely every tiny detail we can to muster the strength and time for. My team is responsible for a web app interface (built on rails) to our new service. In the current push to get everything in order and prepare ourselves for the onslaught of real users we have been repeatedly telling each other how lucky we are that we have good test coverage and an excellent work-flow.
Stateless Tests in a Stateful Protocol
January 25th, 2010
Lets suppose you want to test the correctness of a protocol. I know I do, all the time; get me that input fuzzer. A typical way to start might be a minor variation on how I learned to test my code in CSE 142 and hadn’t really thought too much about since: plug in some “representative” values and see if it does the right thing. But let’s suppose someone came over with a pile of documentation and said “Here. Some genius in the back room made this insanely complex server that apparently speaks this protocol, and somehow managed to do it without so much as a single unit test. Can you test it? By the way, we want some guarantees about security.”
Multikernel
January 18th, 2010
I’ve always been a bit of an operating systems junkie. It suits my hacker nature because kernel hacking requires tinkering and taking things apart, which is something I’ve been doing since I was a child. Naturally, when a new operating system comes along, the first thing I want to do is install it either in a VM or preferably on real hardware.
Border Stylo's Making the Site
January 11th, 2010
It’s been just over a month now since we launched the latest redesign of borderstylo.com and to celebrate I am going to let you know a little about the design process behind it. When I say design, I don’t mean beautiful images and colors filling the page, instead I am referring to design as the organization of information and how the user interacts with this information.
When the average user interacts with a site they usually don’t pay attention to the design they are interacting with. They probably couldn’t tell you the difference between good and bad design outside the fact that they like one over the other. With that in mind, they probably have little understanding of what the design process is like, which is why I’m gonna share a little bit on the process I took with the borderstylo.com redesign.
Top Ten Geek Destinations In L.A.
January 4th, 2010
Los Angeles isn’t particularly known for its geek culture, but in a city this big, there’s something for everybody, even us nerds.
Do You Kanban?
December 21st, 2009
Software development is hard.
In fact, 66% of software projects fail, according to The Standish Group, a globally respected research firm.
In 2001, 17 well known leaders in the software industry gathered in Utah to ski, I mean, to attempt to create a set of best practices for the software industry.
The Resurgence of Dynamic Coding
December 14th, 2009
In the past few years, dynamic languages have enjoyed a surge in popularity. Not just among the coders who would have been using them all along, but even around the coders whose managers keep saying things like “Enterprise” and “Leveraging Synergistic Content Management Social Media Next-Generation Beta Podcasting Outside the Box”. (Side note to such managers: your coders’ eyes glaze over as a defensive mechanism. It’s nothing personal; it’s just like what happens to you when they say things like “Oh of En Log En Virtual Machine Scalable Output Stream Socket Runtime”.)
Gems in Scheme (Part 3)
October 19th, 2009
In my last post I described the use of call-with-current-continuation to implement coroutines, thus inverting for-each-style iterations into cursor-style iterations. I noted that this looks very similar to using threads.
This is part 3 of our Gems in Scheme series.
YAJ: Yet Another Javascript?
October 12th, 2009
The exponential growth and popularization of “the internet” was helpfully fueled by a flawed ‘language’ – the HyperText Markup Language. HTML is a subset of SGML – the ‘Standard Generalized Markup Language’ standards for structuring and processing documents. HyperText are navigable references to other ‘text’ (images, video, tabular data, stock quotes, etc). We ‘click’ hypertext ‘links’ to navigate from website to website.
Javascript dependency management made easy like Sunday morning
October 5th, 2009
Javascript does not have any kind of dependency management built into the language; rather you have to use external tools to do the management for you. We have a rather large Javascript code base, and Rake is our build management tool, so the natural choice for me was to investigate available Ruby solutions; unfortunately, none of them worked well for me.
What to do with all the heat?
September 28th, 2009
When I started with Border Stylo one of my first questions was “Where is/are our server/servers for the office?” “Well….we have a time capsule.”
We needed to change that quickly. Even for simple things like DHCP and control of our internal DNS not to mention centralized resources such control of our own wiki, etc.
Pair Programming Remotely
September 7th, 2009
I created this screencast about pair programming remotely.
It’s a way for developers to work together when they are not at the same office. We plan to use it when a team member works from home.
The Many Flavors of Curry
August 31st, 2009
Many functional languages have this nifty feature called ‘currying’ or ‘curried functions’. The name comes from the logician Haskell Curry (son of Samuel Silas Curry — someone please hook me up with wherever they are getting these names!), for whom the Haskell programming language is also named. Currying is a technique for making partial applications of functions first class objects in an intuitive way.
Types and Type Theory (part 2)
August 24th, 2009
In my previous post I mentioned different ways in which programming languages (and programmers) make use of types and type theory. In my next post I would like to describe the formal system which underlies almost all typed programming languages, the “simply-typed lambda calculus.” But before I get to that, I need to explain the (untyped) lambda calculus, its history, motivation, and functionality.
This is Part 2 in a multi-part series on the subject of Types and Type Theory.
Gems in Scheme (part 2)
August 17th, 2009
In my last post I described some of the use of call-with-current continuation for non-local or other sorts of dynamic exits. These uses of call/cc are similar to exceptions in many other languages, or a catch/throw mechanism.
This is part 2 in our Gems in Scheme series.
Introducing Cucumber
August 10th, 2009
Most people write about the goodness of Behavior Driven Design from a pure tech perspective, but convincing your company involves a lot more. This blog article tries to bring it all home for everyone.
“…At first your designers will cry about actually having to think through their design. Then they will find it extremely useful to their process and never let it go…”
Types and Type Theory
August 3rd, 2009
Programmers are all familiar with types.
Usually, their first experience with types comes from variable declarations in a language like Java or C, which look like the examples in (1).
This is Part 1 in a multi-part series on the subject of Types and Type Theory.
Gems in Scheme
July 27th, 2009
One sometimes hears that call-with-current-continuation is useless or pointless. Such things have come from the Python developers, and while Ruby 1.8 had a call/cc method, it’s not clear if it will survive in the next major release, allegedly because it’s “useless” or “too expensive”.
In fact, I tend to think that in fact, these developers simply don’t understand what call/cc is about or why it is valuable. So I’ll show some examples.
This Part 1 of our Gems in Scheme series