Eric Kittellcrypto web dev2015-10-04T16:43:29Zhttp://ekittell.com/feed/atom/WordPressEric Kittellhttp://ekittell.comhttp://ekittell.com/?p=2112014-09-25T21:05:19Z2014-09-13T18:42:45ZHere’s a a little script I wrote to send me alerts when the prices of certain alt coins pass defined points. I have it running on a cron job and it creates a log file instead of using sessions in order to limit repeat alerts to once an hour. The directory will need to be writable for the log file. Obviously you have to set the alert points manually in the PHP but if anyone is interested I can set this up as a service with a web interface. It also sends an alert when new markets are added to Bittrex, never miss a pump and dump again!

]]>0Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=1822014-09-03T03:12:10Z2014-09-02T20:43:33ZUnfortunately this is not a scenario from their upcoming online space strategy game, this one was on Bittrex, and not the first from what I can gather…

Yesterday I noticed there was an over 40% spread for BTC-HYPER (Hyper) and the price had gone very low, under 8200, well under the 10K floor I identified last week. Upon analysis of the market history I found a series of small incremental sell orders that ramped the price down from about 14K to 8100 along with a few larger conditional and panic sells. All those orders came in at 12:56 and it wasn’t until 13:17 that someone stepped in and cleaned up the low sells then I was able to pick up a few panic sells myself at 13:26 and later bought a little more at the ask price to try to make the market look normal again.

Who did this and why? It doesn’t look like the attackers used the attack to get cheap HYPER. I guess HyperCrypto has enemies and while it seems like all these alt coins have their fair share of haters it also seems like David Seaman‘s attempts to promote (not pump) this coin have annoyed some, maybe they don’t like the competition.

And where were the Hyper team and David Seaman during all this? It was Labor Day but I’d have some alert bot setup to let me know when things like this happen. Or maybe they’re responsible for the buy back at 13:17? No comment since either. I suppose they feel like it would be counter productive to even acknowledge this kind of attack, that and the fact that many coins like Hyper are vulnerable when there just aren’t enough buy orders with enough volume to prevent an attack or spontaneous collapse like this.

I’m not dumping my HYPER yet, I love watching my wallet balance increase daily with their proof of stake mining. I sure hope they come out with some Hyper coin games soon though, even just retrofitting existing games. It’s cool that they’ve already revived the classic game “Zandagort” (I know nothing about computer games) but they announced on July 24 that the ETA for integrating Hyper Coin into it was just 2 weeks away. It seems like you have to multiply any promised time line for altcoin implementations by a factor of 3 or more

In any case this has been an incredible learning experience for a noob trader like me to see how markets are manipulated and how I can even manipulate them myself though I also see that it takes constant vigilance to keep propping up a coin like this. Looking at other coins it seems that there are bots in place to help stabilize them, though I’m still not 100% sure about what I’m seeing. I don’t know if you would call it disingenuous or just a wise move to give your team some breathing room, you can’t have spectacular new announcements every week just to keep interest alive.

Disclaimer: I’m not an authority on any of this, I’ve just looked into certain coins and watched the markets closely for the last few days.

]]>1Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=1592014-08-29T23:33:47Z2014-08-26T18:09:11ZSo I’ve made my first big mistake as a noob alt coin investor: I had a sell order on BTC-XDQ (Dirac) for .00049 which made me something like 23% profit, not bad, right? Well right after that it shot up to well over .0007 and continues at over .0006, apparently due to the announcement that Dirac will be integral to BlockTech‘s new exchange AltMarket.

BTC-HYPER (Hyper) seems to be doing quite well also, hovering around .00014. I had a sell order at that point but canceled it before it got there, instead my Hyper has gone into my Hyper wallet to earn interest. I’ll get more if the price dips again.

After some gains last week, BTC-RZR (Razor) seems to be settling back into it’s floor level of around .0003 and I’ve already acquired more.

Are there any other coins I should be looking at besides these and Pink and Nautilus? Let me know!

