Novkovic.net | The Web Development Expert Blog

I’m relatively new to the Ruby on Rails web app framework. I just started learning it about two months ago when I started developing my web app punchly.net .

I’ll share a story with you about my experience with Rails, and maybe you’ll be intrigued enough to try it out for yourself.

About Punchly App.

Punchly is a web application that allows web developers to track time spent on their projects.

Here are some images of the app:

 

 


I’ll be adding better data breakdowns as time goes on, but for the time being you can track your time investment for the day, week, month or year.

Cheers,

·

The Key-Features of MongoPress

It’s Open Source

Thanks to the generous GPLv3 license, just like WordPress – it’s entirely OpenSource. Members of Lau-Labs have full access to MongoTrac, to submit their own tickets and patches, whereas the general public are free to keep track of development or grab the latest source directly from SVN.

It’s Extremely Fast & Instantly Scalable

MongoDB makes traditional caching a thing of the past due to its lightening fast reflexes. With out-of-the-box support for back-ups and load-balancing through replication-sets and sharding, there is no other CMS currently available that offers the same instant scalability.

It’s Incredibly Secure & Search-Engine Friendly

Developed by a team who are actively using the platform on live projects and who take security, SEO and modern adaptive, dynamically responsive design and development very seriously, you can be certain that our boilerplates will remain up-to-date. We have employed SHA(256) encryption for salted-passwords that are stored independently to usernames, and our default front-end and administrative themes feature intelligent HTML classes that provide important browser information whilst employing HTML5 entities and CSS3 standards throughout.

It Allows for Easy Customization & Configuration

Already featuring a working theme structure and familiar plugin methods, both the front-end and back-end is entirely customizable, and supported directly from the theme, along with content-structure-templating, which is capable of quickly importing vast amounts of HTML into MongoPress and converting folders and file names into object types and content.

Fully Translatable

We are also using the same language / translation API as WordPress, and have already translated the core into Bahasa Malay, Simplified Chinese and Spanish, although this was mostly done with the help of Google Translate, so please feel free to contribute more core languages.

Scalable Media Storage & Serving

Utilizing MongoDB’s native GridFS functionality, images and ZIP files are stored and served directly from within the database and automatically sharded and replicated whilst MongoPress also tracks the view and download counts of associated files.

It’s Developer Friendly & Familiar

Since the plugin API (add_action and add_filter), formatting API and language API are directly imported from WordPress, developers who are already familiar with WordPress will surely feel right at home.

 

Look at the showcase: http://www.smalley.my/

No tags

Relational databases, and to a degree MySQL, have become the backbone of commercial organisations. Programmers and database developers have been engaged in a tug-of-war, deciding the best place to store and execute the business logic.

Recent attempts to objectize the Database (Hibernate, JPA, iBATIS) have had cult-like following. But for performance purists (not to mention DBAs) Object Relational Mapping (ORM) solutions are often plagued with performance limitations and gotcha’s, such as caching issues, type casting problems, transaction problems etc.

So when a new breed of JSON ‘document style’ storage servers arrived we approached them with some sceptcism.

A quick, personal (non rigourous) comparison

The following highlights a typpical user story of one of our customers:

Insert 10000 records Table
Update 1000 records based on a non-key’d update
Update 1000 records based on a key’d query

 

on my small development server I get :

Mysql

Loading test data …

  • Execution time of loadTestData was 16327 ms. for 10000 entries
  • Execution time of updateRandomRecord was 31151 ms. for 1000 records
  • Execution time of updateRandomRecordKeyd was 1592 ms. for 1000 records

Now lets compare this to the new breed of NoSQL databases. I used MongoDB in this case because it is C++, thread safe and deployable to Windows, Mac OS X and Linux (including our ISP), plus it supports Java, .Net, PHP connectors.

MongoDb

  • Execution time of loadTestData was 1912 ms. for 10000 records
  • Execution time of updateRandomRecord was 6484 ms. for 1000 records
  • Execution time of updateRandomRecordKeyd was 1097 ms. for 1000 records

The Quick Takeway

  • Key’d updates are comparable
  • Inserts and non-key’d updated on MongoDB are significantly faster.

Some interesting other factors regarding the B-Tree database

  • memory usage is fraction of MySQL, meaning it’s much easier to spin up multiple servers
  • being schemeless, it is much easier to create and modify collections (equivalent of tables) which will be required by our customers
  • development was also magnatudes of order faster on the document storage database. This will be further increased if we used the native JSON format on the application front end.

