Out of touch with the clouds

No pasaran!

We decided to translate to English Michail Emel’yanikov’s post as we think it brings some importrant questions many people forget to ask. Did you?

“Over the past week, there seem to be more and more articles and notes about cloud computing – periodical influx of interest to any topic; nothing out of the ordinary. But after reading the latest material, I experienced a little déjà vu. All of this was written a year ago, if not more; worded the same way, and applicable to the same situations. On one hand, purveyors of cloud services try to convince us that their corporate clients are enthusiastically clambering into the clouds. On the other hand – all these years there has not been a single vivid answer to all of the simple, obvious questions. Namely:

1. What happens to the data when its uploaded to the cloud after the completion of any actions specified by the customer (editing, data processing, pressing the Delete key on the user’s computer, working with the cloud’s infrastructure)?
Read the rest of this entry »

How Ideas are different from Answers


Startyco Ideas


In our new product – Ideas, users will be able to vote for a published idea only. In Answers we called responses – answers; in Ideas we call responses – comments. Users can comment on an original idea to improve or discuss things with the idea’s contributor. Also users can like/dislike other users’ comments or reply to other users comments (see below).

Startyco Ideas

If Answers is a modern implementation of FAQ, where your users can ask questions and get answers, Ideas is your public roadmap channel, where you and your users can collaborate on your product’s or service’s future.

Administrators of your Ideas portal will be able to create idea statuses like – rejected, in development, implemented etc. and maintain your Ideas portal in an up to date state with them.

All planned new features – WYSIWYG, spam protection, mobile version, widget, oAuth authorization will be added simultaneously to Answers and Ideas.

Dashboard UI in Answers


Startyco Admin's Dashboard - Users


Startyco Admin's Dashboard - Spam
Managing our products from the configuration file is possible but inconvenient, and we understand this. We decided not to include it in our first release and concentrated on the creation of the install script’s UI instead. But we, at Deep Shift Labs, already started discussing the appearance of the dashboard, and what functionalities it will include.

No doubts it will be a single interface for all Startyco products our clients will buy and plug to the same core product. This is our goal; to create pluggable web apps with a single dashboard to manage them all.

For now we do not have many features (and we do not rush to implement them all), and this is how dashboard can look like to administer users:

Startyco Admin's Dashboard - Users

We think this would be a better way to share permissions rather than manipulate user IDs from the database and edit a configuration file.

Here is a wireframe of the spam protection part of our dashboard which shows messages which were suspected as spam by, for example, SpamAssassin. You will decide how Startyco products will react, post them, and notify you or delay posting and notify. You will be able to ban and train your own instance of SpamAssassin to make it smarter.

Startyco Admin's Dashboard - Spam

Comments in Answers


Comments UI in Answers

One of the features from our TODO list is ‘Comments’. This mode can be turned on to allow your users to clarify a question or an answer. We think, this mode will add some interactivity to your Answers portal and make it more convenient for your users.

Comments UI in Answers

Voting in Answers


Voting UI in Answers and Ideas

We are adding a voting feature in the next Answers release. Users will be able to vote for questions (for example, ‘I also have this question’ or ‘this question does not make any sense’) and answers. You will be able to turn on voting by setting it in the configuration file. You can allow voting for questions only, for answers only, both, or none.

We thought it will be quite important to be able to show up and down votes split. To keep the UI simple you will be able to see it when you hover your mouse over voting arrows or score. It makes sense to show a votes split when there are a few votes in different directions which also means it has to be at least two votes. Maybe we will show votes spit without hover when an answer’s score is 0 with equal amount of votes up and down (‘controversial answer’, I would say).

Voting UI in Answers and Ideas Read the rest of this entry »

XSS and HTML formatted text

No pasaran!

We have been working on Starty.co Answers for quite a while, and we cannot stop adding new features and hone existing ones.
Finally we decided to release the first version of Answers without such a convenient thing as text markup, like BBCode. However, we did some preparatory work in this area and decided that in the near future it will include the TinyMCE  WYSYWIG and Highlight.js module to highlight code snippets.

Even though we decided not to include a full markup in version one, it was necessary to implement the basic things – to replace the line breaks with <br> and parse http(s):// links in the text and replace them with <a href=”"></a>.
Read the rest of this entry »