Disclaimer: I’m not an authority on any of this, I’ve just looked into certain coins and watched the markets closely for the last few days.

]]>1Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=1132014-08-25T03:09:28Z2014-08-24T19:54:08ZThis past week on the Bittrex exchange it seems like BTC-HYPER (Hyper) has found it’s floor around .0001, with BTC-XDQ (Dirac) at around .0004 though both coins continue to exhibit higher spikes for day traders.

BTC-RZR (Razor) had a very stable floor around .0003 with a much narrower spread though it has had some bumps which seem to be resulting in solid gains, only time will tell. I also looked at BTC-PINK (Pink) but am not so sure it looks to have an established floor yet.

On David Seaman’s podcast Bryce Weiner of BlockTech mentioned this kind of flooring with certain alt coins that have strong dev teams and plausible use case scenarios WATCH. This is in contrast to the “pump and dump” that had been seen with other alt coins that were hyped and then crashed because ultimately they have no reason to exist, unlike the coins mentioned above that are trying to do useful things that Bitcoin doesn’t do and doesn’t want to do. On the other hand no one knows yet if the teams behind these coins will actually realize their ambitions. Only Razor seems like it’s close with a new online marketplace which is supposed to launch any day now.

I highly recommend the 2 other recent interviews with Bryce also: WATCHWATCH.

Finally here’s a simple angular.js web app I created to show multiple Bittrex tickers on one page. My old Macbook Pro can’t handle all those Bittrex tabs at once and stream video at the same time

Disclaimer: I’m not an authority on any of this, I’ve just researched some coins and watched the markets closely for the last few days.

]]>1Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=312014-08-24T19:29:26Z2009-10-29T15:42:39ZToday I’d like to describe a complex web application that I built from scratch over a year ago and continue to update on a regular basis. It was created for a live music company here in New York City that provides bands for weddings and other events. They are in high demand and have dates scheduled years in to the future.

They approached me about creating a database driven custom web application that their personnel could access online, any time, from any computer. For each event/contract they wanted to have an easy way to store basic information like:

The system is based around the color coded list of upcoming events (above). This only shows a tiny slice of the information that is collected for each event. Here they can access printable summary sheets presenting condensed event info for specific roles like musician and band leader, a printable contract, view and edit links and links to other event specific operations like budget and the dynamic “contracting” page. At the top we also have an event search and menu for other system features that are vital to the business.

click for full size view

A lot of time is spent on the contracting page for each event (above). Here they select the instruments and musicians required for each event segment. This page uses a lot of JavaScript to dynamically calculate musician fees and expenses based on which segments of the event they are working. These numbers are hidden from users who do not have the required privileges to view sensitive financial information.

The financial data generated on the contracting page is saved and displayed on a number of different payroll reports. There are other reports for payments, expenses, contracts, musicians and anything else the client needs in order to access important information in a useful format.

The system also includes management for contacts, musicians, rehearsals, plus user login and a multi level access permission structure.

As the client uses the system they identify areas that seem too tedious and time consuming and we work together to devise changes to help streamline their work flow. A lot of AJAX and Javascript are used to make the user interface as friendly and efficient as possible. The whole application is based on the Symfony framework to ensure that the code is organized and extend-able and that the system is solid and secure.

]]>0Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=112014-08-24T19:29:27Z2008-05-17T10:22:59ZI’ve just completed a project for the NYU Tisch School of Acting Graduate program Alumni Association or GAAA: http://gradactingalumni.org. I built a custom social networking application using the Symfony framework. I also created a plugin for WordPress that makes it user authentication system rely on the Symfony user login control.

With that in place it was relatively easy to get BbPress to integrate with WordPress since they are developed by the same group. There were a number of challenges getting all 3 application to work together and be able to access each others functions when necessary. I was also able to get the whole site layout to run off of WordPress’s template system.

]]>2Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=82014-08-24T19:29:27Z2008-03-07T01:46:24ZI have just completed a project that involved the integration of the 3.

SquirrelCart is a php/mysql shopping cart application, with control panel, heavy use of session variables, a lot of functions, templates, etc… pretty standard. There is almost no documentation for the code and the company does not provide any support for hacking it. I know it pretty well now though there are still occasional surprise.