The main down side I have seen so far:

  • With a NoSQL database you have the option to perform a batch update but batch operations
  • SQL-type queries and datamining becomes more difficult or at least requires different solutions (Map/Reduce)
  • MongoDB does not current support transactions (but it does support autosharding).

No tags

A lot has been written about social news and how Twitter and Facebook are in the running for defining and dominating it. There’s also a lot of hand-wringing about how journalism will be disrupted by social.

I might be a bit biased as a former employee, but when it comes to social news, I think LinkedIn could become the Wall Street Journal of social news—not Twitter or Facebook. In fact, LinkedIn is expected to announce a new social news product this week. In what may or may not be a precursor to that anticipated product, a few days ago I received a curious email from “LinkedIn Headlines” (the actual email address news@linkedin.com). It was an email digest of the most shared news in my network about the Internet industry (see screenshot below). There has been no official launch of a product by that name nor have I seen anyone else write about it. But that email made me think a little more about the different types of news I consume.

I write this post from a perspective of a news addict—I wrote a guest post here on TechCrunch called Screening the News and am known on Twitter as a “tech news junkie”. No matter what the source, eventually all news is curated—just differently.

The Curation Types are:

  • By The Editor/writer: Blogs, physical magazines and newspapers that I read like Fortune, The Economist and The Wall Street Journal
  • By my network: Twitter, FlipBoard, Facebook
  • By Editors and Algorithms (based on “popularity” amongst writers): Techmeme
  • By Algorithm: Google News and then finally
  • By Editor and popularity of the general audience via most read, commented, emailed, retweeted, or liked: TechCrunch, nytimes.com, wsj.com
  • By general popularity only: possibly bit.ly, tweetmeme

I started networking building long-term relationships consciously when I was “vocationally challenged” in the last dotcom bust. News was the single biggest tool I used to engage people I wanted to know well over the long-term during that time. I don’t do short-term relationships well. In other words, without knowing it, I was behaving like their personal curator over the long term. Understanding my ‘audience’s’ requirements was of paramount importance. Tending to my relationships, independent of business agendas, has always been a priority for me.

Based on my own personal experience, I think LinkedIn has a significant opportunity in an industry reeling with disruption. It has many parallels in terms of audience with the top daily print publication, The Wall Street Journal. A publication focused primarily on business, the WSJ grew circulation 1.8% last year, when the rest of the newspaper industry’s fell by 4.46%.

LinkedIn could bring curation by popularity within my network: there is absolutely nothing that does that for me today.  And since it is much more structured by industry and work interests, it has the potential to become the ultimate business news filter.  How could LinkedIn make social news better?

  • LinkedIn can suddenly become an information network, something that Twitter likes to call itself but with analytics built in based on my network
  • Fred Wilson wrote a post comparing Techmeme and Hacker News for the technology industry. Suddenly LinkedIn can bring users both with an ability to slice a vertical from the highly technical to more general news about companies like Apple or Google
  • LinkedIn could help me learn about the sources of news that is important to my network. This can lead to discovery and further curation
  • LinkedIn could bring a personalized newspaper that I can change based on industries that its users come from. For example, venture capital from people who have worked in venture capital.
  • With the recent introduction of “Skills” by LinkedIn, readers could find news that helps them develop a skill they care about. For example: If I wanted to dig deeper into learning about SEO, LinkedIn could bring stories from sites like SearchEngineLand
  • Based on the structured data from my profile including industry, companies, and job title, LinkedIn could recommend great articles to me
  • Trending—this is a no brainer. Apart from my profile information and my network, LinkedIn Headlines can also leverage industry groups I belong to on LinkedIn
  • Significantly enhance Twitter. LinkedIn enabled Twitter sync last year and from what I see in my network, many have autosynced their tweets and a majority, which should come as no surprise, are links. With analytics, LinkedIn could surface shared URLs that are most popular within my network
  • Like the Priority Inbox, LinkedIn could help me mark some users as important so that I get the news they shared first. I have many favorite reporters and respected colleagues.  I would love to see their stories independent from the “wisdom of the crowd”
  • Since LinkedIn enables me to save a search for Jobs or get Email Alerts, it could also send me news around particular companies or the industries
  • LinkedIn could show me the all connections around the link/ news article—a little like Facebook’s ‘Like’ but in a “magazine” format

Can Twitter do some of this this? Maybe sharing analytics but it lacks the deep industry and profile information that LinkedIn houses to build a powerful and personal recommendation engine.  Can Facebook do this? Maybe with some sharing analytics but again, it does not have the deep business profiles that LinkedIn has amassed.  And personally I really do not care about Justin Bieber or Charlie Sheen, although I am sure they will pop up even in LinkedIn headlines.