Install PHP 5.4.6 on IIS 7 to work with MS SQL 2008

Instal PHP 5.4.6 on IIS 7 to work with MS SQL 2008

I decided to write this post because I have not found a simple and clear description for installing PHP on Windows, and setting this not very common combination to work with MS SQL 2008.

We are currently working on porting the largest system ever created in Deep Shift Labs from Windows 2000 and MS SQL 2000 to Windows 2008 and MS SQL 2008. I want to speak briefly about the history of this system and why we actually needed to install PHP on Windows. The system is about 800K lines of PHP code and it has been helping people to solve their business needs for the last 10 years. This system is designed for one of our customers. The first few years, the system worked on FreeBSD, Apache and PostgreSQL. Then the client’s company went public, and they needed to switch to commercial software. Sometime in 2004, we have been able, thanks to the fact that we originally used ADODB, to move, with a little effort, from FreeBSD/Apache to Windows 2000/IIS 5 (PHP runs as an ISAPI module). Finally, in 2006 we moved the then small database, both in structure and in size, to MS SQL 2000 from PostgreSQL.

The most difficult part in the distant 2006 was to find a driver which is bug free with MS SQL. We had tried everything supported by ADODB back then, and, in the end, we decided in favor of php_dblib.dll suggested and maintained by Frank Kromann. Frank was maintaining MS SQL extensions in PHP project and helped us immensely. The php_mssql.dll driver was using ntwdblib.dll from Microsoft, that does not work with dates and long texts properly. php_dblib.dll used dblib.dll from FreeTDS and we have not found any problems in it and started using it.
Read the rest of this entry »

Sparklines galore

Sparklines galore

Remember, when we were young children, we liked to ask the other kids, “What is heavier – a kilogram of cotton or a kilogram of nails?” when we already knew the correct answer and wanted to see their reaction. This post is dedicated to this problem, but in the field of web development :) Okay, I will not outwear your patience. We’ll talk about the optimal way to display a large number of small graphs on the same page.

I will begin with a little background. Deep Shift Labs; the company I have the great honor to work at, from 2002 is engaged in the development and support of a very large system for one of their clients. When developing a new application for this system, we decided to use small charts called sparklines. What they are, how we found them, and how we decided to implement them are described in this post. For those who have not read it I would like to explain why we decided to generate graphs with PHP. All reports this system generates are also available in PDF and Excel. If you implement sparklines in JS, then for their insertion into PDF or Excel we will still need to generate an image. So why do the same job twice? Read the rest of this entry »

Marketing by sharing

Jason Fried at ChicagoConvergence 2009

This post is a side effect of our work to translate Jasons’ speech at ChicagoConvergence in 2009 to Russian.

As we maintain our blog in two languages we decided to produce English version with captions and transcript for those who does not have time to listen it or simply can’t hear. We thank 37signals for a permission to do so.

We wanted to add our captions to original video published by ChicagoConvergence but they did not get back to our emails. So we had to load their video, split it into two parts and add English and Russian captions and republish it. There were no intension to steal but to add value. Transcript was completed by SpeechPad. We highly recommend them – high quality, very fast and just 1USD per minute of audio.

So here it is …
Read the rest of this entry »

Optimise? Optimise!

Over the past years, a web page load optimisation cult emerged. Honestly I was sceptical about it – internet speeds increase and I thought there is nothing to worry until you are hosting something really heavy like a multimedia entertainment portal. However we recently launched Nerrvana – Selenium testing cloud service and we found out that marketing site pages are loading slower than we expected. So I rolled up my sleeves and started the optimisation process.
After 10 minutes of searching I found out that all recommendations are basically the same and I took the most famous – “Best Practices for Speeding Up Your Web Site” from Yahoo. If you haven’t read it yet I recommend visiting this resource and reading it. It will help you understand why we are writing this post here. Your reaction may be different to mine, but mine was:

- Excellent, finally I found a full list of optimisation techniques with explanations
- Hmm, Ok we’ll try this one too
- Do I really need this one?
- Will this article finish soon?
Read the rest of this entry »

Looking for something? Visit the archives.