Orbital is a payment gateway also known as Chase Paymentech. Their tech support was helpful but it was very difficult to get a test account from them for testing responses from their API. They normally don’t give them out to customers that are using certified shopping carts like SquirrelCart.

We needed to test Orbital’s responses with Order Motion(OM). Oribital is only authorizing the transaction and then OM completes it and controls inventory and has all kinds of fancy features. Their API is very thoroughly documented but they don’t have any quick start guides, and nothing about PHP. They run asp and both the help and control panel can only be viewed in Internet Explorer!

They did reluctantly provide some sample PHP code for the cURL request. We found that the OrderID element of the order request was required in order to match the order with the Orbital authorization. Also the authorization code from Orbital was 40 characters long and OM would only accept 30 max so they had to fix that at OM to accept more.

We also use Order Motion to retrieve inventory and past order information for the cart.

If you have questions or need help with any of these 3 solutions let me know.

EK

]]>0Eric Kittellhttp://ekittell.comhttp://ekittell.com/?p=72014-08-24T19:29:27Z2008-03-07T01:04:51ZWhen somebody hires a graphic designer they expect to get their money’s worth. Sometimes this translates into a desire to create something unique and out of the ordinary. After all web design should be creative, right?

The fact is that the majority of websites employ very similar approaches for achieving the same goals. Years of experience have taught designers and developers that for some things there really is a best way to do them or a few standard options that cover most cases.

Unexperienced developers who are trying to break into the business will often try to please the few clients they can get by trying to follow their instructions to the letter without suggesting better approaches when appropriate. They are particularly reluctant to flat out tell the client that doing things the way they want is just not possible, not because it’s not theoretically possible, but because it would cause problems down the road.

Sites developed with this approach can turn out to be hard to navigate, inconvenient for the user or just plain ugly.

Often clients will request Flash intro’s or landing pages. If you’re creating a book or magazine then you need a cover and table of contents and a web site is similar right? Yes, but it’s not exactly the same, and you should take users directly to relevant content instead of making them wade through preliminaries. If you pick up a magazine you don’t have to first turn to the table of contents before going to an article. You can always flip to content right away. It’s not a perfect analogy but I think that it is sometimes helpful to think about these parallels.

Recently I had an experience where a client insisted on having the customers to their online store enter their credit card information in an early stage of the checkout process even though almost all online stores leave this step for last. When the customer finalizes their order their credit card information is submitted to the payment gateway for authorization and it could come back declined. The client didn’t like the fact that the customer would have to go back so many steps to revise their credit card information but this situation could have been avoided if they had not insisted in doing things differently.

Now there may be ways to do things that nobody has thought of yet that are better than current industry standard best practices. If you come across one then of course you’ll want to be the first to use it. Just make sure you aren’t fooling yourself, check out what everybody else is doing first before you decide that your new way is better.

Some sites present special cases and may require doing things differently also, just make sure an unusual approach is truly warranted before proceeding. You are doing your client a favor if you can dissuade them from setting up something out of the ordinary that will cost them more money down the road when they realize they need to pay some one to redo it with a more standard approach.

While there is a little technical jargon here I think that anybody who is at all involved with the development, or expansion of a web application needs to read this. I know exactly the kind of situation he is talking about…

“The problem is that PHP is just too easy. It tempts you to try out your ideas, and flatters you with good results. You write much of your code straight into your Web pages, because PHP is designed to support that. You add the heavier code to functions in library files, and before you know it you have a working Web application.

You are well on the road to ruin. You don’t realize this, of course, because your site looks fantastic. It performs well, your clients are happy, and your users are spending money.

Trouble strikes when you go back to code to begin a new phase. Now you have a larger team, some more users, a bigger budget. Yet without warning things begin to go wrong. It’s as if your project has been poisoned.

Your new programmer is struggling to understand code that is second nature to you, though perhaps a little byzantine in its twists and turns. She taking longer than you expected to reach full strength as a team member.

A simple change estimated at a day, takes three days when you discover that you must update 20 or more Web pages as a result.