Article taken from the techcrunch.com

Bitcoin is an open source peer-to-peer digital currency project. Peer-to-peer (P2P) in this context means that there is no central authority to issue new money or keep track of transactions. Instead, these tasks are managed collectively by the nodes of the network. This is one important open source project that holds a lot promises for the future.

Bitcoin P2P Virtual Currency – Key Advantages

  • Bitcoins can be sent easily through the Internet, without having to trust middlemen.
  • Transactions are designed to be irreversible.
  • Be safe from instability caused by fractional reserve banking and central banks. Limited inflation of the Bitcoin system’s money supply is distributed evenly by CPU power across the network, not monopolized by banks.
  • Users hold the crypto keys to their own money and transaction is done directly with each other, with the help of the network to check for double-spending. Need of a middleman for digital money transaction is essentially negated.

Download and Install Bitcoin Client

  • In Ubuntu, you need to download and extract the package first and then run ‘bitcoin’ file from bin directory. Screenshot showing Bitcoin client in Ubuntu above.
Title credits for the article actually goes to this reviewer at sourceforge(where bitcoin project is hosted) who writes, “Bitcoin is the gold standard of digital currency. The availability of bitcoins can not be manipulated by governments or financial institutions and bitcoin transactions occur directly between two parties without a middleman.”

No tags

One of the most frustrating things in life is a slow computer.

Every few years, we buy an expensive new PC and love how fast it starts up, runs programs, and loads web sites.  Inevitably, though it starts to slow down, until eventually we are pulling our hair out waiting for it to do routine tasks.

Why is this? It turns out the answer is actually quite simple and you don’t even need to be “technical” to understand the causes and solutions.

The good news, it’s not the computer hardware that’s the problem.  In most cases the hardware you have is perfectly capable of being restored to its original glory and kept in fast running condition with minimal effort.

Rather, the problem lies with changes that occur to the PC’s software. The 2 most common causes of slowdown (along with easy solutions) are:

Registry errors  -  the most common problem

Every time you (or your kids) load a program, game or file, your PC’s software registery is updated with new instructions needed to operate that item.  However, when the item is removed, these instructions usually remain on your PC.  Every time you run your computer it tries to execute these instructions but, because the related program can’t be found, it causes a registry error.  Your PC is doing a lot more work than it should be and the result is a significantly slower computer.

One of the best ways to manage this is with a neat little tool from a Seattle based company called the Advanced Registry Optimizer 2010 (ARO for short).  This program scans, identifies and fixes registry errors – resulting in a computer that’s a lot more like it was when you first bought it.  On top of the amazing results it offers, it’s so easy to install and use that it was recently awarded a coveted 4.5 star rating (out of 5) by CNET’s editorial staff.

You can now get a free working version of the software which will quickly scan your entire PC and identify all of the registry errors that may be bogging it down.  The free version eliminates the first 100 errors and if you have more errors that you want to clean-up or want to set the program to run on a regular basis (recommended) you can easily upgrade to the full version for just $29.95.  After that registry errors will no longer be a problem.

To get the free version simply click here.

Spyware and viruses

Spyware and viruses are software programs that are loaded on your computer without your knowledge or permission.  They have various purposes, including:

  • Changing the default search engine in your browser
  • Tracking your web surfing habits and showing you targeted advertising
  • Using your email program to send out spam to other email addresses
  • Stealing your personal information

Most spyware and viruses get onto our computers through files that we download from the internet or as attachments to emails.  They tend to take up a lot of computing power and as a result will significantly slow down the computer.

The simple rule of thumb to follow is to never download any free software programs from companies you do not know and trust, especially screensavers, emoticons and the like.  In addition, you should never open any attachment to an email unless you are 100% certain you know and trust the sender. In addition, make sure you have a good anti-virus / spyware removal software running at all times.

No tags

Mark Zuckerberg has long signaled that the future of Facebook will be off Facebook.com. His social network will take a big step toward that future at a developers conference in April.

That’s when, according to a WSJ report, Facebook plans to launch a tool set for Web developers who want to make their off-Facebook Web sites look and work more like on-Facebook “pages.”

On its site for Facebook developers, Facebook calls this toolset the “Open Graph API,” and describes it this way:

The Open Graph API will allow any page on the Web to have all the features of a Facebook Page – users will be able to become a Fan of the page, it will show up on that user’s profile and in search results, and that page will be able to publish stories to the stream of its fans.

Facebook also provides the following “details”:

The Open Graph API will allow any page on the Web to have all the features of a Facebook Page. Once implemented, developers can include a number of Facebook Widgets, like the Fan Box, or leverage any API, which enable the transformation of any Web page so it functions similar to a Facebook Page.

For example, AwesomeTees might decide that strategically they would like to locate their brand identity at www.awesometees.com. AwesomeTees will install the Fan Box widget, which will allow any Facebook user to “Become a Fan” of AwesomeTees, thereby establishing an official connection to AwesomeTees. The user will then have AwesomeTees listed in their list of connections on their profile as Pages are represented today. Additionally, any content that AwesomeTees publishes on AwesomeTees.com will show up in the stream on Facebook like it normally would. And, any time the user searches on Facebook, AwesomeTees will show up in the typeaheads and prominently in search results.

At the Wall Street Journal, Jessica Vascellero writes that Facebook’s goal here is to “make it even easier for users to share information from the Web on Facebook and to have that information associated with their Facebook identity.”

This move to expand Facebook beyond the domain of Facebook.com has been under way since Fall 2007, when Mark came to New York, announced that advertising changes every 100 years, and launched Facebook Beacon. Facebook Beacon transmitted Facebook user activity from third-party sites back to Facebook. The product quickly flopped, mostly because it wasn’t opt-in.

Facebook re-branded the technology behind Beacon as an opt-in service called Facebook Connect in fall 2008 and launched it as a tool that allows Facebook users to sign into third-party sites using their Facebook IDs. Facebook Connect has been a huge hit.

In the year since Facebook Connect launched, more and more major brands have begun driving traffic not to their own domains, but to their branded Facebook Pages. These pages are attractive brands because once Facebook users become fans of a page, that page is free to update that friend regularly. It has been the return of email marketing. The Open Graph API, which will take Facebook fan pages out of Facebook without sacrificing these marketing tools is the next logical step.

The other two big reasons Facebook wants to expand beyond Facebook.com and onto third-party sites is that 1) there is hope within Facebook’s executive ranks that the company can someday launch an ad network 2) Facebook would love to find itself in a position to offer e-commerce sites Facebook Connect-like “Pay With Facebook” one-click option. Some Facebook executives believe this business could eventually be larger than Facebook ads.

Source: http://www.businessinsider.com

· · ·

Mar/10

11

HTML5 New Tags

When HTML5 was being developed its developers have faced the few important issues that were to be solved with the help of HTML5. And one of these problems was creating a really explicit and extensible semantics. Now the tricky part is that the old versions of HTML were also being designed with the versatility in mind – with loads of various tags that were considered absolutely essential but have eventually proved themselves to be totally useless. The approach in the HTML5 has been changed according to the needs of today’s Internet.

HTML5 New Tags

The task that had to be accomplished by the developers was to create the richer and meaningful semantics for HTML5 version – plus the fact that new solution was supposed to be flexible, strongly efficient and of course to correspond to all modern web standards. Now here comes the list of the new tags that will available in HTML5.

  • <article> tag defines an article
  • <aside> tag defines content aside from the page content
  • <audio> tag defines sound content
  • <canvas> tag defines graphics
  • <command> tag defines a command button
  • <datalist> tag defines a dropdown list
  • <details> tag defines details of an element
  • <dialog> tag defines a dialog (conversation)
  • <embed> tag defines external interactive content or plugin
  • <figure> tag defines a group of media content, and their caption
  • <footer> tag defines a footer for a section or page
  • <header> tag defines a header for a section or page
  • <hgroup> tag defines information about a section in a document
  • <keygen> tag defines a generated key in a form
  • <mark> tag defines marked text
  • <meter> tag defines measurement within a predefined range
  • <nav> tag defines navigation links
  • <output> tag defines some types of output
  • <progress> tag defines progress of a task of any kind
  • <rp> tag is used in ruby annotations to define what to show browsers that do not support the ruby element.
  • <rt> tag defines explanation to ruby annotations.
  • <ruby> tag defines ruby annotations.
  • <section> tag defines a section
  • <source> tag defines media resources
  • <time> tag defines a date/time
  • <video> tag defines a video

Let’s just hope all of these will really be “alive” and useful tags, not just something we think is awesome today.

The Healing by HTML5 – Old Tags, Long Gone…

Now do you remember those old times when HTML3 was a sort of a miracle that could only be seen in Netscape? Yeah, it was the dawn of the Internet era. Of course we must never forget our history but it is a normal thing when we have to say good bye to some good old things (especially when they’re not that good and no one really cares about them anymore).

So, HTML5 developers have recalled some of the tags that only the HTML geeks remember and since those tags are so much obsolete they were excluded from the new HTML – which by the way we would like to thank the HTML5 developers for. After all these old tags are in fact so old that in 20 years our kids are likely to think that they were used by William Shakespeare in his sonets. Anyways, take a last look at the following archaic tags, the only chance to see them again is by visiting the Internet and HTML museum (is there a museum like that by the way?).

  • <acronym> tag defines an acronym.
  • <applet> tag defines an embedded applet.
  • <basefont> tag specifies a default font-color, font-size, or font-family for all the text in a document.
  • <big> tag is used to format the text one size bigger, and can be in relation to your <font> or <basefont> size, if you’ve specified either one.
  • <center> tag is used to center text.
  • <dir> tag is used to list directory titles.
  • <font> tag specifies the font face, font size, and font color of text.
  • <frame> tag defines one particular window (frame) within a frameset.
  • <frameset> tag defines a frameset. The frameset element holds two or more frame elements. Each frame element holds a separate document.
  • <s> and <strike> tags define strikethrough text.
  • <tt> tag is used for “typetype” text, or fixed-width typewriter-type font. Other than the different type style, it has normal font characteristics
  • <u> tag is used to underline text.

Most of these tags are obsolete (even though to some of you they may seem slightly similar to the versatile new ones). Some of these old ones were used in early versions of popular browser versions but today most of them are just useless, and some of them can be placed with CSS functions (for example different fonts and text tags).

The Big Deal About the <DIV> Tag

Replacing the <div> tag with new tags is one of the main achievements of HTML5 in terms of semantics. The HTML4 <div> tag was (and still remains) one of the major tags used in HTML code but it was semantically weak because of how useless it is when it comes to specifying different sections of the website structure. The new HTML5 tags – such as <article>, <aside>, <nav>, <figure>, <header>, <footer> – will be very much more useful and comvenient because these tags give the opportunity to specify all major parts of the website and clarify the major structure. This means that you can easily navigate through the code even if your middle skilled coder or rookie – not to mention the fact that the search engines will be crazy about the websites pages so conveniently structured.

So What Do We Have?

There are many discussions about new tags and their semantic values and of course some people claim that semantics and visual representation have nothing in common – because semantics means more complicated coding and creates new field for some new HTML issues. But this is just one side of it all because we still believe that the new tags, along with the HTML5 semantics in general, are aimed at raising level of communication and cooperation between the web audience and the technologies that keep the web going.

Again – what we’re trying to say is that, as cool as HTML5 looks and feels, it takes a lot of efforts and a little bit of witchcraft to forecast what the web is going to be all about within the next 5 years or so. Today these new tags and semantics approach really do look awesome and we totally love it, let’s just not forget that things have changed in order for us to be able to take advantage of them, the new features have to be used by us, the huge web community – that’s the only way for something that’s simply new to become new and useful.

Taken From Template Monster.

On one of my recent SEO projects I had to create a dynamic page for each of the comments. To do that I’ve simply installed the SEO Super Comments wordpress plugin and that was it.

Nevertheless, dynamic pages itself need to be indexed quickly by Google so I changed some code in the popular “Google XML Sitemaps” plugin v. 3.2 (at the time this was the most recent version) to display links of the dynamically generated comment pages as well.

You could download modified files from here and then just need to overwrite existing plugin files located in the /wp-content/plugins/google-sitemap-generator folder.
Please note that this mode will work only for Sitemap XML plugin version 3.2.

I hope that this was helpful guys!

No tags

Recently I run across the very odd problem when I try to download simple .CSV export file from the encrypted SSL server,
I get an error in the IE6, IE7 and IE8 – but not in Firefox:
Internet Explorer was not able to open this Internet Site. The requested site is either unavailable or cannot be found. Please try again later.

After some research I’ve found that the error doesn’t appear when the following IE7 option is checked:
Tools – Internet Options >> Advanced Tab >> Security heading (almost all the way at the bottom) >> Do not save encrypted pages to disk.

Internet Explorer was not able to open this Internet Site

For some reason that setting is deselected by default.

This approach fixed the IE problem.

If this solution doesn’t works for you ,because you can’t change IE7 settings on each of your clients browsers, then you may try to edit some code on your CSV export cache function by adding “no-cache” into the Cache control header. It should look like this one:

Cache-Control: no-store, no-cache, must-revalidate

This makes it work for IE, but might result in “unclean” code.

No tags

Older posts »

Theme Design by devolux.nh2.me