On of your coders saves his version of a file over major change you made to the same code some time earlier. The loss is not discovered for three days, by which time you have amended your own local copy. It takes a day to sort out the mess, holding up a third developer who was also working on the file.

Because of the popularity of the application, you need to shift the code to a new server. The project needs to be installed by hand, and you discover that file paths, database names, and passwords are hard coded into many source files. You halt work during the move because you don’t want to overwrite the configuration changes the migration entails. The estimated two hours becomes eight as it is revealed that someone did something clever involving the Apache module ModRewrite, and the application now requires this to operate poperly.

You finally launch phase 2, and all is well. All is well for a day and a half. This first bug report comes in as you are bout to leave the office. The client phones minutes later to complain. Her report is similar to the first, but a little more scrutiny reveals that is is a different bug causing similar behavior. You remember the simple change at the start of the phase that necessitated extensive modifications throughout the rest of the project.

You realize that not all the required modifications are in place. This is either because they were omitted to start with, or because the files in question were overwritten in merge collisions. You hurriedly make the modifications needed to fix the bugs. You’re in too much of a hurry to test the changes, but they are a simple matter of copy and paste, so what can go wrong?

The next morning you arrive at the office to find that a shopping basket module has down all night. The last minute changes you made omitted a leading quotation mark, rendering the code unusable. You fix the problem, mollify the client, and gather the team for another day’s firefighting.

This everyday tale of coding folk may seem a little over the top, but I have see all these things happen over and over again. Many PHP projects start their live small and evolve into monsters.

Because the presentation layer-the PHP pages containing HTML-also contains application logic, duplication creeps in early as database queries , authentication checks, form processing, and more are copied from page to page. Every time a change is required to one of these blocks of code, it must be made everywhere the code is found, or bugs will surely follow.

Lack of documentation makes the code hard to read, and lack of testing allows obscure bugs to to undiscovered until deployment. The changing nature of a client’s business often means that code evolves away from it original purpose until it is performing tasks to which it fundamentally unsuited. Because such code has often evolved as a seething intermingled lump, it is hard, if not impossible, to switch out and rewrite parts of it to suit the new purpose”

There is good news though, it’s actually relatively easy to build an application using a solid framework and avoid these kinds of problems. It’s definitely much easier than dealing with nightmarish scenarios. It does take some extra effort at first, and good planning, but the result is all around satisfaction with nobody feeling that time or money has been wasted.

]]>0Eric Kittellhttp://ekittell.comhttp://dev.ekittell.com/?p=52014-08-24T19:29:27Z2008-03-05T20:56:13ZI am often asked to create a “basic” or “simple” image gallery that the site owner can update themselves. There are a number of front end options to consider when creating this kind of gallery.

Many galleries have a page of thumbnails that you click to get a popup with the full size image. These are not very user friendly unless there are previous and back links in the popup. I think it’s even better to have the full size image replace the thumbnails in the main window in order to avoid opening extra browser windows.

With small galleries the thumbnails and large version could occupy the same window. In that case you could just rollover the thumbnails to see the large image (like we did on the L&O and Katered Kanines projects), though this will make the whole page load more slowly since you need to preload all the images so that the rollovers respond quickly. With these projects the large images aren’t very large so it’s not really a problem.

If you’re going to use next and back links it really helps if the next link always appears in the same spot so the user can keep clicking without moving the cursor and page through all the photos very quickly. Another thing I saw recently that was really sweet and simple is setup so the user can just click on the photo itself in order to see the next one.

There are some fancy galleries that include an automatic slideshow feature with pause and play buttons. I personally don’t like these. I’d rather just click through each image. The internet is all about interaction, not just sitting back and watching and there are some photos you want study for a few minutes and some you want to click right past. These kinds of galleries also usually have fade in and out effects which I can incorporate into any kind of gallery, not just a slideshow, if the client feels they really need that extra slickness. The fade in and out are not too distracting in my opinion and are appropriate for certain kinds of sites.

An automatic slideshow can have it’s place also, but the only place I really see these working is on a home or portal page, where there is other content for the user to browse while one section has a slideshow of current articles, or advertisers, to catch the users eye.